WebConfig Authorization 节点

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

  • 文件授权

文件授权由 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle buffer状态深入剖析

这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMjA4NDM2.html所做学习笔记1. 什么是buffer之前提过很多次啦&#xff0c; 其实在oracle数据文件中最小的单位就是block, 而用户读取block数据时&#xff0c;oracle就会将block的数据放入缓存&#x…

java整数类型

1.整数数据在java中有三种表达形式&#xff1a;八进制&#xff0c;十进制&#xff0c;十六进制 2.整数类型的取值范围&#xff1a; 数据类型 内存的空间&#xff08;8位等于1字节&#xff09; 取值范围 byte&#xff1a; 8 …

目录与文件的相关操作

绝对路径与相对路径 绝对路径&#xff1a;路径写法一定是由根目录写起&#xff0c;例如&#xff1a;/home/zhangj这个目录。相对路径&#xff1a;不是由/写起&#xff0c;例如由&#xff1a;/home/zhangj要到/home/lostfound下面时&#xff0c;可以写成cd ../lostfound&#xf…

第二章 findxargs

1.find pathname -options [-print - exec/-ok] find 命令格式 2.pathname :目录的路径 3.-print : 将匹配的文件以标准方式输出 4.-exec :对匹配的文件执行该参数的shell命令形式为command space {} space\; 例如&#xff1a;find . -name 1 -exec cat {} \ ; 找到名字是…

数据库使用

1.启动数据库服务器 win r services.msc 找到mysql 右键启动 以管理员身份运行cmd 2.启动: net start mysql 3.关闭&#xff1a;net stop mysql 4.登录&#xff1a; mysql -h ip -P 端口 -u 用户名 -p C:\Windows\system32>mysql -h localhost -P 3306 -u root -p E…

选择不相交区间(贪心算法) By ACReaper

题目的分析被说得有点绕。自己理解是这样&#xff0c;首先由题目我们知道选择的区间都是相互不相交的&#xff0c;除这之外&#xff0c;我们的目标是尽量的让选择的区间达到最大化。 所以我们可以先对齐排序&#xff0c;因为输入是随机的。假设每个区间表示为(x,y)我们可以选择…

php 非常有用的高级函数PATH_SEPARATOR常量和set_include_path

zendframework的示例index.php里有这样一句 set_include_path(. . PATH_SEPARATOR . ../library/. PATH_SEPARATOR . ./application/models/. PATH_SEPARATOR . ./application/lib/. PATH_SEPARATOR . get_include_path()); 不知道 PATH_SEPARATOR是什么&#xff0c;其实就是…

数据库笔记(数据库操作)

1.windows系统下 数据库启动 net start mysql 2.连接与断开服务器 MySQL -h 地址 -p 端口 -u 用户名 -p 密码 3.查看当前数据库 select database(); 4.显示当前时间&#xff0c;用户名&#xff0c;数据库版本 select now(),user(),version(); 5.创建库 1.create data…

转使用jQuery Ajax的内存回收

通过查看jquery API&#xff0c;发现jquery还有一个 complete对象&#xff0c;是请求完成后回调函数 (请求成功或失败之后均调用)。 同时有两个参数XMLHttpRequest, textStatus。所以&#xff0c;我们只需要在请求完成后&#xff0c;将传回的XMLHttprequest对象手工回收即可&am…

java面向对象(引用类型--参数传递)

/* 基本数据类型&#xff1a;方法调用&#xff0c;传的是具体数据 引用数据类型&#xff1a;方法调用&#xff0c;传的是地址*/ class person{String name;public void eat(){System.out.println("persion里调用的"name);} }public class chuancan {public static vo…

Oracle中的Round和Trunc

一、Oracle中的Round和Trunc&#xff1a; 如同对数字进行四舍五入和按位截取一样&#xff0c;Oracle对时间日期也提供了这两种功能。但比起对数字进行四舍五入和截取比较复杂&#xff1a;这是因为时间日期是有格式的。下面看看这两个函数的定义和用途&#xff1a;ROUND(date [,…

私有化成员变量

/*** 封装**/ import java.util.Scanner; class People{String name; private int age ;//私有化变量&#xff0c;只有成员变量可以用&#xff0c;局部变量不可以用//定义一个方法public void eat(){System.out.println(name"..."age);}//判断输入的值是否合理public…

htaccess文件,强大的功能

1. 運用.htaccess 樹立自定義的出錯頁面。對付Linux Apache來講這是一項極其簡單的事情。運用上面的.htaccess語法你可以輕松的實現這一服從。&#xff08;把.htaccess放在你的web根目次下&#xff09; ErrorDocument 401 /error/401.phpErrorDocument 403 /error/403.phpError…

封装(私有化成员变量,获取变量值)

/* 变量&#xff1a;操作赋值变量----setxxx获取变量的值----getxxx 内容&#xff1a;创建一个方法&#xff0c;人类1属性&#xff1a;名字&#xff0c;年龄方法&#xff1a;说我是xx年龄xx 要求&#xff1a;成员变量全部私有使用公共访问方法操作变量*/ import java.util.Scan…