asp.net基于表单的身份验证,可以防止用户跳过登录、直接输入URL访问页面,而且不像Session控制那样每个页面都得写代码。
ASP.NET表单身份验证***步:配置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>
ASP.NET表单身份验证第二步:登录按钮事件中,验证用户名、密码通过后,
- // 记录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";
ASP.NET表单身份验证完成:***重定向页面就可以了。
- Response.Redirect(redirectionUrl);
【编辑推荐】