Asp.NetForms認証


前言:
社内システムの開発に携わっているため、ログインユーザ情報をセッションに保存している.Forms認証は何も使ったことがありませんが、最近この方面のものを研究して、貼って、レンガを撮ることを歓迎します.
Froms認証:
1つ目:
        
            string userName = "admin";
            string pwd = "admin";
            //   :        
            //Web.config  :
            //<authentication mode="Forms">
            //  <forms loginUrl="~/Account/Login.aspx" defaultUrl="Default.aspx" timeout="2880" />
            //</authentication>
            if (userName == "admin" && pwd == "admin")
            {
                //      ,         URL  defaultUrl.
                //    URL ReturnUrl  , Default.aspx?ReturnUrl=test.aspx
                //        URL,    defaultURL
                FormsAuthentication.RedirectFromLoginPage(userName, false);
            }
            else
            {
                //      , loginUrl.
                FormsAuthentication.RedirectToLoginPage();
            }
       
HttpContext.Current.User.Identity.Name認証されたユーザー名を取り出します.
しかし、このような方式では、認証ユーザ名がクライアントCookieに保存する、クライアントがCookieを無効にすると、認証ユーザ名サーバは復号されないという問題がある.
Forms認証には、認証されたユーザー情報をURLに保存する方法があります.CookilessをUseUriに設定するだけでいいです.
       
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" defaultUrl="Default.aspx" timeout="2880" cookieless="UseUri" />
    </authentication>

認証後のURLは次のようになります.http://localhost:27130/(F(7QOqmTvEj....EwMB0))/Default.aspx
しかし、認証ユーザ情報をURLで保存することは、クライアントブラウザがCookieを無効にしたと仮定する方法であるが、Cookieを無効にしていないクライアントブラウザがあると、そのURLが非常に煩雑になるという問題がある.
2つ目:
          
            string userName = "admin";
            string pwd = "admin";
            if (userName == "admin" && pwd == "admin")
            {
                //     
                //  Forms     
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(userName, false, 300);
                //  Forms                 Cookie .
                string cookieValue = FormsAuthentication.Encrypt(ticket);
                //   Forms       
                string cookieName = FormsAuthentication.FormsCookieName;
                HttpCookie cookie = new HttpCookie(cookieName, cookieValue);
                Response.Cookies.Add(cookie);
                Response.Redirect(FormsAuthentication.GetRedirectUrl(userName, false));
            }
             
この方法でForms認証チケットをカスタマイズし、Cookie情報を保存することができる.