本文主要是介绍asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在《asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式) 》中介绍了如何通过修改web.config文件来创建窗体身份验证。修改完web.config文件之后,网站就可以使用窗体身份验证方式来验证用户身份了。那么,整个身份验证的过程是怎么样的呢?
前面说过,在asp.net中,身份验证过程分为两部分,一部分是IIS中的身份验证,只有通过了IIS中的身份验证之后,才行进行asp.net中的身份验证。一个完整的窗体身份验证流程如下所示:
- 首先,用户通过浏览器向服务器发送一个网页请求,假设用户要访问index.aspx网页, 那么浏览器就会将请求发送给IIS服务器。
- 假设在该服务器中将IIS设置成可以匿名访问,那么IIS服务器将会允许访问index.aspx网页。
- IIS服务器允许访问之后,将会进入asp.net身份验证。asp.net会去web.config文件中查看<authorization>节点下的<deny>节点中是否拒绝所有匿名用户。如果拒绝了所有匿名用户,服务器则会去查找一个身份验证的Cookie。
- 如果服务器查找不到该身份验证的Cookie,就会将网页跳转到登录页面。这个登录页面为<forms>节点中的loginUrl属性值,默认为网站根目录下的login.aspx。在跳转到到登录页面时,服务器会将当前访问的网页的地址,如index.aspx,作为ReturnUrl参数值附加到login.aspx的URL中。如下所示:
login.aspx?ReturnUrl=%2findex.aspx - 用户在登录页面输入用户名和密码(或别的登录信息),并将这些信息提交到服务器。
- 服务器接收到用户提交的信息之后,判断用户是否为合法用户(判断方式有很多种,但这不是本文的重点),如果用户为合法用户,则创建一个包含窗体身份验证票的Cookie。
- 在创建完包含窗体身份验证票的Cookie之后,可以使用代码将网页跳回登录前访问的页面,如index.aspx网页(这个时侯ReturnUrl参数就起作用了)。
- 在登录后访问其它网页时(如跳转后的index.aspx页面),服务器会检测包含窗体身份验证的Cookie,并对用户进行身份验证。身份验证成功后,服务器返回用户需要访问的网页。
以上就是一个完整的asp.net窗体身份验证流程,下面将会介绍如何按着该流程来编写asp.net代码。
=============================
原创不容易,转载请注明出处。
相关链接:
1、asp.net中的窗体身份验证(最简单篇)
2、asp.net中的窗体身份验证(分目录验证篇)
3、asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式)
4、asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程)
5、asp.net中的窗体身份验证(完整篇之三:用户登录页面)
6、asp.net中的窗体身份验证(完整篇之四:获得用户数据)
7、asp.net中的窗体身份验证(完整篇之五:退出登录)
8、asp.net中的窗体身份验证(完整篇之附录:web.config中相应节点详解)
9、asp.net中的窗体身份验证(不同的角色访问不同的目录)
10、asp.net中的窗体身份验证(验证HTML文件)
11、asp.net中的窗体身份验证(完整篇之六:登出后不能通过后退回来面来的页面)
这篇关于asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!