ASP.Net基于表单的身份验证,可以防止用户跳过登录、直接输入URL访问页面,而且不像Session控制那样每个页面都得写代码。
第一步:配置web.config(web.config中一定要注意大小写,一般键是camelCasing风格,值是PascalCasing风格)
<system.web>
<authentication mode="Forms">
<forms name="MainForm" loginUrl="Frame/Login.aspx" protection="All" timeout="60"/>
</authentication>
<authorization>
<deny users="?"/><!--一定不要写<allow users="*"/>否则匿名访问时不会跳转到登录页面-->
</authorization>
</system.web>
第二步:登录按钮事件中,验证用户名、密码通过后,
// 记录Cookie
FormsAuthentication.SetAuthCookie(loginName, false);
// 重定向页面
Response.Redirect("Frame.htm");
如果想重定向到用户想访问的页面,也就是被转到登录页面前访问的页面,需要获得刚开始时用户访问的页面URL,可以用以下方法:
String redirectionUrl = FormsAuthentication.GetRedirectUrl(loginName,false);
然后判断获得的URL是否是登录页面或index页面,如果是则redirectionUrl重新赋值为正常登录时访问的页面URL。
if(redirectionUrl.ToLower().IndexOf("login.aspx") > 0)
redirectionUrl = "Frame.htm";
最后重定向页面就可以了。
Response.Redirect(redirectionUrl);
ASP.Net基于表单的身份验证
最新推荐文章于 2018-11-12 12:20:03 发布