问题描述:ASP.Net Core SignInManager无法签入
解决方法:
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
public void ConfigureServices(IServiceCollection services)
{
// 添加身份验证服务
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
// 其他服务的配置...
}
private readonly SignInManager _signInManager;
public YourController(SignInManager signInManager)
{
_signInManager = signInManager;
}
public async Task Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
// 登录成功的逻辑
return RedirectToAction("Index", "Home");
}
// 登录失败的逻辑
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
}
// 返回登录页面
return View(model);
}
注意:在上述代码示例中,IdentityUser 是您的自定义用户模型,ApplicationDbContext 是您的数据库上下文类。
如果仍然无法解决问题,请提供更多的错误信息和相关代码,以便我们可以更进一步地帮助您解决问题。