Net Core:找不到“RoleProvider”的类型或命名空间名称

7

我正在将一个项目从.Net 4.6.2迁移到.Net Core 2.0。在Net Core中,RoleProvider的替代品是什么?

无法找到类型或命名空间名称'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();
    }

更新: John Kenney的答案看起来很不错,希望有人能够编辑他的答案并加入更多内容。

1个回答

6

RoleProvider在.NET Core中并不存在,至少不是以那种形式存在。 我认为你正在寻找的是RoleManager。实现方式与以下代码类似:

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

请查看此文章,详细了解如何实现角色基础授权在Asp.net Core 2.1中的应用。

那我应该添加 CustomerManager = serviceProvider.GetRequiredService<CustomerManager<IdentityRole>>(); 吗?我该如何将 Customer 加入其中呢?谢谢。 - user11224167
请查看此文章:https://www.c-sharpcorner.com/article/role-base-authorization-in-asp-net-core-2-1/ - codejockie
2
这个答案很好,希望它不仅仅是一个链接,能够有更多的解释。https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers - user11156893

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接