Net Core: тип или имя пространства имен 'RoleProvider' не найдено - PullRequest
8 голосов
/ 25 марта 2019

Я мигрирую проект из .Net 4.6.2 в .Net Core 2.0.Чем заменить RoleProvider в Net Core?

Не удалось найти имя типа или пространства имен 'RoleProvider' (отсутствует директива using или ссылка на сборку?)

 public class CustomerRoleProvider : RoleProvider
    {
        public override string CustomerName { get; set; }

        public override void AddUsersToRoles(string[] usernames, string[] roleNames)
        {

Новый код выглядит следующим образом, получена ошибка

Using the generic type 'RoleManager<TRole>' requires 1 type arguments

// Error first line: Using the generic type 'RoleManager<TRole>' requires 1 type arguments

public class CustomerRoleProvider : RoleManager
{
    public string ApplicationName { get; set; }

    public void CreateRole(IServiceProvider serviceProvider, string roleName)
    {
        var RoleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
        throw new NotImplementedException();
    }

Обновление: Ответ Джона Кенни выглядит великолепно, надеюсь, кто-то может добавить больше в его ответ в качестве правки.

1 Ответ

5 голосов
/ 25 марта 2019

RoleProvider не существует в .NET Core, по крайней мере, не в такой форме.Я считаю, что вы ищете это RoleManager.Реализация очень похожа на приведенную ниже:

var RoleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
var UserManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();

Пожалуйста, обратитесь к этой статье , чтобы узнать, как ее реализовать.

...