首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Roles.GetRolesForUser() & Roles.GetAllRoles()返回空

Roles.GetRolesForUser() & Roles.GetAllRoles()返回空
EN

Stack Overflow用户
提问于 2016-11-27 16:59:36
回答 1查看 759关注 0票数 0

web.config

代码语言:javascript
复制
<roleManager enabled="true" defaultProvider="SqlRoleManager">
  <providers>
    <clear />
    <add name="SqlRoleManager"
         type="System.Web.Security.SqlRoleProvider"
         connectionStringName="DefaultConnection"
         />
  </providers>
</roleManager>

在asp.net MVC5中,我试图检测当前用户的角色,以便将他重定向到特定于其角色的页面,但是

在我的控制器中

代码语言:javascript
复制
if (Roles.IsUserInRole(User.Identity.GetUserName(), "superadmin")

代码语言:javascript
复制
if (Roles.IsUserInRole(User.Identity.Name, "superadmin")

这两个都不是真的,我确信我已经登录了,因为User.Identity.GetUserName()正在显示我的登录信息

尝试调试时,我发现Roles.GetRolesForUser()是空的,我已经检查了在线资源,但仍然没有解决方案

进一步的调试显示Roles.GetAllRoles()也是空的,但是我的AspNetRoles表有5条记录。

我查看了AspNetUserRoles,发现我的当前用户id分配给了特定的角色id

我已经成功地运行了aspnet_regsql.exe来添加所有功能,但仍然无法获取角色

我认为aspnet_regsql.exe是用于web表单的(我不确定)

EN

回答 1

Stack Overflow用户

发布于 2017-02-19 17:21:00

我正在打电话,所以不能重复检查,但我确信IsUserInRole()会接受一个像IsUserInRole("superadmin")这样的参数来检查会话中的当前用户。我将删除用户名部分,因为您检查的是当前用户,而不是不同的命名用户。它更快,至少会检查和消除一部分逻辑。

您是如何设定角色的?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40827275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档