Trong khi làm việc với Xác thực Mẫu ASP.Net, tôi đã xem qua cookie .ASPXAUTH. Tôi có một vài câu hỏi:
- Mục đích của cookie này là gì?
- Vị trí của cookie này là gì?
Trong khi làm việc với Xác thực Mẫu ASP.Net, tôi đã xem qua cookie .ASPXAUTH. Tôi có một vài câu hỏi:
Câu trả lời:
Cookie ASPXAUTH được sử dụng để xác định xem người dùng có được xác thực hay không.
Đối với vị trí của cookie, điều đó phụ thuộc vào trình duyệt của bạn. Nếu đang sử dụng Firefox, bạn có thể xem cookie bằng cách nhấp vào Công cụ -> Tùy chọn -> Quyền riêng tư. Sau đó, cuộn xuống tên miền và mở rộng nó để xem cookie và giá trị của nó. Giá trị được mã hóa bằng cách sử dụng khóa máy (nằm trong tệp machine.config hoặc web.config của máy chủ) nên việc nhìn vào cookie trên máy khách sẽ không thực sự cung cấp cho bạn bất kỳ thông tin nào. Bạn có thể giải mã / xem giá trị ở phía máy chủ bằng cách sử dụng:
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
nơi authTicket
có các trường này:
Tuyên bố "ASPXAUTH về cơ bản được sử dụng để duy trì Trạng thái phiên ASP.NET" là không chính xác. ASP.NET phát hành một cookie hoàn toàn khác, có tên ASP.NET_SessionId, để theo dõi trạng thái phiên.
Application_PostAuthenticateRequest
các Request.IsAuthenticated là đúng nhưng .ASPXAUTH không giá trị trong HttpContext.Current.Request.Cookies tôi. Tôi sử dụng sessionState.
Trên thực tế, cookie .ASPXAUTH không cho bạn biết chính xác khi nào người dùng được xác thực thực sự. Khi người dùng đăng xuất khỏi ứng dụng, cookie .ASPXAUTH sẽ bị xóa khỏi trình duyệt. Tuy nhiên, nếu bạn quay lại trang web trong một khoảng thời gian ngắn (với thời gian chờ của cookie biểu mẫu) và chỉnh sửa cookie ASP.NET_SessionId mới như sau:
Sau khi làm mới, bạn sẽ có thể giả định danh tính của người dùng đã xác thực mà không cần xác thực lại về mặt kỹ thuật. (một lần nữa giả sử bạn làm điều này trong khoảng thời gian chờ cụ thể được lưu trữ trong chuỗi xác thực được mã hóa .ASPXAUTH)
Một bài đăng trên blog tốt giải thích vấn đề chi tiết hơn. Một giải pháp khả thi là ghép nối .ASPXAUTH với phiên ASP.
Nếu tương tác của người dùng với URL đăng nhập HTML đã cho phép Máy chủ TSWPP thiết lập danh tính của người dùng, máy chủ từ xa NÊN tạo một cookie nhận dạng người dùng và cho phép xác thực máy chủ. Nội dung của cookie NÊN được ký và mã hóa. Việc triển khai cụ thể cookie này bao gồm các thuật toán ký và mã hóa phụ thuộc vào việc triển khai máy chủ TSWPP, vì chỉ máy chủ mới được yêu cầu phân tích cú pháp nội dung của cookie. Nếu máy chủ triển khai cookie, thì cookie PHẢI được trả lại trong tải trọng HTTP với Loại Nội dung là "application / x-msts-webfeed-login".