利用Web.config中的authorization标签设置授权属于URL授权。

使用 URL 授权

通过 URL 授权,您可以显式允许或拒绝某个用户名或角色对特定目录的访问权限。为此,请在该目录的配置文件中创建一个 authorization 节。若要启用 URL 授权,请在配置文件的 authorization 节中的 allow 或 deny 元素中指定一个用户或角色列表。为目录建立的权限也会应用到其子目录,除非子目录中的配置文件重写这些权限。

下面显示了 authorization 节的语法:

<authorization>
<[allow|deny] users roles verbs />
</authorization>

allow 或 deny 元素是必需的。必须指定 users 或 roles 属性。可以同时包含二者,但这不是必需的。verbs 属性可选。一旦设置了allow或deny,必须带上user或roles 二者其中之一。否则运行的时候就会出错。

属性

说明

users

标识此元素的目标身份(用户帐户)。

用问号 (?) 标识匿名用户。可以用星号 (*) 指定所有经过身份验证的用户。

roles

为被允许或被拒绝访问资源的当前请求标识一个角色(RolePrincipal 对象)。有关更多信息,请参见使用角色管理授权

verbs

定义操作所要应用到的 HTTP 谓词,如 GET、HEAD 和 POST。默认值为"*",它指定了所有谓词。

上面若设置了user,若使用Forms认证,一单设置FormsAuthentication.SetAuthCookie生成Principal起,则开始进行授权;Windows认证估计从登录时起。roles的需要结合另外一个标签来试验,若启用了roleManager并通过Roles给当前的User设置角色,则可进行授权验证。

allow和deny标签可以有多个,可以使用逗号分隔的列表为 users 和 roles 属性指定多个实体。请注意,如果指定一个域帐户名,该名称必须包含域名和用户名 (contoso\Jane)。

规则应用如下:

  • 应用程序级别的配置文件中包含的规则优先级高于继承的规则。系统通过构造一个 URL 的所有规则的合并列表,其中最近(层次结构中距离最近)的规则位于列表头,来确定哪条规则优先。
  • 给定应用程序的一组合并的规则,ASP.NET 从列表头开始,检查规则直至找到第一个匹配项为止。ASP.NET 的默认配置包含向所有用户授权的 <allow users="*"> 元素。(默认情况下,最后应用该规则。)如果其他授权规则都不匹配,则允许该请求。如果找到匹配项并且它是deny 元素,则向该请求返回 401 HTTP 状态代码。如果 allow 元素匹配,则模块允许进一步处理该请求。

还可以在配置文件中创建一个 location 元素以指定特定文件或目录,location 元素中的设置将应用于这个文件或目录。

授权决定了是否应授予某个标识对特定资源的访问权限。在 ASP.NET 中,有两种方式来授予对给定资源的访问权限:

  • 文件授权   文件授权由 FileAuthorizationModule 执行。它检查 .aspx 或 .asmx 处理程序文件的访问控制列表 (ACL) 以确定用户是否应该具有对文件的访问权限。ACL 权限用于验证用户的 Windows 标识(如果已启用 Windows 身份验证)或 ASP.NET 进程的 Windows 标识。有关更多信息,请参见 ASP.NET 模拟
  • URL 授权   URL 授权由 UrlAuthorizationModule 执行,它将用户和角色映射到 ASP.NET 应用程序中的 URL。这个模块可用于有选择地允许或拒绝特定用户或角色对应用程序的任意部分(通常为目录)的访问权限。

来自 <https://msdn.microsoft.com/zh-cn/library/wce3kxhd(v=vs.100).aspx>

authorization与URL授权的更多相关文章

  1. authentication vs authorization 验证与授权的区别

    认证和授权的区别 Authentication vs. Authorization简单来说,认证(Authentication )是用来回答以下问题: 用户是谁 当前用户是否真的是他所代表的角色 通常 ...

  2. Spring Authorization Server 实现授权中心

    Spring Authorization Server 实现授权中心 源码地址 当前,Spring Security 对 OAuth 2.0 框架提供了全面的支持.Spring Authorizati ...

  3. Spring Authorization Server 全新授权服务器整合使用

    前言 Spring Authorization Server 是 Spring 团队最新开发适配 OAuth 协议的授权服务器项目,旨在替代原有的 Spring Security OAuth 经过半年 ...

  4. 解决 Page 'http://localhost:63342/v3/js/math/math.map' requested without authorization页面未授权问题

    用webstorm调试页面时,老是弹出对话框说页面未授权,如下图: 解决方法尝试了两种都有效,感觉第一种是正解通用,第二种大家也可以了解一下作为参考 第一种: File--Settings如下图 第二 ...

  5. github 授权登录教程与如何设计第三方授权登录的用户表

    需求:在网站上想评论一篇文章,而评论文章是要用户注册与登录的,那么怎么免去这麻烦的步骤呢?答案是通过第三方授权登录.本文讲解的就是 github 授权登录的教程. 效果体验地址:http://biao ...

  6. [转]OAuth 2.0 - Authorization Code授权方式详解

    本文转自:http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html I:OAuth 2.0 开发 ...

  7. Security » Authorization » 基于视图的授权

    View Based Authorization¶ 基于视图的授权 44 of 46 people found this helpful Often a developer will want to ...

  8. OAuth 2.0 - Authorization Code授权方式详解

    I:OAuth 2.0 开发前期准备 天上不会自然掉馅饼让你轻松地去访问到人家资源服务器里面的用户数据资源,所以你需要做的前期开发准备工作就是把AppKey, AppSecret取到手 新浪获取传送门 ...

  9. Security » Authorization » 基于自定义策略的授权

    Custom Policy-Based Authorization¶ 基于自定义策略的授权 98 of 108 people found this helpful Underneath the cov ...

随机推荐

  1. 初试Office 365企业版E3

    Microsoft Office 365 团队给了所有现任的MVP 12个月的微软 Office 365 企业 E3 订阅,今天激活账号并试用了一下,发现非常强大,本文简要介绍下Office 365 ...

  2. 动态Web API层

    返回总目录 本篇目录 构建动态Web API控制器 ForAll 方法 重写ForAll 方法 Http动词 动态Javascript代理 Ajax参数 单一服务脚本 Angular支持 Durand ...

  3. [.net 面向对象程序设计进阶] (1) 开篇

    [.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...

  4. [每日电路图] 9、介绍一种低价简单的4.2V锂电池充电及稳压(LDO)电路——RT9193,SD8017

    消费类电子电路图设计中往往会涉及到4.2V锂离子电池充电电路.及4.2V转3.3V的LDO稳压电路,这里分享一种简单.便宜的设计方案: RT9193 300mA,Ultra-Low Noise,Ult ...

  5. JS设计模式(一)

    刚入职时,看过一段时间的设计模式,似懂非懂.不知不觉过去七个月了,对JS的理解更深刻了,数据结构与算法的基础也基本上算是过了一遍了,接下来要把设计模式搞定,然后不再深层次研究JS了,而是学习前端自动化 ...

  6. 解决vue与传统jquery插件冲突

    比如基于jquery的select2插件,在vue下单独用有很多问题,其实对于这类插件,可以用vue的自定义指令和组件来包装,解决冲突的问题.引用官方vue1.0和2.0的两个例子,学习一下. 例子1 ...

  7. Nginx重写

    一.location匹配 1.分类:(1)正则location:~,~*(2)普通location:=,^~,@,无2.匹配规则:(1) =    精确匹配.如果找到,停止搜索(2) ^~    普通 ...

  8. Razor Engine,实现代码生成器的又一件利器

    Razor Engine,之前仅仅是ASP.NET MVC的一种View引擎,目前已经完全成为一种可以独立使用的模版引擎,并且已经成为了CodePlex上一个开源的项目(http://razoreng ...

  9. ASP.NET MVC之视图生成URL(二)

    前言 上一节我们讲述了MVC中从控制器到视图传递数据的四种方式,想必大家早已掌握了,那我们继续往下走. 话题 在MVC的Web应用程序中,我们经常会出现这样的操作,从一个视图跳转到另外一个视图,大部分 ...

  10. MongoDB学习系列(2)--使用PHP访问MongoDB

    第一部分:介绍 在Windows上安装最新MongoDB步骤非常的简单,这里不做介绍.但是如果你安装的时候没有将MongoDB作为服务运行,每次你都要使用cmd切换到指定的目录下,然后在cmd中启动M ...