这两个东西很绕口,也绕脑袋。
一般来说,了解authentication(验证)的用法即可,用于自定义的用户验证。
“*”:所有用户;
“?”:匿名用户;
官方说明如下:
authorization 元素
配置 Web 应用程序的授权,以控制客户端对 URL 资源的访问。
<allow .../>
<deny .../>
</authorization>
以下几节描述了特性、子元素和父元素。
子标记 |
说明 |
---|---|
allow |
向授权规则映射添加一个规则,该规则允许对资源进行访问。 |
deny |
向授权规则映射添加一条拒绝对资源的访问的授权规则。 |
父元素
元素 |
说明 |
---|---|
configuration |
指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。 |
system.web |
指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。 |
authorization 元素为 Web 应用程序配置授权,以控制对 URL 资源的客户端访问。
运行时,授权模块从最本地的配置文件开始,循环访问 allow 和 deny 元素,直到它找到适合特定用户帐户的第一个访问规则。 然后,该授权模块根据找到的第一个访问规则是 allow 还是 deny 规则来允许或拒绝对 URL 资源的访问。 默认的授权规则为 <allow users="*"/>。 因此,默认情况下允许访问,除非另外配置。
为了便于部署,支持表示当前计算机的句点 (.) 简便表示法。 这使您能够用句点-反斜杠序列 (.\) 为每个用户或角色加上前缀,如下所示:
<allow users=".\userName"/>
运行时,句点-反斜杠序列会替换为 "本地计算机名\" 序列。 只有当 Microsoft Windows 标识用于请求时,才会进行此替换。 这是为了避免在句点-反斜杠序列用于具有自定义主体的任意规则时产生冲突。
因为 authorization 元素不表示集合,所以没有 clear 或 remove 子元素。 () or Remove(AuthorizationRule) method.">若要以编程方式清除授权规则映射,请使用 Clear() 或 Remove(AuthorizationRule) 方法。
默认配置
下面的默认 authorization 元素在 .Net Framework 2.0 版的根 Web.config 文件中配置,在 .NET Framework 1.1 和 1.0 版的 Machine.config 文件中配置。
<allow users="*" />
</authorization>
authentication 元素
配置 ASP.NET 身份验证方案,该方案用于识别查看 ASP.NET 应用程序的用户。
<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 版中应用程序返回的默认配置。
<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 身份验证,并拒绝匿名用户访问站点。
<system.web>
<authentication mode="Forms">
<forms name="401kApp" loginUrl="/login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
出处: http://yelaiju.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述