Trong bộ điều khiển trong ứng dụng web ASP.NET Core, tôi muốn làm mới người dùng và xác nhận quyền sở hữu trong vé cookie được lưu trữ trên máy khách.Làm mới vé cookie của người dùng trong ASP.Net Core Identity
Khách hàng được xác thực và ủy quyền, ASP.NET Core Identity lưu thông tin này trong vé cookie - hiện tại trong một số hành động của Trình điều khiển tôi muốn làm mới dữ liệu trong cookie.
SignInManager
có chức năng làm mới RefreshSignInAsync
, nhưng không chấp nhận HttpContext.User
làm thông số.
[HttpPost("[action]")]
[Authorize]
public async Task<IActionResult> Validate()
{
// todo: update the Client Cookie
await _signInManager.RefreshSignInAsync(User); // wrong type
}
Làm cách nào để làm mới cookie?
Vâng, 'HttpContext.User' chứa một hiệu trưởng (' ClaimsPrincipal', với danh tính và tuyên bố). SignInManager Lấy 'TUser' phụ thuộc vào kiểu người dùng mà bạn sử dụng để cấu hình Identity. Chỉ cần lấy ID người dùng từ mã thông báo có được người dùng và làm mới nó. có thể được tóm tắt dưới dạng bộ lọc hành động hoặc phương pháp mở rộng hoặc cả hai – Tseng