如何检查MVC 5身份中的用户角色?

时间:2014-02-24 18:40:15

标签: asp.net-mvc asp.net-mvc-5 asp.net-identity

我使用自定义角色创建EF代码第一个数据库身份系统。当我注册一个用户我把他放在一个角色,在数据库中,我可以看到它在AspNetUserRoles表上工作。

但是当我尝试使用User.IsInRole(“admin”)检查用户角色时,即它总是返回false(我尝试使用low,upper,一路情况)。 我需要在webconfig中添加一些东西吗?或者我在这里失踪了什么?这是我第一次使用这个新的身份系统进行开发,我认为这有点混乱。

在我眼前的窗口:

User.Identity.Name
"teste06"
User.Identity.IsAuthenticated
true
User.IsInRole("admin")
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in     System.Data.dll

例外:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

2 个答案:

答案 0 :(得分:2)

似乎角色管理器已激活 它正在尝试创建一个SQL Express数据库 为了验证角色,我有同样的问题,我通过将此代码添加到我的解决方案 web.config文件

<system.webServer>
  <modules>
    <remove name="RoleManager" />
  </modules>
</system.webServer>

答案 1 :(得分:1)

您必须确保在启动班中有此功能

app.UseSignInCookies();

另外,我猜你的DbContext课程来自IdentityDbContext<ApplicationUser>IdentityDbContext

如果没有,请确保你这样做。

查看this文章以供参考。

可以找到与您的问题相关的类似帖子here