摘要:本文asp.net应用程序身份验证的概念,介绍了各种身份验证模式并进行了比较,阐述了选择身份验证模式的机制,并给出了一种基于窗体身份验证模式的实现方法。
【相关文章:Windows2000平台下混合编程屏蔽】【扩展阅读:用python实现客户端的设想(curs】
【扩展信息:我的EJB学习历程(三) 】 关键字:身份验证 authentication asp.net web应用1.身份验证概念
任何成功的应用程序安全策略的基础都是稳固的身份验证与授权手段,以及提供机密数据的保密性与完整性的安全通讯。 身份验证(authentication)是一个标识应用程序客户端的过程,这里的客户端可能包括终端用户、服务、进程或计算机,通过了身份验证的客户端被称为主体(principal)。身份验证可以跨越应用程序的多个层发生。终端用户起初由web应用程序进行身份验证,通常根据用户名与密码进行;随后终端用户的请求由中间层应用程序服务器与数据库服务器进行处理,这过程中也将进行身份验证以便验证并处理这些请求。 图1列出了各种安全技术以及每种技术所提供的主要验证方式。2. 身份验证模式
如图1所示,windows 2000上的.net框架上提供了以下几种身份验证: asp.net身份验证模式 enterprise services身份验证 sql server身份验证2.1 asp.net身份验证模式
asp.net身份验证模式包括windows、forms(窗体)、passport(护照)与none(无)。2.1.1 windows身份验证
使用这种身份验证模式时,asp.net依赖于iis对用户进行验证,并创建一个windows访问令牌来表示已通过验证的标识。iis提供以下几种身份验证机制: 基本身份验证 简要身份验证 集成windows身份验证 证书身份验证 匿名身份验证2.1.2 护照身份验证
使用这种身份验证模式时,asp.net使用microsoft passport的集中式身份验证服务,asp.net为microsoft passport软件开发包(sdk)所提供的功能提供了一个方便的包装(wrapper)。此sdk必须安装在web服务器上。2.1.3 窗体身份验证
这种验证方式使用客户端重定向功能,将未通过身份验证的用户转发到特定的登录窗体,要求用户输入其凭据信息(通常是用户名与密码)。这些凭据信息被验证后,系统生成一个身份验证票证(ticket)并将其返回客户端。身份验证票证可在用户的会话期间维护用户的身份标识信息,以及用户所属的角色列表(可选)。2.1.4 none
使用这种身份验证模式,表示你不希望对用户进行验证,或是采用自定义的身份验证协议。2.2 enterprise services身份验证
enterprise services身份验证通过使用底层的远程过程调用(rpc,remote procedure call)传输结构来进行,而这种结构又使用了操作系统安全服务提供程序接口(sspi,security service provider interface)。可以利用kerberose或ntlm身份验证机制对enterprise services应用程序的客户端进行验证。 ... 下一页