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认证机制的应用不需要去考虑用户在哪一台服务器登录了,这就为应用的扩展提 ...
随机推荐
- activiti工作流数据库表详细介绍 (23张表)
Activiti的后台是有数据库的支持,所有的表的表名都以ACT_开头,表名的第二部分是用来表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repositor ...
- Codeforces Round #133 (Div. 2)
A. Tiling with Hexagons 看成大三角形扣去3个小三角形. B. Forming Teams 由于每个点的度数不超过2,所以最后每个点要么在一条链上要么在一个环上. 在环上的话,每 ...
- Codeforces Round #126 (Div. 2)
A. Cinema 假设当前要的位置为\((x, y)\),如果枚举答案的横坐标,那么每次找离\(y\)最近的纵坐标. 如果占用了位置\((x,y)\),需要要更新第\(x\)行的信息,而占用位置\( ...
- kafka的推和拉的问题
之前学习过这一问题,但是面试又被问道了.再次记录下 推还是拉? Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers将消息推送到consumer,也就是pull还p ...
- URAL 1077 Travelling Tours(统计无向图中环的数目)
Travelling Tours Time limit: 1.0 secondMemory limit: 64 MB There are N cities numbered from 1 to N ( ...
- hdu5441(2015长春赛区网络赛1005)类最小生成树、并查集
题意:有一张无向图,一些点之间有有权边,某条路径的值等于路径上所有边的边权的最大值,而某个点对的值为这两点间所有路径的值的最小值,给出多个询问,每个询问有一个值,询问有多少点对满足其值小于等于询问值. ...
- <老友记>学习笔记
这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...
- Android学习笔记进阶之在图片上涂鸦(能清屏)
Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...
- 如何将SQL Server 2008库导入2000中
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- snort使用
http://jingyan.baidu.com/article/d8072ac45a626fec95cefd85.html 接上篇,如果编译安装snort并指定了prefix,那么须指定一个软链接, ...