ASP.NET 中的 authentication(验证)与authorization(授权)
这两个东西很绕口,也绕脑袋。
一般来说,了解authentication(验证)的用法即可,用于自定义的用户验证。
“*”:所有用户;
“?”:匿名用户;
官方说明如下:
authorization 元素
配置 Web 应用程序的授权,以控制客户端对 URL 资源的访问。
<authorization> <allow .../> <deny .../> </authorization>
以下几节描述了特性、子元素和父元素。
子元素
|
子标记 |
说明 |
|---|---|
|
allow |
向授权规则映射添加一个规则,该规则允许对资源进行访问。 |
|
deny |
向授权规则映射添加一条拒绝对资源的访问的授权规则。 |
父元素
|
元素 |
说明 |
|---|---|
|
configuration |
指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。 |
|
system.web |
指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。 |
authorization element configures the authorization for a Web application, controlling client access to URL resources. "> authorization 元素为 Web 应用程序配置授权,以控制对 URL 资源的客户端访问。
allow and deny elements, starting at the most local configuration file, until the authorization module finds the first access rule that fits a particular user account."> 运行时,授权模块从最本地的配置文件开始,循环访问 allow 和 deny 元素,直到它找到适合特定用户帐户的第一个访问规则。 allow or a deny rule.">然后,该授权模块根据找到的第一个访问规则是 allow 还是 deny 规则来允许或拒绝对 URL 资源的访问。 <allow users="*"/>.">默认的授权规则为 <allow users="*"/>。 因此,默认情况下允许访问,除非另外配置。
为了便于部署,支持表示当前计算机的句点 (.) 简便表示法。 这使您能够用句点-反斜杠序列 (.\) 为每个用户或角色加上前缀,如下所示:
<allow roles=".\roleName"/> <allow users=".\userName"/>
运行时,句点-反斜杠序列会替换为 "本地计算机名\" 序列。 只有当 Microsoft Windows 标识用于请求时,才会进行此替换。 这是为了避免在句点-反斜杠序列用于具有自定义主体的任意规则时产生冲突。
authorization element does not represent a collection, there are no clear or remove child elements.">因为 authorization 元素不表示集合,所以没有 clear 或 remove 子元素。 Clear() or Remove(AuthorizationRule) method.">若要以编程方式清除授权规则映射,请使用 Clear() 或 Remove(AuthorizationRule) 方法。
默认配置
authorization element is configured in the root Web.config file in the .NET Framework version 2.0, and configured in the Machine.config file in the .NET Framework versions 1.1 and 1.0.">下面的默认 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."> Windows.">默认值为 WindowsWindows.">。Windows."> |
子元素
|
元素 |
说明 |
|---|---|
|
forms |
配置 ASP.NET 应用程序以执行基于窗体的自定义身份验证。 |
|
passport |
指定要重定向到的页(如果该页要求身份验证,而用户尚未通过 Microsoft Passport Network 身份验证注册)。 |
父元素
|
元素 |
说明 |
|---|---|
|
configuration |
指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。 |
|
system.web |
指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。 |
authentication element configures the ASP.NET authentication scheme for an ASP.NET application."> authentication 元素为 ASP.NET 应用程序配置 ASP.NET 身份验证方案。 身份验证方案确定如何识别要查看 ASP.NET 应用程序的用户。 mode attribute specifies the authentication scheme."> mode 特性指定身份验证方案。 ASP.NET Authentication.">有关可用的身份验证方案的更多信息,请参见 ASP.NET Authentication。
默认配置
authentication element is not explicitly configured in the Machine.config or the root Web.config file."> 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 section to require forms authentication by all users and to deny anonymous users access to the site.">必须将 authorization 节包含在内才能要求对所有用户进行 Forms 身份验证,并拒绝匿名用户访问站点。
<configuration> <system.web> <authentication mode="Forms"> <forms name="401kApp" loginUrl="/login.aspx"/> </authentication> <authorization> <deny users="?"/> </authorization> </system.web> </configuration>
ASP.NET 中的 authentication(验证)与authorization(授权)的更多相关文章
- 也谈Asp.net 中的身份验证
钱李峰 的这篇博文<Asp.net中的认证与授权>已对Asp.net 中的身份验证进行了不错实践.而我这篇博文,是从初学者的角度补充了一些基础的概念,以便能有个清晰的认识. 一.配置安全身 ...
- ASP.NET中 RegularExpressValidator(正则验证)的使用
原文:ASP.NET中 RegularExpressValidator(正则验证)的使用 ylbtech-ASP.NET-Control-Validator: RegularExpressValida ...
- Asp.net中基于Forms验证的角色验证授权
Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...
- 利用.net的内部机制在asp.net中实现身份验证
知识点: 在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了Response,Request,Session,Application的操作.在使用Visual Stu ...
- [转]ASP.NET中的forms验证
本文转自:http://www.cnblogs.com/fengzheng126/archive/2012/04/06/2435513.html ASP.NET的安全认证:Windows验证 (默认) ...
- asp.net中使用forms验证
1.首先在web.config中修改验证方式为 "Forms" <authentication mode="Forms"> 这里的模式有很多中,可自 ...
- ASP.NET中的请求验证
这两天做项目的时候偶然发现项目中的保存功能的时候出现这样的异常:异常详细信息: System.Web.HttpRequestValidationException: 从客户端(XXXX)中检测到有潜在 ...
- ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释
ASP.NET身份验证模式包括Windows.Forms(窗体).Passport(护照)和None(无). l Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,AS ...
- c# asp.net 中使用token验证
基于token的鉴权机制类似于http协议也是无状态的,它不需要在服务端去保留用户的认证信息或者会话信息.这就意味着基于token认证机制的应用不需要去考虑用户在哪一台服务器登录了,这就为应用的扩展提 ...
随机推荐
- 关于HTML的Element
今天搞HTML的时候,发现了一些操作element的方法.先引用一篇. 1.document.getElementById(id); 2.document.getElementByTagName(t ...
- CSS--滚动条设置;
CSS滚动条实现步骤及美化小技巧 1.overflow-y : 设置当对象的内容超过其指定高度时如何管理内容:overflow-x : 设置当对象的内容超过其指定宽度时如何管理内容. 参数:visib ...
- tomcat 启动时内存溢出
在tomcat_home/bin目录下找到catalina.bat,用文本编辑器打开,加上下面一行: set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=2 ...
- Codeforces Round #119 (Div. 2)
A. Cut Ribbon \(f(i)\)表示长为\(i\)的布条最多可以剪几段. B. Counting Rhombi \(O(wh)\)枚举中心计算 C. Permutations 将序列一映射 ...
- HDU-5532 Almost Sorted Array (LIS)
题目大意:给一个n个数的序列,问这个序列删掉一个数后是否有序. 题目分析:找最长上升子序列和最长下降子序列,只要有一个的长度不小于n-1即可. 代码如下: # include<iostream& ...
- 不带www的域名跳转至www域名
由于我网站是架设在Linux的VPS上的,所以我用例如下方法 .htaccess文件 首先要开启Apache服务器的.htaccess功能,我在Apache安全配置中有分享过:开启之后新建一个.hta ...
- PHP stdClass Object转array
用json传过来的数组并不是标准的array,所以需要用这个函数进行转换. function object_array($array){ if(is_object($array)) { ...
- ActionContext详解
ActionContext ActionContext是Action的上下文,Struts2自动在其中保存了一些在Action执行过程中所需的对象,比如session, parameters, ...
- JS 阻止浏览器默认行为和冒泡事件
JS 冒泡事件 首先讲解一下js中preventDefault和stopPropagation两个方法的区别: preventDefault方法的起什么作用呢?我们知道比如<a href=& ...
- Myisam and InnoDB
MyISAM引擎的特点: 1.堆组织表:2.不支持事务:3.数据文件和索引文件分开存储:4.支持全文索引:5.主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属 ...