我的Blazor Server应用程序和带有Identity的IHttpContextAccessor在生产中出现问题。
当我尝试访问HttpContext时,这个在Azure Web应用程序中为null,但在我的本地计算机中不为null。
我使用此网关访问上下文:
public class AuthenticationGateway : IAuthenticationGateway
{
private IHttpContextAccessor _httpContextAccessor;
private UserManager<User> _userManager;
public AuthenticationGateway(IHttpContextAccessor httpContextAccessor, UserManager<User> userManager)
{
_httpContextAccessor = httpContextAccessor;
_userManager = userManager;
}
public bool IsLogguedIn()
{
return _httpContextAccessor.HttpContext.User.Identity.IsAuthenticated;
}
public async Task<User> GetLogguedUser()
{
return await _userManager.GetUserAsync(_httpContextAccessor.HttpContext.User);
}
}
我使用Linux下的B1计划网络应用程序与Kestrel合作。
请在Startup.ConfigureServices方法中添加以下代码
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();