编程之路

——火地晋

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  291 随笔 :: 2 文章 :: 297 评论 :: 134万 阅读

这两个东西很绕口,也绕脑袋。

一般来说,了解authentication(验证)的用法即可,用于自定义的用户验证。

 

authorization(授权)主要通过计算机信息来控制。

“*”:所有用户;

“?”:匿名用户;

 

官方说明如下:

 

http://msdn.microsoft.com/ZH-CN/library/532aee0e%28v=VS.110,d=hv.2%29.aspx
http://msdn.microsoft.com/ZH-CN/library/8d82143t%28v=VS.110,d=hv.2%29.aspx

 

authorization 元素

配置 Web 应用程序的授权,以控制客户端对 URL 资源的访问。

<authorization>
<allow .../>
<deny .../>
</authorization>

 

 

特性和元素

以下几节描述了特性、子元素和父元素。

子元素

子标记

说明

allow

向授权规则映射添加一个规则,该规则允许对资源进行访问。

deny

向授权规则映射添加一条拒绝对资源的访问的授权规则。

父元素

元素

说明

configuration

指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。

authorization 元素为 Web 应用程序配置授权,以控制对 URL 资源的客户端访问。

运行时,授权模块从最本地的配置文件开始,循环访问 allowdeny 元素,直到它找到适合特定用户帐户的第一个访问规则。 然后,该授权模块根据找到的第一个访问规则是 allow 还是 deny 规则来允许或拒绝对 URL 资源的访问。 默认的授权规则为 <allow users="*"/> 因此,默认情况下允许访问,除非另外配置。

为了便于部署,支持表示当前计算机的句点 (.) 简便表示法。 这使您能够用句点-反斜杠序列 (.\) 为每个用户或角色加上前缀,如下所示:

<allow roles=".\roleName"/>
<allow users=".\userName"/>
运行时,句点-反斜杠序列会替换为 "本地计算机名\" 序列。 只有当 Microsoft Windows 标识用于请求时,才会进行此替换。 这是为了避免在句点-反斜杠序列用于具有自定义主体的任意规则时产生冲突。 

因为 authorization 元素不表示集合,所以没有 clearremove 子元素。 () or Remove(AuthorizationRule) method.">若要以编程方式清除授权规则映射,请使用 Clear()Remove(AuthorizationRule) 方法。

默认配置

下面的默认 authorization 元素在 .Net Framework 2.0 版的根 Web.config 文件中配置,在 .NET Framework 1.1 和 1.0 版的 Machine.config 文件中配置。

<authorization>
  <allow users="*" />
</authorization>

下面的代码示例演示如何允许所有 Admins 角色成员进行访问以及如何拒绝所有 users 角色成员进行访问。

复制代码
<configuration>
  <system.web>
    <authorization>
      <allow roles="Admins"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</configuration>
复制代码

 authentication 元素

配置 ASP.NET 身份验证方案,该方案用于识别查看 ASP.NET 应用程序的用户。

<authentication mode="[Windows|Forms|Passport|None]"> 
   <forms>...</forms>
   <passport/>
</authentication>

以下几节描述了特性、子元素和父元素。

特性

特性

说明

mode

必需的特性。

指定应用程序的默认身份验证模式。 此特性可以为下列值之一。

Windows 将 Windows 验证指定为默认的身份验证模式。 将它与以下任意形式的 Microsoft Internet 信息服务 (IIS) 身份验证结合起来使用:基本、摘要、集成 Windows 身份验证 (NTLM/Kerberos) 或证书。 在这种情况下,您的应用程序将身份验证责任委托给基础 IIS。
Forms 将 ASP.NET 基于窗体的身份验证指定为默认身份验证模式。
Passport 将 Microsoft Passport Network 身份验证指定为默认身份验证模式。
None 不指定身份验证。 您的应用程序仅期待匿名用户,否则它将提供自己的身份验证。

默认值为 Windows

子元素

元素

说明

forms

配置 ASP.NET 应用程序以执行基于窗体的自定义身份验证。

passport

指定要重定向到的页(如果该页要求身份验证,而用户尚未通过 Microsoft Passport Network 身份验证注册)。

父元素

元素

说明

configuration

指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。

authentication 元素为 ASP.NET 应用程序配置 ASP.NET 身份验证方案。 身份验证方案确定如何识别要查看 ASP.NET 应用程序的用户。 mode 特性指定身份验证方案。 有关可用的身份验证方案的更多信息,请参见 ASP.NET Authentication

默认配置

Machine.config 或根 Web.config 文件中未显式配置下面的默认 authentication 元素。 但它是 .NET Framework 2.0 版中应用程序返回的默认配置。

复制代码
<authentication mode="Windows">
   <forms 
      
name=".ASPXAUTH" 
      loginUrl
="login.aspx" 
      defaultUrl
="default.aspx" 
      protection
="All" 
      timeout
="30" 
      path
="/" 
      requireSSL
="false" 
      slidingExpiration
="true" 
      cookieless
="UseDeviceProfile" domain="" 
      enableCrossAppRedirects
="false">
      <credentials passwordFormat="SHA1" />
   </forms>
   <passport redirectUrl="internal" />
</authentication>
复制代码

示例


下面的代码示例演示如何为基于窗体的身份验证配置站点、指定传输来自客户端的登录信息的 Cookie 的名称以及指定当初始身份验证失败时使用的登录页的名称。 必须将 authorization 节包含在内才能要求对所有用户进行 Forms 身份验证,并拒绝匿名用户访问站点。


 

复制代码
<configuration>
   <system.web>
      <authentication mode="Forms">
         <forms name="401kApp" loginUrl="/login.aspx"/>
      </authentication>
      <authorization>
         <deny users="?"/>
      </authorization>
   </system.web>
</configuration>
复制代码

 

posted on   火地晋  阅读(3142)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示