Tôi đang thử nghiệm với FormsAuthentication (sử dụng ASP.NET MVC2) và nó đang hoạt động khá tốt.Vô hiệu hóa ASP.NET FormsMáy chủ xác thực bên
Tuy nhiên, một trường hợp tôi không thể tìm ra cách xử lý là xác thực danh tính người dùng trên máy chủ để đảm bảo nó vẫn hợp lệ từ góc nhìn của máy chủ .
ví dụ:
- người dùng đăng nhập ... nhận một cookie/vé
- Out of band người dùng sẽ bị xóa ở phía máy chủ
- tài tạo ra một yêu cầu mới đến máy chủ. HttpContext.User.Identity.Name được đặt thành người dùng đã bị xóa.
Tôi có thể phát hiện tiền phạt này, nhưng cách chính xác để xử lý nó là gì? Gọi FormsAuthentication.SignOut
trong các sự kiện OnAuthorization
trên OnActionExecuting
quá muộn để ảnh hưởng đến yêu cầu hiện tại.
Hoặc tôi muốn có thể gọi FormsAuthentication.InvalidateUser (...) khi người dùng bị xóa (hoặc cơ sở dữ liệu được tạo lại) để vô hiệu hóa tất cả các vé cho một người dùng (hoặc tất cả) đã cho. Nhưng tôi không thể tìm thấy một API để làm điều này.
Chức năng UserStillValid sẽ kiểm tra người dùng đang hoạt động trong db hay không? ý nghĩa của Thread.CurrentPrincipal = anonymousPrincipal và HttpContext.Current.User = anonymousPrincipal; – Thomas