8

Vì vậy, từ What is ASP.NET Identity's IUserSecurityStampStore<TUser> interface? chúng tôi biết rằng ASP.NET Identity có tính năng đóng dấu bảo mật được sử dụng để vô hiệu hóa cookie đăng nhập của người dùng và buộc họ phải đăng nhập lại.ASP.NET Identity - Bắt buộc phải đăng nhập lại với tem bảo mật

Trong ứng dụng MVC của tôi, quản trị viên có thể lưu trữ người dùng. Khi bị cong, họ phải ngay lập tức bị đăng xuất và buộc phải đăng nhập lại (sau đó sẽ từ chối chúng vì chúng được lưu trữ).

Tôi làm cách nào để thực hiện việc này? Tôi hiểu rằng tem bảo mật là chìa khóa. Các thiết lập mặc định trông như thế này:

app.UseCookieAuthentication(new CookieAuthenticationOptions { 
     AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
     LoginPath = new PathString("/Account/Login"), 
     Provider = new CookieAuthenticationProvider { 
      // Enables the application to validate the security stamp when the user logs in. 
      // This is a security feature which is used when you change a password or add an external login to your account. 
      OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
       validateInterval: TimeSpan.FromMinutes(30), 
       regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
     } 
    }); 

Qua thử nghiệm, nếu tôi đặt validateInterval một cái gì đó giống như 1 phút, và sau đó manaully hack một tem sử dụng an ninh trong cơ sở dữ liệu, sau đó họ buộc phải đăng nhập lại nhưng chỉ sau khoảng thời gian đó đã trôi qua.

Có cách nào để làm cho tức thời này, hoặc là nó chỉ là vấn đề thiết lập khoảng thời gian để một khoảng thời gian thấp và chờ đợi (hoặc thực hiện riêng OnValidateIdentity của tôi để kiểm tra trên tất cả các yêu cầu)

Cảm ơn

Trả lời

3

Bạn đã nêu các tùy chọn của mình một cách chính xác, khoảng thời gian thấp/chờ hoặc hooking tùy chỉnh của riêng bạn OnValidateIdentity.

Đây là câu hỏi tương tự: Propagate role changes immediately

Các vấn đề liên quan