FWIW rất cẩn thận khi lưu trữ thứ gì đó như userid trong cookie không được mã hóa. Làm điều này làm cho trang web của bạn dễ bị ngộ độc cookie, nơi người dùng có thể dễ dàng mạo danh người dùng khác. Nếu bạn đang xem xét một cái gì đó như thế này tôi rất muốn khuyên bạn nên sử dụng cookie xác thực biểu mẫu trực tiếp.
bool persist = true;
var cookie = FormsAuthentication.GetAuthCookie(loginUser.ContactId, persist);
cookie.Expires = DateTime.Now.AddMonths(3);
var ticket = FormsAuthentication.Decrypt(cookie.Value);
var userData = "store any string values you want inside the ticket
extra than user id that will be encrypted"
var newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name,
ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, userData);
cookie.Value = FormsAuthentication.Encrypt(newTicket);
Response.Cookies.Add(cookie);
Sau đó, bạn có thể đọc bất cứ lúc nào từ một trang ASP.NET bằng cách làm
string userId = null;
if (this.Context.User.Identity.IsAuthenticated)
{
userId = this.Context.User.Identity.Name;
}
Nguồn
2010-06-29 12:23:05
Đọc mã cookie liên tục không hoạt động đối với tôi. Xem câu trả lời của tôi trong bài đăng này. –
Mã của bạn không có chức năng khác với mã được đăng trong câu hỏi gốc mặc dù cookie của bạn hết hạn sau 12 giờ và OP sẽ hoạt động trong một năm. – Ortund
Cookie này không liên tục, nếu khách hàng đóng trình duyệt mà cookie sẽ biến mất. Câu hỏi đặt ra là cách viết cookie liên tục, thay vì cookie 'phiên'. – Felype