gpt4 book ai didi

c# - 如何在 ASP.NET Core 2.1 中使用角色?

转载 作者:可可西里 更新时间:2023-11-01 07:50:16 27 4
gpt4 key购买 nike

我创建了一个测试项目:

dotnet new razor --auth Individual --output Test

这将创建一个包含以下内容的 Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});

services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite(
Configuration.GetConnectionString("DefaultConnection")));

services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

我想播种一些用户和角色。用户和角色都将使用相同的存储 (SQLite)。我正在使用静态类进行播种,它是从 Program 中调用的。

我可以播种用户,但不能播种角色,因为上面似乎没有注入(inject) RoleManager

在 ASP.NET Core 2.0 中使用以下内容:

services.AddIdentity<IdentityUser, IdentityRole>()

我猜 AddDefaultIdentity 是 2.1 中的新功能,但问题是它没有注入(inject) RoleMnager,所以我该怎么办?

最佳答案

微软似乎终于明白并不是每个应用程序都需要角色并将它们分开。

请注意 AddDefaultIdentity 声明为:

public static IdentityBuilder AddDefaultIdentity<TUser>(this IServiceCollection services) where TUser : class;

因此,您可以继续通过 IdentityBuilder 配置身份选项。你想要做的是:

services.AddDefaultIdentity<IdentityUser>().AddRoles<IdentityRole>();

幸运的是,他们还删除了 IUserIRole 约束,因此现在您可以在完全独立的程序集中使用模型,而无需安装数百个 NuGet 包。

关于c# - 如何在 ASP.NET Core 2.1 中使用角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50426278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com