ASP.NET Identity是ASP.NET Core中用于处理用户认证和授权的一个组件。以下是如何在ASP.NET Core项目中使用ASP.NET Identity的简要步骤:
-
创建一个新的ASP.NET Core项目: 使用Visual Studio或命令行工具创建一个新的ASP.NET Core项目。选择"Web应用程序"模板。
-
添加ASP.NET Identity依赖项: 在项目的
Startup.cs文件中,找到ConfigureServices方法,然后使用AddIdentity方法添加ASP.NET Identity依赖项。例如:public void ConfigureServices(IServiceCollection services) { services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity () .AddEntityFrameworkStores () .AddDefaultTokenProviders(); services.AddControllersWithViews(); } 这里,我们创建了一个名为
ApplicationUser的用户类和一个名为IdentityRole的角色类。这些类通常继承自IdentityUser和IdentityRole。 -
创建用户和角色类: 在项目中创建一个新的文件夹(例如
Models),然后创建ApplicationUser.cs和IdentityRole.cs文件。在这些文件中定义用户和角色类。例如:public class ApplicationUser : IdentityUser { // 添加自定义属性和方法 } public class IdentityRole : IdentityRole { // 添加自定义属性和方法 } -
配置数据库上下文: 在项目中创建一个新的文件夹(例如
Data),然后创建一个名为ApplicationDbContext.cs的文件。在这个文件中定义一个继承自IdentityDbContext的数据库上下文类。例如:public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext(DbContextOptionsoptions ) : base(options) { } } -
配置连接字符串: 在
appsettings.json文件中添加一个名为DefaultConnection的连接字符串,指向数据库。例如:"ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true" } -
创建数据库迁移: 在命令行中运行以下命令,以创建数据库迁移文件:
dotnet ef migrations add InitialCreate然后运行以下命令,以应用迁移并创建数据库:
dotnet ef database update -
使用ASP.NET Identity进行用户认证和授权: 在项目中创建一个新的文件夹(例如
Controllers),然后创建一个名为AccountController.cs的文件。在这个文件中,你可以使用ASP.NET Identity提供的方法进行用户注册、登录、注销等操作。例如:public class AccountController : Controller { private readonly UserManager_userManager; private readonly SignInManager _signInManager; public AccountController(UserManager userManager, SignInManager ) { _userManager = userManager; _signInManager = signInManager; } // 注册、登录、注销等方法 }signInManager -
配置路由: 在
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,并可以使用它进行用户认证和授权。你可以根据需要扩展用户和角色类,以及实现自定义的认证和授权逻辑。