授权的目的是确定是否应该授予某个标识对给定资源请求的访问权限类型。有两种基本方式来授予对给定资源的访问权限:

  • 文件授权

文件授权由 FileAuthorizationModule 执行,它在使用 Windows 身份验证时处于活动状态。它执行 .aspx 或 .asmx 处 理程序文件的访问控制列表 (ACL) 检查以确定用户是否应该具有访问权限。应用程序可以进一步使用模拟在正在访问的资源上 进行资源检查。

  • URL 授权

URL 授权由 URLAuthorizationModule 执 行,它将用户和角色映射到 URL 命名空间的块上。此模块实现正和负两种授权断言。也就是说,对于某些集、用户或角色,该模 块可用于有选择地允许或拒绝对 URL 命名空间的任意部分的访问。

URLAuthorizationModule 在任何 时候都是可用的。只需在配置文件的 <authorization> 部分的 <allow> 或 <deny> 元素中放置用户和/或 角色的列表即可。

若要建立访问特定目录的条件,则必须将一个包含 <authorization> 部分的配置文件放置在该目录中。为该目录设置的条件也会应用到其子目录,除非子目录中的配置文件重写这些条件。此部分的常规语法如下所 示。

<[element] [users] [roles] [verbs]/>

元素是必需的。必须包含 usersroles 属性。可以同时包含二者,但这不是必需的。verbs 属性是可选的。

允许的元素有 <allow><deny>,它们分别授予和撤消访问权限。每个元素支 持三个属性,这些属性在下面的表中定义。

属性

说明

roles

标识此元素的目标角色。请求所关联的 IPrincipal 对象 确定角色成员。可以将任意 IPrincipal 对象附加到 给定请求的上下文中,这些对象可通过您喜欢的任何方式来确定角色成员。例如,默认的 WindowsPrincipal 类使用 Microsoft Windows NT 组来确定角色成员。

users

标识此元素的目标身份。

verbs

定义操作所要应用到的 HTTP 谓词,如 GETHEADPOST

还会拒绝匿名用户。

以下示例向 Kim 和管理角色的成员授予权限,而拒绝 John 和 所有匿名用户:

<authorization>

<allow users="Kim"/>

<allow roles="Admins"/>

<deny users="John"/>

<deny users="?"/>

</authorization>

用户和角色都可以通过使用逗号分隔的列表来引用多个实体,如下面的示例所示。

<allow users="John, Kim, contoso\Jane"/>

注意,域帐户 (contoso\Jane) 必须同时包括域和用户名的组合。

除身份名称外,还有两种特殊身份,如下表所示。

标识

说明

*

指所有身份

?

指匿名身份

若要允许 John 并拒绝其他任何人,可以构造下面的配置部分。

<authorization>

<allow users="John"/>

<deny users="*"/>

</authorization>

下面的示例允许每个人使用 GET,但只有 Kim 可以使用 POST

<authorization>

<allow verb="GET" users="*"/>

<allow verb="POST" users="Kim"/>

<deny verb="POST" users="*"/>

</authorization>

使用下面的试探法应用规则:

  • 位于较低目录级别的配置文件中包含的规则优先于位于较高目录级别的规则。系统通过构造一个 URL 的所有规 则的合并列表,其中最近(层次结构中距离最近)的规则位于列表头,来确定哪条规则优先。
  • 给定 URL 的一组合并的规则,系统从列表头开始,检查规则直到找到第一个匹配项为止。注意,ASP.NET 的默认配置包含向所有用户授权的 <allow users="*"> 元素。如果没有匹配的规则,则将允许请求,除非另外拒绝。如果找到匹配项并且匹配项是 <deny> 元素,则它将返回 401 状态代码。应用程序或站点可以方便地配置位于其站点或应用程序顶层的 <deny users="*"> 元素以防止此行为。

如果是 <allow> 匹 配,则模块不执行任何操作,允许进一步处理请求。

还有 <location> 标 记,您可以使用该标记来指定特定的文件或目录,由该标记环绕(即在 <location></location> 标 记之间)的那些设置将应用到该文件或目录。

转载于:https://www.cnblogs.com/shinehouse/articles/2989681.html

WebConfig Authorization 节点相关推荐

  1. WebConfig自定义节点并读取

    最近是遇到了一个需求,需要自定义WebConfig节点,然后进行读取,网上有很多博客,写的非常好,但是笔者在实现的过程中还是遇到了点问题,现在写一篇文章来总结下. 首先推荐大家看http://www. ...

  2. WebConfig主要节点配置总结

    转自:HKbrain http://hi.baidu.com/hkbrian/blog/item/f66be1a3d88d03a5caefd03b.html Web.config文件是一个XML文本文 ...

  3. 使用Identity Server 4建立Authorization Server (4)

    预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二 ...

  4. Security Tutorials系列文章第七章:User-Based Authorization(上)

    本文英文原版及代码下载:http://www.asp.net/learn/security/tutorial-07-cs.aspx Security Tutorials系列文章第七章:User-Bas ...

  5. 如何使用Windows Identity Foundation(WTF)实现单点登录

    资料参考来源 : 我姓区不姓区 有关于WIF的介绍以及环境配置在此不多说,可以去网上搜索,或者点击上方链接前往查看,以下所述都基于WIF配置完成的条件上: 以下很多东西都是从 我姓区不姓区 的博客直接 ...

  6. 在ASP.NET中如何用C#.NET实现基于表单的验证

    这篇文章引用到了Microsoft .NET类库中的以下名空间: System.Data.SqlClient System.Web.Security ------------------------- ...

  7. ASP.NET 安全认证(二)——灵活运用 Form 表单认证中的 deny 与 allow 及保护 .htm 等文件 ....

    话说上回,简单地说了一下 Form 表单认证的用法.或许大家觉得太简单,对那些大内高手来说应该是"洒洒水啦""小 Kiss 啦(小意思)".今天咱们来点的花样吧 ...

  8. ASP.NET 安全认证(二)——灵活运用deny与allow 及保护.htm等文件

    第二部分 Form 认证的实战运用 话说上回,简单地说了一下 Form 表单认证的用法.或许大家觉得太简单,对那些大内高手来说应该是"洒洒水啦""小 Kiss 啦(小意思 ...

  9. 案例演示按角色的form认证实现过程

    参考了一些资料,将按角色的form认证的步骤和实现总结如下: 第一步:建立如图结构: 第二步:在根目录的web.config中添加authentication和authorization节点,并进行设 ...

最新文章

  1. 使用TextInputLayout分分钟构造一个酷炫登录框架
  2. sublime text 3 中的php代码语法检测
  3. linux下 LVM的应用
  4. redis存opc_Redis集群的三种模式
  5. 为什么我们总是「习惯性辩解」?
  6. Asp.net邮件系统的模拟与实现源码
  7. php 实现数组转json数据结构,php怎么实现数组转json
  8. PyCharm新建项目-运行第一个helllo Python程序
  9. 如何配置数据库ODBC数据源
  10. r中gglot怎么组合多张图_继电器组合扫盲篇
  11. C语言 · 冒泡法排序
  12. 解压版(绿色版)Tomcat配置
  13. 2020届秋招中兴笔试题
  14. Ember Model
  15. Pr 入门教程如何减少音频中的噪音和混响?
  16. w ndows10图标,Win10桌面图标没了怎么办?Win10桌面快捷方式消失了解决方法
  17. Docker:(四)docker网络模式
  18. easyScholar简介
  19. linux修改为英文环境、中文输入
  20. 谷歌外贸sem与百度内贸sem的不同

热门文章

  1. 安卓App报错:android.os.FileUriExposedException
  2. JAVA进阶day05包和权限
  3. Taro+react开发(27)别加view
  4. 前端学习(3143):react-hello-react之总结生命周期
  5. [html] 使用button当按钮和使用div当按钮有什么区别?
  6. [html] HTML与XHTML二者有不同
  7. 工作215:打印出父子组件的this
  8. 工作175:数据在表格横坐标动态显示
  9. 前端学习(2661):生命周期
  10. 前端学习(2029)vue之电商管理系统电商系统之timeline组件