【问题标题】:Net Core: Type or namespace name 'RoleProvider' could not be foundNet Core:找不到类型或命名空间名称“RoleProvider”
【发布时间】:2019-03-25 05:34:57
【问题描述】:

我正在将一个项目从 .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 的回答看起来很棒,希望有人可以在他的回答中添加更多内容作为编辑。

【问题讨论】:

    标签: c# .net-core asp.net-core-mvc .net-core-2.0


    【解决方案1】:

    RoleProvider 在 .NET Core 中不存在,至少不以那种形式存在。 我相信您正在寻找的是RoleManager。实现与以下非常相似:

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

    请参阅此article,了解如何实现它的详细信息。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2017-07-12
    • 2011-05-13
    • 2013-03-25
    相关资源
    最近更新 更多