📜  ASP.NET Core-创建用户(1)

📅  最后修改于: 2023-12-03 15:13:31.888000             🧑  作者: Mango

ASP.NET Core-创建用户

在ASP.NET Core中,我们可以使用Identity来实现用户认证和授权。 创建用户是Identity中的一个重要步骤,在本文中,我们将学习如何在ASP.NET Core中创建用户。

1. 创建ASP.NET Core应用程序

首先,我们需要创建一个ASP.NET Core应用程序。我们可以使用Visual Studio或命令行工具创建应用程序。 在命令行中,我们可以使用以下命令来创建应用程序:

dotnet new webapp -n MyApp

这将创建一个名为MyApp的新ASP.NET Core Web应用程序。

2. 添加Identity

接下来,我们需要在我们的应用程序中添加Identity。在ASP.NET Core中,Identity是一个包含用户身份验证和授权实现的库。 我们可以在项目中添加Identity,然后安装它。

在命令行中,我们可以使用以下命令来添加Identity:

dotnet add package Microsoft.AspNetCore.Identity

该命令将在我们的项目中添加Identity。

3. 配置Identity

我们已经添加了Identity,现在我们需要将其配置到应用程序中。我们可以在应用程序的Startup.cs文件中配置Identity。 我们需要配置以下内容:

  • Identity用户存储
  • Identity角色的存储
  • 用户密码的复杂性要求
  • 用户登录要求

示例配置如下:

public void ConfigureServices(IServiceCollection services)
{
    // 添加Identity服务
    services.AddIdentity<IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

    // 添加身份验证和授权服务
    services.AddAuthentication()
            .AddIdentityCookies();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}
4. 创建用户

经过以上步骤,我们已经可以在应用程序中使用Identity。 接下来,我们将学习如何创建用户。在Identity中,我们可以使用UserManager类来管理用户。

我们需要使用以下代码来创建一个新用户:

var userManager = serviceProvider.GetService<UserManager<IdentityUser>>();
var user = new IdentityUser
{
    UserName = "John",
    Email = "john@example.com"
};
var result = await userManager.CreateAsync(user, "P@ssword123");

以上代码将创建一个名为John的新用户,并将其电子邮件地址设置为“john@example.com”,密码设置为“P@ssword123”。

5. 总结

本文中,我们学习了如何在ASP.NET Core应用程序中使用Identity来创建用户。 首先,我们添加了Identity,然后配置了应用程序以使用Identity。最后,我们使用UserManager类来创建了一个新用户。

示例代码可以在以下链接中找到:

// 添加Identity服务
services.AddIdentity<IdentityUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

// 添加身份验证和授权服务
services.AddAuthentication()
        .AddIdentityCookies();

// 创建新用户
var userManager = serviceProvider.GetService<UserManager<IdentityUser>>();
var user = new IdentityUser
{
    UserName = "John",
    Email = "john@example.com"
};
var result = await userManager.CreateAsync(user, "P@ssword123");