网站分为前台后后台管理页面,一般前台部设置用户访问权限,任何用户都可访问,但后台必须是注册用户才能登陆。
【IIS 验证机制】
Asp.net验证分为两步。首先,IIS验证当前用户访问网站所使用的windows帐号是否有权限。如果IIS访问被配置为anonymous,则任何用户都能访问页面。
然后,在IIS验证完毕后,ASP.net开始执行自身的验证。验证模式可以在web.config文件中配置,只要在config文件中写上<authentication mode="Forms" />,那么ASP.net就知道使用FormsAuthenticationModule 类进行验证。
【Forms Authentication 控制流程】
第一步:用户访问default.aspx页面,IIS通过了验证,ASP.Net发现
authorization元素中包含<deny users="?" />的标签。
第二步:服务器寻找包含验证信息的cookie,如果没有找到这个cookie,用户将被重定向到登陆页面。就是loginurl所指定的页面。用户将在那个页面输入登陆信息。
第三步:浏览器请求浏览登录页面,同时传递ReturnUrl的参数的值。
第四步:服务器调转到登陆页面。
第五步:用户输入身份验证信息,并且提交数据,其中还包含ReturnUrl的参数值。
第六部:服务器通过读取存储介质(例如sqserver数据库)验证用户的信息。登陆页面将创建一个包含FormAuthentication ticket的cookie作为session。
第七步:用户验证成功,服务器重新让浏览器指向ReturUrl所指定的页面。
第八步:在重定向的同时,浏览器向default.aspx页面发送request请求,此次请求包含用户的forms authentication cookie。
第九步:FormsAuthenticationModule类侦测到forms authentication cookie并且开始验证,验证成功后,该类将得到当前的用户信息,并传送给HttpContext对象。可以通过HttpContext对象获得当前用户的信息。
第10步:验证成功
Demo