温馨提示×

asp.net identity在asp.net core中怎么用

小樊
81
2024-11-28 21:38:26
栏目: 编程语言

ASP.NET Identity是ASP.NET Core中用于处理用户认证和授权的一个组件。以下是如何在ASP.NET Core项目中使用ASP.NET Identity的简要步骤:

  1. 创建一个新的ASP.NET Core项目: 使用Visual Studio或命令行工具创建一个新的ASP.NET Core项目。选择"Web应用程序"模板。

  2. 添加ASP.NET Identity依赖项: 在项目的Startup.cs文件中,找到ConfigureServices方法,然后使用AddIdentity方法添加ASP.NET Identity依赖项。例如:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    
        services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();
    
        services.AddControllersWithViews();
    }
    

    这里,我们创建了一个名为ApplicationUser的用户类和一个名为IdentityRole的角色类。这些类通常继承自IdentityUserIdentityRole

  3. 创建用户和角色类: 在项目中创建一个新的文件夹(例如Models),然后创建ApplicationUser.csIdentityRole.cs文件。在这些文件中定义用户和角色类。例如:

    public class ApplicationUser : IdentityUser
    {
        // 添加自定义属性和方法
    }
    
    public class IdentityRole : IdentityRole
    {
        // 添加自定义属性和方法
    }
    
  4. 配置数据库上下文: 在项目中创建一个新的文件夹(例如Data),然后创建一个名为ApplicationDbContext.cs的文件。在这个文件中定义一个继承自IdentityDbContext的数据库上下文类。例如:

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
    
  5. 配置连接字符串: 在appsettings.json文件中添加一个名为DefaultConnection的连接字符串,指向数据库。例如:

    "ConnectionStrings": {
        "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true"
    }
    
  6. 创建数据库迁移: 在命令行中运行以下命令,以创建数据库迁移文件:

    dotnet ef migrations add InitialCreate
    

    然后运行以下命令,以应用迁移并创建数据库:

    dotnet ef database update
    
  7. 使用ASP.NET Identity进行用户认证和授权: 在项目中创建一个新的文件夹(例如Controllers),然后创建一个名为AccountController.cs的文件。在这个文件中,你可以使用ASP.NET Identity提供的方法进行用户注册、登录、注销等操作。例如:

    public class AccountController : Controller
    {
        private readonly UserManager<ApplicationUser> _userManager;
        private readonly SignInManager<ApplicationUser> _signInManager;
    
        public AccountController(UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager)
        {
            _userManager = userManager;
            _signInManager = signInManager;
        }
    
        // 注册、登录、注销等方法
    }
    
  8. 配置路由: 在Startup.cs文件中,找到Configure方法,然后添加以下代码以配置路由:

    app.UseRouting();
    
    app.UseAuthentication();
    app.UseAuthorization();
    
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
    

现在,你已经成功地在ASP.NET Core项目中设置了ASP.NET Identity,并可以使用它进行用户认证和授权。你可以根据需要扩展用户和角色类,以及实现自定义的认证和授权逻辑。

0