详解ASP.NET身份验证服务

开发 后端
本文介绍ASP.NET身份验证服务,ASP.NET与IIS 一起使用以支持身份验证,并使用基本、简要和 Windows 身份验证。

身份验证和授权

ASP.NET 与 IIS 一起使用以支持身份验证,并使用基本、简要和 Windows 身份验证。ASP.NET 支持 Microsoft Passport 身份验证服务,该服务提供单一登录服务和对用户配置文件服务的支持。ASP.NET 还为要使用基于窗体的身份验证的应用程序提供可靠的服务。基于窗体的身份验证使用 Cookie 鉴别用户的身份,并允许应用程序执行自己的凭据验证。

认识到 ASP.NET身份验证服务取决于 IIS 提供的身份验证服务很重要。例如,若要在 IIS 应用程序中使用基本身份验证,必须使用 Internet 服务管理器工具为应用程序配置基本身份验证的使用。

ASP.NET 提供两类授权服务:

根据 ACL 或资源权限进行检查,以确定已经过验证的用户帐户能否访问资源。

URL 授权,它授权 Web 空间各部分的标识。

为阐释差异,请考虑这样一个方案,在该方案中应用程序被配置为允许使用 IUSR_MYMACHINE 帐户进行匿名访问。在授权对 ASP.NET 页(如“/default.aspx”)的请求后,根据 ACL 检查该文件(例如“c:\inetpub\wwwroot\default.aspx”)以确定 IUSR_MYMACHINE 帐户是否具有读取该文件的权限。如果有,则授权访问。文件授权自动执行。

对于 URL 授权,根据为 ASP.NET 应用程序计算的配置数据对匿名用户进行检查。如果允许访问请求的 URL,则授权该请求。在这种情况下,ASP.NET 检查匿名用户是否具有对 /Default.aspx 的访问权(即检查根据的是 URL 本身而不是 URL 最终解析到的文件)。

可能看起来差异很小,但它使应用程序能够使用像基于窗体的身份验证或护照身份验证(在此身份验证中用户与计算机或域帐户并不对应)这样的身份验证方案。此外,它还启用对虚拟资源的授权,这类资源没有物理文件作为基础。例如,应用程序可选择将以 .stk 结尾的文件的所有请求映射到某一处理程序,该处理程序基于查询字符串中存在的变量提供常用引号。在这种情况下,不存在执行 ACL 检查所依据的物理 .stk,因此 URL 授权用于控制对虚拟资源的访问。

文件授权的执行依据的始终是由 IIS 提供的经过身份验证的帐户。如果允许匿名访问,则该帐户是经过配置的匿名帐户。否则,它使用 NT 帐户。这与 ASP 的工作方式完全相同。

在“资源管理器”属性页中使用“安全”选项卡为给定的文件或目录设置文件 ACL.URL 授权被配置为 ASP.NET 框架应用程序的一部分,并在授权用户和角色中有完整的描述。

若要激活 ASP.NET身份验证服务,必须在应用程序的配置文件中配置 <authentication> 元素。该元素可具有下表中列出的任何值。

Value 说明

没有 ASP.NET身份验证服务是活动的。注意,IIS 身份验证服务仍可以存在。

Windows ASP.NET身份验证服务将 WindowsPrincipal (System.Security.Principal.WindowsPrincipal) 附加到当前请求以启用对 NT 用户或组的授权。

窗体 ASP.NET身份验证服务管理 Cookie 并将未经身份验证的用户重定向到登录页。它通常与 IIS 选项一起使用以允许匿名访问应用程序。

护照 ASP.NET身份验证服务为护照 SDK(必须安装在计算机上)提供的服务提供了一个方便的包装。

例如,下列配置文件为应用程序启用基于窗体 (Cookie) 的身份验证:

  1. <configuration> 
  2. <system.web> 
  3. <authentication mode="Forms"/> 
  4. </system.web> 
  5. </configuration> 

【编辑推荐】

  1. 浅析ASP.NET Web 安全性
  2. ASP.NET的Session State
  3. 浅析IsPostBack属性ASP.NET
  4. ASP.NET构架与安全机制
  5. 概述ASP.NET水晶报表
责任编辑:佚名 来源: 赛迪网
相关推荐

2011-05-23 10:37:03

2021-02-17 08:51:55

cookie身份验证

2009-07-29 16:47:40

ASP.NET表单身份

2012-06-04 09:36:50

2014-12-11 10:05:13

ASP.NET

2009-09-18 10:20:26

PRG数据验证

2012-04-16 09:54:26

2009-07-29 09:59:10

ASP.NET For

2009-08-04 16:50:26

2009-07-20 16:08:04

ASP.NET应用程序

2023-04-18 08:00:35

DexKubernetes身份验证

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-05 16:50:09

ASP.NET For

2009-08-05 16:17:29

ASP.NET For

2009-07-27 17:25:53

ASP.NET验证控件

2012-05-07 14:50:32

ASP.NET

2009-08-28 09:58:20

ASP.NET Web

2009-08-05 15:29:33

ASP.NET For

2009-08-05 13:09:17

ASP.NET应用执行

2009-11-24 15:11:21

ASP.NET MVC
点赞
收藏

51CTO技术栈公众号