【发布时间】:2020-06-08 20:59:24
【问题描述】:
我试图弄清楚如何在我的 Razor Pages 应用程序中启用和填充角色。
按照各种教程,Startup.cs 中的ConfigureServices 看起来像这样:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<ApplicationUser>(options =>
{
options.SignIn.RequireConfirmedAccount = false;
})
.AddRoles<ApplicationUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddRazorPages();
// Set the default authentication policy to require users to be authenticated
services.AddControllers(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
}
但是对AddDefaultIdentity 的调用会引发异常。
System.InvalidOperationException: 'AddEntityFrameworkStores 只能使用派生自 IdentityRole 的角色调用。'
谁能看到我在这里遗漏了什么?另外,我真的很想知道如何填充角色。
【问题讨论】:
-
@DenisStukalov:我确实看到了那个。但他使用的方法与 Visual Studio 创建的方法不同,我不知道为什么。我找不到关于这些东西的好教程。
-
应该是
.AddRoles<IdentityRole>()而不是 IdentityUser。
标签: c# asp.net-core razor-pages asp.net-core-identity