当前位置:K88软件开发文章中心编程语言.NET.NET01 → 文章内容

asp.net身份验证方式介绍

减小字体 增大字体 作者:     来源:asp编程网  发布时间:2018-12-30 7:43:45

windows身份验证: IIS根据应用程序的设置执行身份验证.要使用这种验证方式,在IIS中必须禁用匿名访问.
Forms验证:用Cookie来保存用户凭证,并将 未经身份验证的用户重定向到自定义的登录页.
Passport验证:通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录 和核心配置文件服务.

一. 配置windows身份验证
1)配置IIS设置
of 
Dern)" alt="asp.net身份验证方式(ref:DreamSpace 
of 
Dern)" src="http://files.jb51.net/file_images/article/201206/201206062017082.gif" width=508 border=0>

2)设置Web.config

Windows">






二.配置Forms身份认证
1)配置web.config

复制代码 代码如下:
























2)登录页面代码
login.aspx
[/code]
<
%@ Page Language="C
#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>





复制代码 代码如下:


[code]
using System

using System.Data

using System.Configuration

using System.Collections

using System.Web

using System.Web.Security

using System.Web.UI

using System.Web.UI.WebControls

using System.Web.UI.WebControls.WebParts

using System.Web.UI.HtmlControls

public partial class login : System.Web.UI.Page

{
protected void Page_Load(object sender, EventArgs e)

{
}
protected void Button1_Click(object sender, EventArgs e)

{
FormsAuthentication.RedirectFromLoginPage(this.TextBox1.Text, false)

}
}


三.配置Passport身份认证
需要安装Passport Software Developer Kit.这种认证方式适合于跨站之间的应用,用户只有一个用户名和密码可以访问任何成员站。

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 域中。

默认情况下,对于 Windows Server 2003 操作系统启用集成 Windows 身份验证。然而,如果 Windows Server 2003 Service Pack 1 (SP1) 作为 Windows Server 2003 操作系统整合安装的一部分进行安装,则默认情况下禁用集成 Windows 身份验证。如果使用 SP1 升级 Windows Server 2003,则集成 Windows 身份验证的设置与其 Windows Server 2003 设置相同。

应该使用集成 Windows 身份验证而不是基本身份验证,因为前者避免了通过网络传输用户凭据。由于 Kerberos v5 身份验证支持相互身份验证,因此用户还可以对正在连接的服务器进行身份验证。

集成 Windows 身份验证最适合于 Intranet 环境,其中的客户端计算机和 Web 服务器计算机都是相同(即信任的)域的一部分。

NTLM 身份验证

NTLM 是用于 Windows NT 和 Windows 2000 Server 工作组环境的身份验证协议。它还用在必须对 Windows NT 系统进行身份验证的混合 Windows 2000 Active Directory 域环境中。当 Windows 2000 Server 转换为不存在下层 Windows NT 域控制器的本机模式时,禁用 NTLM。然后 Kerberos v5 变成企业级的默认身份验证协议。

NTLM 身份验证机制

图 1 显示 NTLM 协议。

windows 
authentication" alt="" src="http://files.jb51.net/file_images/article/201206/2012060620170811.gif">

1. NTLM 质询 / 应答机制

下面概述质询/应答机制:

用户请求访问。用户尝试通过提供用户凭据登录到客户端。登录前,客户端计算机缓存密码的哈希值并放弃密码。客户端向服务器发送一个请 求,该请求包括用户名以及纯文本格式的请求。

服务器发送质询消息。服务器生成一个称为质询的 16 字节随机数(即 NONCE),并将它发送到客户端。

客户端发送应答消息。客户端使用由用户的密码生成的一个密码哈希值来加密服务器发送的质询。它以应答的形式将这个加密的质询发回到服 务器。

服务器将质询和应答发送到域控制器。服务器将用户名、原始质询以及应答从客户端计算机发送到域控制器。

域控制器比较质询和应答以对用户进行身份验证。域控制器获取该

[1] [2] [3] [4] [5]  下一页


asp.net身份验证方式介绍