3 回答

TA貢獻1804條經驗 獲得超3個贊
嘗試直接IHttpContextAccessor 注入ApplicationDbContext:
public class ApplicationDbContext : IdentityDbContext<AppUser>
{
private readonly IHttpContextAccessor _httpContextAccessor;
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IHttpContextAccessor httpContextAccessor)
: base(options)
{
_httpContextAccessor= httpContextAccessor;
}
//other methods
private void CheckBeforeSaving()
{
var userId = _httpContextAccessor?.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
//...
}
}

TA貢獻1963條經驗 獲得超6個贊
這是我在 .net core 2.2 中獲取用戶 ID 的方法
首先,您需要在 Startup.cs 中注冊
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
然后為您服務
private readonly IHttpContextAccessor _httpContextAccessor;
public UserService(
IHttpContextAccessor httpContextAccessor)
{
}
var currentUserGuid = _httpContextAccessor?.HttpContext?.User?.FindFirst(UserClaimsKey.Sub)?.Value;

TA貢獻1883條經驗 獲得超3個贊
private async Task<ApplicationUser> GetUserDetailsAnsyc()
{
return await userManager.GetUserAnsync(HttpContext.User);
}
var user = await GetUserDetailsAnsyc();
Console.WriteLine(user.Id.ToString());
- 3 回答
- 0 關注
- 151 瀏覽
添加回答
舉報