All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
教程:使用WebService进行异步通信_.net资料_编程技术
Ajax标签导航实例详解-代码篇_[AJAX教程]
如何实现将Excel表(含多张数据库表)导入数据库(SQLServer)_[SQL,Server教程]
ASP.NET2.0自动搜索文件组成导航系统_.net资料_编程技术
在Visual,C#.Net中使用CWGraph控件_.net资料_编程技术
在vc MFC下制作具有XP风格按钮等控件
动态网页制作学习:PHP预定义变量_php资料_编程技术
五种形式的网页弹出窗口代码详解_JavaScript技术_编程技术
教你IIS6的PHP最佳配置方法_[PHP教程]
SQL2005其中三个版本的比较_[SQL,Server教程]
Reading number is top 10 pictures
避免防盗门的猫眼变成钥匙眼
Absolutely shocked. National geographic 50 animal photographys7
人美胸美腿更美4
含苞欲放的素颜美少女2
看到这个手速,决定过年就让我家猫帮我抢红包了。。
The goddess of the single reason1
The money of more than 100 countries and regions5
Magnificent cloud2
So beauty, will let you spray blood9
Athena chu perspective cheongsam shine with New York
Download software ranking
实战黑客不求人
Unix video tutorial4
Kung.Fu.Panda.2
C#与.NET技术平台实战演练
Boxer's Top ten classic battle7
尖东毒玫瑰B
The king of fighters 97(Mobile phone games-apk)
美女写真3
linux初级教程
金山office2007
delv published in(发表于) 2014/1/27 6:46:32 Edit(编辑)
ASP.NET,2.0,中的,Windows,身份验证_[Asp.Net教程]

ASP.NET,2.0,中的,Windows,身份验证_[Asp.Net教程]

ASP.NET 2.0 中的 Windows 身份验证_[Asp.Net教程]

  本教程阐释在 ASP.NET 2.0 版中,IIS 集成 Windows 身份验证以及 ASP.NET Windows 身份验证的工作机制。同时,阐释 NTLM 和 Kerberos 身份验证的工作机制。此外,本教程还阐释 WindowsAuthenticationModule 类如何构造 WindowsPrincipal 和 WindowsIdentity 对象,然后将这些对象附加到当前的 ASP.NET Web 请求以表示经过身份验证的用户。


  概述


  身份验证是一个验证客户端身份的过程,通常采用指定的第三方授权方式。客户端可能是最终用户、计算机、应用程序或服务。客户端的标识称为安全原则。为了使用服务器应用程序进行验证,客户端提供某种形式的凭据来允许服务器验证客户端的标识。确认了客户端的标识后,应用程序可以授予执行操作和访问资源的原则。


  如果应用程序使用 Active Directory 用户存储,则应该使用集成 Windows 身份验证。对 ASP.NET 应用程序使用集成 Windows 身份验证时,最好的方法是使用 ASP.NET 的 Windows 身份验证提供程序附带的 Internet 信息服务 (IIS) 身份验证方法。使用该方法,将自动创建一个 WindowsPrincipal 对象(封装一个 WindowsIdentity 对象)来表示经过身份验证的用户。您无需编写任何身份验证特定的代码。


  ASP.NET 还支持使用 Windows 身份验证的自定义解决方案(避开了 IIS 身份验证)。例如,可以编写一个根据 Active Directory 检查用户凭据的自定义 ISAPI 筛选器。使用该方法,必须手动创建一个 WindowsPrincipal 对象。


  ASP.NET 身份验证


  IIS 向 ASP.NET 传递代表经过身份验证的用户或匿名用户帐户的令牌。该令牌在一个包含在 IPrincipal 对象中的 IIdentity 对象中维护,IPrincipal 对象进而附加到当前 Web 请求线程。可以通过 HttpContext.User 属性访问 IPrincipal 和 IIdentity 对象。这些对象和该属性由身份验证模块设置,这些模块作为 HTTP 模块实现并作为 ASP.NET 管道的一个标准部分进行调用,如图 3 所示。



  图 3. ASP.NET 管道

  本文由设计家园 收集整理


  ASP.NET 管道模型包含一个 HttpApplication 对象、多个 HTTP 模块对象,以及一个 HTTP 处理程序对象及其相关的工厂对象。HttpRuntime 对象用于处理序列的开头。在整个请求生命周期中,HttpContext 对象用于传递有关请求和响应的详细信息。


  有关 ASP.NET 请求生命周期的详细信息,请参阅"ASP.NET Life Cycle",网址是 http://msdn2.microsoft.com/library/ms227435(en-US,VS.80).aspx。


  身份验证模块


  ASP.NET 2.0 在计算机级别的 Web.config 文件中定义一组 HTTP 模块。其中包括大量身份验证模块,如下所示:




type="System.Web.Security.WindowsAuthenticationModule" />
type="System.Web.Security.FormsAuthenticationModule" />
type="System.Web.Security.PassportAuthenticationModule" />

  


  只加载一个身份验证模块,这取决于该配置文件的 authentication 元素中指定了哪种身份验证模式。该身份验证模块创建一个 IPrincipal 对象并将它存储在 HttpContext.User 属性中。这是很关键的,因为其他授权模块使用该 IPrincipal 对象作出授权决定。


  当 IIS 中启用匿名访问且 authentication 元素的 mode 属性设置为 none 时,有一个特殊模块将默认的匿名原则添加到 HttpContext.User 属性中。因此,在进行身份验证之后,HttpContext.User 绝不是一个空引用(在 Visual Basic 中为 Nothing)。


  WindowsAuthenticationModule


  如果 Web.config 文件包含以下元素,则激活 WindowsAuthenticationModule 类。



  WindowsAuthenticationModule 类负责创建 WindowsPrincipal 和 WindowsIdentity 对象来表示经过身份验证的用户,并且负责将这些对象附加到当前 Web 请求。


  对于 Windows 身份验证,遵循以下步骤:


  •WindowsAuthenticationModule 使用从 IIS 传递到 ASP.NET 的 Windows 访问令牌创建一个 WindowsPrincipal 对象。该令牌包装在 HttpContext 类的 WorkerRequest 属性中。引发 AuthenticateRequest 事件时,WindowsAuthenticationModule 从 HttpContext 类检索该令牌并创建 WindowsPrincipal 对象。HttpContext.User 用该 WindowsPrincipal 对象进行设置,它表示所有经过身份验证的模块和 ASP.NET 页的经过身份验证的用户的安全上下文。


  •WindowsAuthenticationModule 类使用 P/Invoke 调用 Win32 函数并获得该用户所属的 Windows 组的列表。这些组用于填充 WindowsPrincipal 角色列表。


  •WindowsAuthenticationModule 类将 WindowsPrincipal 对象存储在 HttpContext.User 属性中。随后,授权模块用它对经过身份验证的用户授权。


  注:DefaultAuthenticationModule 类(也是 ASP.NET 管道的一部分)将 Thread.CurrentPrincipal 属性设置为与 HttpContext.User 属性相同的值。它在处理 AuthenticateRequest 事件之后进行此操作。

  本文由设计家园 收集整理







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.