asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程)
来源:互联网 发布:单片机液晶屏显示 编辑:程序博客网 时间:2024/05/07 23:16
在《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的窗体身份验证过程)
- asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式)
- ASP.NET中的窗体身份验证
- ASP.NET中的窗体身份验证
- asp.net中的窗体身份验证
- asp.net中的窗体身份验证(完整篇之附录:web.config中相应节点详解)
- asp.net中的窗体身份验证(完整篇之三:用户登录页面)
- asp.net中的窗体身份验证(完整篇之四:获得用户数据)
- asp.net中的窗体身份验证(完整篇之五:退出登录)
- ASP.net的窗体身份验证
- ASP.net的窗体身份验证
- asp.net中的窗体身份验证(开篇)
- asp.net中的窗体身份验证(完整篇之六:登出后不能通过后退回来面来的页面)
- asp.net中的窗体身份验证(最简单篇)
- asp.net中的窗体身份验证(分目录验证篇)
- 解释:ASP.NET 2.0 中的窗体身份验证
- ASP.NET 2.0 中的窗体身份验证
- ASP.NET 2.0 中的窗体身份验证
- Head First C# 中文版 第10章 异常处理 page447
- 案例:他是否适合做项目经理?
- PB 中用带参数的 SQL 语句字符串检索数据并动态生成Datawindow
- snake算法
- DES加密
- asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程)
- 课程 Java Web程序设计03: 处理客户端请求: HTTP请求头
- USB枚举过程
- 写了一个支持VC6的Subversion的插件(SVN AddOn for VC6)
- 软件开发实践(1) 项目计划和项目管理
- 利用 JSF 开发 WEB 程序的三大优势
- 三级联动菜单
- 用户名输入框和密码输入框在不同的操作系统显示长度不一样?
- 第一个问题