我有一个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连接。
答案 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
这让我烦恼了一段时间,所以我不得不把它拿出去!