Forms Authentication 概述

本文介绍了Forms Authentication的工作原理,包括未验证请求的处理、身份验证票的生成和使用,以及详细描述了Forms验证与Windows验证的区别。同时,文章讲解了如何在web.config中配置Forms Authentication,探讨了相关配置元素和属性。最后,文章提到了几个关键方法,如GetAuthCookie、SetAuthCookie和RedirectFromLoginPage,用于操作验证票,并展示了如何通过HttpContext的User属性获取用户信息。
摘要由CSDN通过智能技术生成

一、Forms Authentication 机制

 在解释Forms Authentication之前,我们不得不简要说明一下web身份验证的三种方式:Windows 验证,Forms验证,Passport验证。在这里解释一下Windows身份验证,windows验证的工作机制如下:

当一个匿名请求到达服务器时,服务器会发送一个http response,浏览器会以呈现一个模态窗口的方式要求用户输入用户凭证,然后把输入的身份信息放在http header 中发送给服务器,服务器会查询数据库进行验证,一般来说服务器需要有一个windows账户数据库,所以这种验证方式一般只在内部网络使用。

ok,现在我们就讲一下forms authentication的工作机制:

当一个request过来的时候,首先由forms authenticaton system对这个请求进行身份验证,如果这个请求是未经验证的,那么该请求是匿名请求;之后请求会到达authorize system,它会查询配置文件检查此次请求的资源是否对该请求可见,如果是可见的,则该请求是经过授权的,即可以访问该资源,如果是不可见的,那么由authorize system往回发送一个401状态码,forms authentication system会自动识别这个状态码,然后产生一个302状态码,这个状态码表示资源重定向,即此时forms authentication会设置redirect to 登陆页面(这个登陆页面的url会在配置文件中设置),此时转到登陆页面,用户输入身份信息,再次经过上述过程,不过此时信息经过验证之后,服务器会为客户端产生一个forms authentication ticket,这个ticket会包含用户的身份信息,服务器把这个ticket返回到客户端,并且把用户redirect到一开始要访问的页面,那么浏览器把刚刚拿到的ticket放在http header中,再次请求资源,这时候forms authentication system就能找到ticket,用户就会得到验证,如果用户得到授权的话就可以访问到资源了,以上就是详细的工作流程了......表达能力有限,说的可能有点不太明白。

下面是图解........

二、forms authentication 配置

在讲配置之前,首先要创建一个web.config文件,如果有的话就不需要了.........

配置forms authentication相应元素是<authentication>,验证的方式是由它的属性mode设置,在这里设置成Forms就ko了,注意大小写

具体的配置都是在<forms>这个子元素的属性中设置的,以下是对这些属性的说明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值