网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 2.0 中的 Windows 身份验证详解

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13

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

*
本页内容
目标目标
概述概述
IIS 身份验证IIS 身份验证
NTLM 身份验证NTLM 身份验证
Kerberos 身份验证Kerberos 身份验证
ASP.NET 身份验证ASP.NET 身份验证
安全上下文安全上下文
模拟模拟
委托委托
其他资源其他资源
反馈反馈
技术支持技术支持
社区和新闻组社区和新闻组
投稿人与审阅者投稿人与审阅者

目标

了解 ASP.NET 2.0 版中 Windows 身份验证的工作机制。

了解 Kerberos 身份验证的工作机制。

了解 NTLM 身份验证的工作机制。

了解 WindowsAuthenticationModule 类如何创建 WindowsPrincipalWindowsIdentity 对象。

了解模拟如何影响 WindowsPrincipalWindowsIdentity 对象。

返回页首返回页首

概述

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

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

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

本文阐释在具有 IIS 6.0 的 ASP.NET 2.0 中 Windows 身份验证的工作机制。

返回页首返回页首

IIS 身份验证

如果 ASP.NET 针对 Windows 身份验证进行配置,则 ASP.NET 依靠 IIS,利用配置好的身份验证模式对其客户端进行身份验证。IIS 通过检查特定应用程序的元数据库设置来确定其身份验证模式。成功验证某个用户的身份后,IIS 将代表经过身份验证的用户的 Windows 令牌传递给宿主 ASP.NET 的 ASP.NET 辅助进程 (w3wp.exe)。如果应用程序使用在 IIS 中配置的虚拟目录来支持匿名访问,该令牌代表匿名 Internet 用户帐户;否则,该令牌代表经过身份验证的用户。

IIS 支持以下身份验证模式:

匿名。如果不需要对客户端进行身份验证(或者使用自定义身份验证机制,如窗体身份验证),则可将 IIS 配置为允许匿名访问。在该事件中,IIS 创建一个 Windows 令牌来表示具有相同匿名(或客人)帐户的所有匿名用户。默认的匿名帐户是 IUSR_MACHINENAME,其中 MACHINENAME 是安装期间指定的计算机的 NetBIOS 名称。

基本。基本身份验证要求用户以用户名和密码的形式提供凭据来证明他们的身份。基本身份验证基于 Internet 标准 RFC 2617,所有常用浏览器都支持它。用户的凭据以未加密的 Base64 编码格式从浏览器传送到 Web 服务器。为了更好保护这些凭据,只要在使用基本身份验证同时再使用安全套接字层 (SSL) 即可。由于 Web 服务器包含未加密的用户凭据,因此 ASP.NET 应用程序可以模拟调用方并使用他们的凭据来访问网络资源。

集成的 Windows。集成的 Windows 身份验证(以前称为 NTLM,也称为 Windows NT 质询/应答身份验证,Windows NT Challenge/Response)是使用 Kerberos v5 身份验证还是 NTLM 身份验证,取决于客户端和服务器的配置。服务器与客户端协商确定要使用的协议。如果满足以下条件,则使用 Kerberos 身份验证:

ASP.NET Web 应用程序正在 NetworkService 帐户或自定义域帐户下运行。如果应用程序在本地帐户(如 Windows 2000 Server 上的 ASPNET 帐户)上运行,则使用 NTLM 身份验证。

域帐户的 Active Directory 中有一个服务主要名称 (SPN),该域帐户用于运行客户端进行身份验证所使用的服务。

客户端计算机和服务器计算机至少需要运行 Windows 2000 Server,且处在相同的(即信任的)Windows 域中。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号