添加命名空间:在使用SignInManager之前,需要添加命名空间Microsoft.AspNetCore.Identity。
注入SignInManager:在Startup.cs文件中,添加如下代码:
services.AddDefaultIdentity()
.AddRoles()
.AddEntityFrameworkStores();
services.AddScoped, SignInManager>();
上述代码用于注入SignInManager并配置默认的ASP.NET Core MVC身份验证系统。需要注意指定IdentityUser和IdentityRole用于实现应用的用户和角色。
public class AccountController : Controller
{
private readonly SignInManager _signInManager;
public AccountController(SignInManager signInManager)
{
_signInManager = signInManager;
}
public IActionResult Login()
{
return View();
}
[HttpPost]
public async Task Login(LoginViewModel loginViewModel)
{
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(loginViewModel.Email, loginViewModel.Password, loginViewModel.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return View(loginViewModel);
}
return View(loginViewModel);
}
}
上述示例展示了如何在控制器中注入SignInManager、使用SignInManager登录用户并返回重定向视图。
以上就是如何使用ASP.NET Core MVC Identity SignInManager的解决方法。