我正在做一个Blazor服务器端项目,我需要将HttpContext
放入我的SignInService
中,以便SignInmanager
服务可以登录用户。我这样更新了Startup.cs
文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.getconnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddScoped<LogInService>();
services.AddScoped<SignInmanager<IdentityUser>>();
services.AddHttpContextaccessor(); //Line added
}
但是,无论是在客户端还是在服务器端,HttpContextaccessor.HttpContext
始终为空。
为什么这样?我错过了创业公司的东西吗?通常,我应该通过依赖项注入services.AddHttpContextaccessor();
来获取上下文,但是它不会发生。
编辑::这是SignInService
,需要使用HttpContext
:
public class SignInService
{
private readonly SignInmanager<IdentityUser> _signInmanager;
public SignInService(SignInmanager<IdentityUser> signInmanager)
{
_signInmanager = signInmanager;
}
public async Task<SignInResult> TrySignIn(LogInForm logInForm)
{
return await _signInmanager.PasswordSignInAsync(logInForm.Mail,logInForm.Password,false,false);
}
}