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