Заявления AspNetCore MVC - Заявки IsInRoleAsync verus

filepaths = ['data/d1.csv', 'data/d2.csv','data/d3.csv','data/d4.csv']
df = pd.concat(map(pd.read_csv, filepaths))
1
задан thisextendsthat 15 January 2019 в 19:20
поделиться

1 ответ

Это известная проблема в версии 2.1, и она была исправлена ​​в 2.2 preview-1.

В ядре asp.net 2.1 используется AddDefaultIdentity, и впрыск становится до

[110 ]

, не сделает Roles включенным по умолчанию и всегда возвращает false для User.IsInRole.

Чтобы обойти это, вместо использования нового AddDefaultIdentity<TUser>() для настройки Identity, просто используйте API старого стиля:

 services.AddIdentity<IdentityUser, IdentityRole>()
    .AddRoleManager<RoleManager<IdentityRole>>()
    .AddDefaultUI()
    .AddDefaultTokenProviders()
    .AddEntityFrameworkStores<ApplicationDbContext>();

Другим способом является то, что вы можете заменить фабрику UserClaimsPrincipal на одну с учетом роли. Добавьте ниже код в ConfigureService и обратитесь к UserRoles в DefaultIdentity

services.AddScoped<IUserClaimsPrincipalFactory<IdentityUser>, UserClaimsPrincipalFactory<IdentityUser, IdentityRole>>();
0
ответ дан Xing Zou 15 January 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: