Các bước chính xác cần thiết để cookie tồn tại sau khi đóng trình duyệt là gì? Hiện tại tôi có:Cookie xác thực/phiên xóa sau khi trình duyệt đóng
createPersistentCookie
đặt thànhtrue
trênLoggedIn
sự kiện.- MachineKey được chỉ định.
- Hình thức hết hạn trượt được đặt thành
true
.
Miễn là trình duyệt mở, người dùng sẽ vẫn đăng nhập nhưng ngay sau khi đóng, và người dùng sẽ cần phải đăng nhập lại trong bao lâu. Tôi đang thiếu gì?
EDIT: Tôi đã đi qua bài viết được chỉ ra bởi marapet (xem bình luận bên dưới) và nó khiến tôi quan tâm đến việc vé có thực sự có cờ IsPersistent không. Vé được giải mã trông giống như sau: System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value) {System.Web.Security.FormsAuthenticationTicket} CookiePath: "/" Expiration: {19/08/2010 17:27:14} Expired: false IsPersistent: true IssueDate: {19/07/2010 17:27:14} Name: "alex" UserData: "" Version: 2
Tất cả chi tiết đều chính xác và tương ứng với những thông tin tôi đã đặt trong sự kiện LoggedIn. Hơn cả giá trị cookie tôi có thể lấy trực tiếp từ cookie, giống với cái này. Tuy nhiên, ngay khi tôi đóng trình duyệt, cookie bị mất.
Tuy nhiên, điều tôi nhận thấy là cookie mang theo vé có ngày đặt lại vì lý do nào đó. Thứ nhất, tôi không thể ghi đè lên các thiết lập trong web.config, do đó, vào cuối sự kiện LoggedIn nó hết hạn tài sản là 4000 phút sau ngày phát hành, không phải là một tháng mà tôi đang thiết lập theo lập trình. Sau đó, sau khi tải trang cookie tôi truy xuất bằng FormsAuthentication.FormsCookieName đã hết hạn thuộc tính 01/01/0001. Tôi nghĩ có lẽ đây là nơi mà vấn đề nằm? Bất kỳ suy nghĩ sẽ được đánh giá cao.
EDIT # 2: Tôi đang thay đổi cả tiêu đề và các thẻ để bao gồm phiên, vì nó hóa ra là có liên quan cho vấn đề/giải pháp
Điều này cũng giải quyết được vấn đề của tôi. Nếu bạn rời khỏi miền, trình duyệt của khách hàng sẽ đặt tên miền đó thành miền hiện tại. – jhappoldt