2

ASP.NET 認証 Cookie に追加情報を追加する方法はありますか? 私は自分の内部ユーザー キーを Cookie に保存し、次の質問に従って認証 Cookie と同時に有効期限が切れるようにしたいと考えています: MVC セッションでトークンを保存する

4

1 に答える 1

2
[Serializable]
        public class CookieDto
        {
            public string Username { get; set; }
            public string UserId { get; set; }
            public string AuthenticationKey { get; set; }
            public bool Persist { get; set; }
            public string RememberMeToken { get; set; }
        }

持続方法、

public void Persist(CookieDto cookieDto, bool persistent)
{
    var serializer = new XmlSerializer();
    var serializedCookie = serializer.Serialize(cookieDto);
    var ticket = new FormsAuthenticationTicket(1, cookieDto.Username, DateTime.Now, DateTime.Now.AddDays(90),
        persistent, serializedCookie);
    var encryptedTicket = FormsAuthentication.Encrypt(ticket);

    var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { Expires = DateTime.Now.AddDays(90) };
    HttpContext.Current.Response.Cookies.Add(cookie);
}

メソッドを取得し、

 public CookieDto GetCookie()
        {
            var cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
            if (cookie != null && !string.IsNullOrEmpty(cookie.Value))
            {
                var ticket = FormsAuthentication.Decrypt(cookie.Value);
                var serializer = new XmlSerializer();

                return serializer.Deserialize<CookieDto>(ticket.UserData);
            }

            return null;
        }

削除方法、

public void RemoveCookie()
{
    FormsAuthentication.SignOut();
}

幸運を!

于 2013-05-14T07:18:11.137 に答える