ASP.NET身份认证

本文详细介绍了ASP.Net中的几种身份验证方法,包括Windows验证、Forms验证及Passport验证等。阐述了每种验证方式的工作原理及其优缺点,并提供了具体的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        ASP.Net身份验证是从用户获取名称和密码等标识凭证并根据某些机构验证这些凭据的过程。如果凭据有效,则提交该凭据的实体被视为通过身份验证的标识。一旦标识通过了身份验证,则身份验证过程会确定该标识是否可以访问给定的资源。

Windows验证:

基于Windows用户管理
要求客户端的浏览器必须使用IE浏览器

IIS和服务器的账户管理功能之间验证客户端用户并发送票据

如果应用程序使用 Active Directory 用户存储,则应该使用集成 Windows 身份验证。

优点:不用再设计登录页面,不用编写登录验证逻辑。而且使用Windows身份认证会有更好的安全保障。

过程:


有五种类型的Windows身份验证:
1、基本身份验证(Basic authentication);
2、摘要式身份验证(Digest authentication);
3、集成Windows身份验证(Integrated Windows authentication);
4、IIS的客户证书映射验证(IIS Client Certificate Mapping authentication);
5、活动目录的客户证书映射验证(Active Directory Client Certificate Mapping authentication)。
如果不止一种身份验证类型被启用,比方说它们都被勾选中,那么IIS会首先尝试证书映射(Certificate Mapping),然后是集成Windows身份验证。如果验证失败,那么会接着尝试摘要式身份验证。最后,如果其他所有验证都失败,就会使用基本身份验证。换句话说,系统会首先尝试最安全的验证选项,然后逐级向低安全级别的验证选项过渡


Forms验证:

   基于表单或者窗体的验证,使用Cookie(客户端本地存储);

   在HttpApplication(定义ASP.NET应用程序中的所有应用程序对象通用的方法、属性和事件)处理管道的页面处理流程中完成;在页面处理流程的PageLoad和PageLoadComplete事件之间执行的控件的Click事件中完成验证客户端的工作并发送票据的。

    通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端。服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了。

Forms标记属性:


    name指的是客户端本地存储的Cookie的名字

    loginUrl指的是当你身份不合法的时候你需要转向它去登陆。

    protection指的是它正常来说有加密、传输验证、none,如果是none的话就是正常显示,如果有加密的话就是本地存储;一般都是用All,既在传输时验证,又在本地验证;就是存储的时候也要加密,然后传输的过程中还要验证,防止Cookie被篡改。


大概流程:



注意:在IIS中修改身份验证方法;

      使用系统默认的Forms验证方式, 一定要自定义登陆窗体(页面). 因为默认的登录窗体名称为Login.aspx, 此名称可以在配置文件的forms元素中进行配置, 但是Asp.net网站会根据Login.aspx创建Login的类型, 而.Net类库System.Web.UI.WebControls中也有一个名称为Login的控件类型, 这样便会引起冲突, 因此一定要为Login.aspx登陆页面自定义一个命名空间以避免冲突。


Passport验证:

    用户登录了passport账户就可以直接访问操作系统、邮件、MSN等程序而不需要再进行身份验证操作。

None验证:不验证

参考:http://dev.yesky.com/msdn/39/7595039.shtml

http://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html

http://blog.youkuaiyun.com/gaoying_blogs/article/details/17250869#comments


   有不对的地方欢迎大家交流(*^__^*)  thanks for your time guys


评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值