启用角色管理器mvc5

时间:2015-01-26 14:18:02

标签: c# asp.net-mvc web-config asp.net-mvc-5

我有一个MVC 5项目。

我想使用Roles.GetAllRoles()

但是我得到System.Configuration.Provider.Exception

我尝试通过修改Web.Config来解决它,但我仍然得到错误。

<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<roleManager defaultProvider="CustomRoleProvider">
  <providers>
    <clear />
    <add name="CustomRoleProvider" type="MyProjekt.CustomRoleProvider" />
  </providers>
</roleManager>    
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.1" />

我也尝试添加

<roleManager 
enabled="true" 
cacheRolesInCookie="true" >

但后来我得到了

  

类型&#39; System.Web.HttpException&#39;的例外情况发生在   System.Web.dll但未在用户代码中处理

     

其他信息:无法与SQL Server-Database连接。

2 个答案:

答案 0 :(得分:0)

我被这个骗了一段时间Roles.IsUserInRole(“Admin”),它让我沿着寻找角色提供者的路线等等。我应该刚刚使用User.IsInRole(“Admin”)
以下是启用角色的有用文章 http://geekswithblogs.net/MightyZot/archive/2014/12/28/implementing-rolemanager-in-asp.net-mvc-5.aspx

答案 1 :(得分:0)

我知道这可能与您的问题无关,但我刚刚发现如何找到特定用户所分配的角色:

    Dim userInfo = UserManager.FindById(User.Identity.GetUserId())
    Dim userRole As String = userInfo.Roles(0).RoleId
    Dim thisRole As String = db.Roles.Where(Function(x) x.Id = userRole).FirstOrDefault().Name

这让我烦恼了一段时间,所以我不得不把它拿出去!