这两个东西很绕口,也绕脑袋。

一般来说,了解authentication(验证)的用法即可,用于自定义的用户验证。

authorization(授权)主要通过计算机信息来控制。

“*”:所有用户;

“?”:匿名用户;

官方说明如下:

http://msdn.microsoft.com/ZH-CN/library/532aee0e%28v=VS.110,d=hv.2%29.aspx
http://msdn.microsoft.com/ZH-CN/library/8d82143t%28v=VS.110,d=hv.2%29.aspx

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 资源的访问。 &lt;allow users="*"/&gt;.">默认的授权规则为 <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(授权)的更多相关文章

  1. 也谈Asp.net 中的身份验证

    钱李峰 的这篇博文<Asp.net中的认证与授权>已对Asp.net 中的身份验证进行了不错实践.而我这篇博文,是从初学者的角度补充了一些基础的概念,以便能有个清晰的认识. 一.配置安全身 ...

  2. ASP.NET中 RegularExpressValidator(正则验证)的使用

    原文:ASP.NET中 RegularExpressValidator(正则验证)的使用 ylbtech-ASP.NET-Control-Validator: RegularExpressValida ...

  3. Asp.net中基于Forms验证的角色验证授权

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...

  4. 利用.net的内部机制在asp.net中实现身份验证

    知识点: 在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了Response,Request,Session,Application的操作.在使用Visual Stu ...

  5. [转]ASP.NET中的forms验证

    本文转自:http://www.cnblogs.com/fengzheng126/archive/2012/04/06/2435513.html ASP.NET的安全认证:Windows验证 (默认) ...

  6. asp.net中使用forms验证

    1.首先在web.config中修改验证方式为 "Forms" <authentication mode="Forms"> 这里的模式有很多中,可自 ...

  7. ASP.NET中的请求验证

    这两天做项目的时候偶然发现项目中的保存功能的时候出现这样的异常:异常详细信息: System.Web.HttpRequestValidationException: 从客户端(XXXX)中检测到有潜在 ...

  8. ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释

    ASP.NET身份验证模式包括Windows.Forms(窗体).Passport(护照)和None(无). l  Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,AS ...

  9. c# asp.net 中使用token验证

    基于token的鉴权机制类似于http协议也是无状态的,它不需要在服务端去保留用户的认证信息或者会话信息.这就意味着基于token认证机制的应用不需要去考虑用户在哪一台服务器登录了,这就为应用的扩展提 ...

随机推荐

  1. Android开发优化

    一:Android性能优化之渲染篇 1.双层LinearLayout重叠用一个RelatayLout替代布局 二:Android性能优化之运算篇 1.float比较时间是int的4倍,尽量使用int类 ...

  2. MATLAB格式化输出控制 分类: 数学 2015-07-31 23:01 3人阅读 评论(0) 收藏

    MATLAB格式化输出控制 format 默认格式 format short 5字长定点数 format long 15字长定点数 format short e 5字长浮点数 format long ...

  3. 水灾(sliker.cpp/c/pas) 1000MS 64MB

    大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上 ...

  4. Meven笔记

    技术交流群:233513714 1.Meven环境搭建 http://www.cnblogs.com/quanyongan/archive/2013/04/17/3025971.html 2.Ecli ...

  5. Draw a Border around any C# Winform Control

    public class MyGroupBox : GroupBox { protected override void OnPaint(PaintEventArgs e) { base.OnPain ...

  6. MFC开发上位机到底用Dialog结构还是文档结构?

    最近要跟着导师一起开发一款大型上位机.MFC新人在考虑用对话框结构还是文档结构. 虽然说书上说大型结构的软件都需要文档结构,但是目前来看,对话框可以实现功能,并且对话框的程序更小一些,节省资源加载速度 ...

  7. Unity3d 无网络权限下打开网站

    有人问“更多游戏”没有网络权限怎么实现,其实调用浏览器访问外部链接不需要网络通讯权限,代码如下: Uri moreGame = Uri.parse("http://wapgame.189.c ...

  8. android 添加依赖的库文件

    Notpad: 2016-3-16: 1.android 添加依赖的库文件 右键自己的项目 -> properties ->android ->在Library处点击add -> ...

  9. 1kkk

    代码: # !usr/bin/python3.4 # -*- coding:utf-8 -*- import requests import os import time import re from ...

  10. python子类分配

    原问题是将左边样式变成右边样式: 即有父类和子类,父类包括多个子类,怎样将子类匹配到父类下面的问题 代码如下 #!/usr/bin/python3.4 # -*- coding: utf-8 -*- ...