Tôi đang cố gắng xoay tròn mục đích của thuộc tính isPersistent
được tìm thấy trên lớp FormsAuthenticationTicket
. http://msdn.microsoft.com/en-us/library/kybcs83h.aspxMục đích của FormsAuthenticationTicket là tài sản không phù hợp?
- Có trường hợp nào khi cài đặt có hoạt động không?
- Trong trường hợp nào tôi muốn đặt
isPersistent
thành true và false?
Thuộc tính dường như không cần thiết vì tôi đã tìm thấy cách duy nhất để duy trì cookie xác thực người dùng của mình trong các phiên trình duyệt là đặt thuộc tính Expires
của cookie được tạo sau khi tạo vé; ngay cả khi vé có giá trịPersistent được đặt thành false
.
Tôi cũng nhận thấy rằng việc đặt vé hết hạn (không phải cookie) thành 10 giây với isPersistent
được đặt thành true có rất ít ảnh hưởng; vé hết hạn sau 10 giây.
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
identity.Name,
DateTime.Now,
DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
isPersistent,
JsonSerializerService.ToJson(identity),
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
Tôi đánh giá cao mà tôi có thể thay đổi mã trên tôi để tùy chọn thiết lập expires
if (isPersistent)
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
Một ứng dụng ví dụ đã được tạo @ GitHub. https://github.com/chrismoutray/AuthSample Điều này về cơ bản cho thấy rằng ngay cả bằng cách thiết lập cờ isPersistent cho đúng ủy quyền trình duyệt chéo không hoạt động.
Tôi cảm thấy như tôi đang thiếu thứ gì đó, cookie sẽ không tồn tại trừ khi tôi đặt cụ thể trường cookie 'Hết hạn'. Đặt IsPersistent không có hiệu lực. –
Nếu bạn đặt IsPersistent thành đúng cookie được tạo sẽ có ngày hết hạn hiện tại + biểu mẫu hết giờ. Nó không phải là trường hợp của bạn? – lnu
Vâng không - nếu tôi xóa dòng 'cookie.Expires = DateTime.Now.AddYears (1);' tính năng nhớ-tôi của thông tin đăng nhập không hoạt động mặc dù isPersistent được đặt thành true. –