ASP.Net基于表单的身份验证

来源:互联网 发布:试用版软件到期怎么办 编辑:程序博客网 时间:2024/04/29 22:36

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);

原创粉丝点击