- 确定 ASP.NET Core Identity 是否已设置和配置,包括连接字符串和用户管理器。
- 使用用户管理器创建和管理应用程序和终端用户。可通过调用以下方法创建用户:
var userManager = serviceProvider.GetRequiredService>();
var user = new ApplicationUser { UserName = "username", Email = "user@email.com"};
var result = await userManager.CreateAsync(user, "password");
- 通过使用授权和身份验证中间件,允许应用程序和终端用户进行登录和访问受保护的资源。这可以通过调用以下方法来完成:
public void ConfigureServices(IServiceCollection services)
{
// …
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Authority = "https://your_auth0_domain.auth0.com/";
options.Audience = "https://your_api_identifier";
});
// …
}
- 添加控制器和视图来管理和显示应用程序和终端用户。在控制器中,可以使用 UserManager 和 SignInManager 对用户进行身份验证和授权。以下是一个示例控制器:
public class UserController : Controller
{
private readonly UserManager _userManager;
private readonly SignInManager _signInManager;
public UserController(
UserManager userManager,
SignInManager signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
[HttpGet]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
return View();
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task Login(LoginViewModel model, string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);