3

remember meASP.NET Web サイトに' ' 機能を実装する最良の方法は何ですか?

カスタム Cookie を使用する必要がありますか、それとももっと簡単な方法がありますか?

4

2 に答える 2

3

AuthenicationASP.NET が提供する組み込みサービスを使用していますか? もしそうなら、それはかなり簡単です。

于 2009-09-29T15:11:50.977 に答える
0

私にとっての解決策は、ブラウザー セッション Cookie (asp.net セッション Cookie と混同しないでください) と永続的な Cookie を区別することでした。有効期限を短く設定すると、永続的な Cookie が作成され、ブラウザーが閉じられて再起動されたときに記憶されます。・有効期限内に開封したもの。以下は私にとってはうまくいきます:

public void SetAuthenticationCookie(LoginView loginModel)
    {
      if (!loginModel.RememberMe)
      {
        FormsAuthentication.SetAuthCookie(loginModel.Email, false);
        return;
      }
      const int timeout = 2880; // Timeout is in minutes, 525600 = 365 days; 1 day = 1440.
      var ticket = new FormsAuthenticationTicket(loginModel.Email, loginModel.RememberMe, timeout);
      //ticket.
      string encrypted = FormsAuthentication.Encrypt(ticket);
      var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted)
        {
          Expires = System.DateTime.Now.AddMinutes(timeout),
          HttpOnly = true
        };
      HttpContext.Current.Response.Cookies.Add(cookie);
    }
于 2012-10-25T16:59:52.690 に答える