在ASP.NET Core中,可以使用Identity框架来进行身份验证和授权。下面是一个基本的示例,展示了如何在AspNetUsers表上进行身份验证:
首先,确保在项目中安装了Microsoft.AspNetCore.Identity包。
using Microsoft.AspNetCore.Identity;
public class ApplicationUser : IdentityUser
{
// 可以在这里添加其他用户相关的属性
}
using Microsoft.AspNetCore.Identity;
public void ConfigureServices(IServiceCollection services)
{
// 其他服务配置...
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
}
上述代码将Identity服务添加到DI容器中,并指定ApplicationUser类作为用户实体,IdentityRole类作为角色实体。
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}
}
注意,需要将DbContextOptions
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
上述代码将使用SQL Server作为数据库提供程序,可以根据需要更改其它数据库提供程序。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 其他中间件配置...
app.UseAuthentication();
app.UseAuthorization();
// 其他配置...
}
上述代码将Identity中间件添加到请求处理管道中,以便进行身份验证和授权。
现在,你可以在控制器或页面中使用[Authorize]属性来限制访问,并使用User.Identity来访问当前认证的用户。
这只是一个基本的示例,你还可以根据需要进行更多的配置,例如添加自定义属性到ApplicationUser类中,定义角色等等。