ASP.NET MVC异常'尚未启用角色管理器功能'

时间:2018-11-19 07:15:37

标签: asp.net-mvc exception roles user-roles asp.net-roles

我正在尝试制作一个ASP.net MVC网站。我在Startup.cs文件中具有安装角色,如下所示:

    private void CreateRolesAndUsers()
    {
        ApplicationDbContext context = new ApplicationDbContext();
        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
        var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));

        if (!roleManager.RoleExists("SuperAdmin"))
        {
            // first we create Admin role   
            var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
            role.Name = "SuperAdmin";
            roleManager.Create(role);
            //Here we create a Admin super user who will maintain the website
            var user = new ApplicationUser();
            user.UserName = "SuperAdmin";
            user.Email = "SuperAdmin@SU.com";

            string userPWD = "Password1";

            var chkUser = UserManager.Create(user, userPWD);
            //Add default User to Role Admin   

            if (chkUser.Succeeded)
            {
                var result1 = UserManager.AddToRole(user.Id, "SuperAdmin");
            }
        }
    }

我已验证上述代码已成功将角色添加到数据库中,当我尝试Roles.IsUserInRole(User.Identity.Name,“ SuperAdmin”)时,我首先注意到角色不起作用

我试图控制哪些角色在视图中看到某些内容并获得异常:

System.Configuration.Provider.ProviderException:'角色管理器功能尚未启用。'

当我尝试在.cshtml文件中调用以下行时:@ Roles.GetRolesForUser();

ive寻找了在Web.config中启用roleManager的位置,但是找不到它,而且如果我在system.web部分下添加它,它也无法正常工作

编辑:在使用IsUserInRole时,将(> roleManager enabled =“ true” <)添加到以下代码中会产生另一个未处理的异常:“ System.Web.HttpException:无法连接到SQL Server数据库。”

<system.web>
    <authentication mode="None"/>
    <compilation debug="true" targetFramework="4.7"/>
    <httpRuntime targetFramework="4.7"/>
</system.web>

我认为我可能只是缺少一个依赖项或一些诱因,但没有任何线索,类似问题中的其他解决方案也没有奏效。

1 个答案:

答案 0 :(得分:0)

您可以通过从以下boolean属性中读取内容来实现:

System.Web.Security.Roles.Enabled 这是从web.config中的roleManager元素的enabled属性直接读取的:

<configuration>
  <system.web>
    <roleManager enabled="true" />
  </system.web>
</configuration>

有关更多信息,请查看以下MSDN示例:https://msdn.microsoft.com/en-us/library/aa354509(v=vs.110).aspx