【发布时间】:2014-02-24 18:40:14
【问题描述】:
我创建了一个具有自定义角色的 EF 代码优先数据库身份系统。当我注册一个用户时,我把他放在一个角色中,在数据库中我可以看到它适用于 AspNetUserRoles 表。
但是当我尝试使用 User.IsInRole("admin") 检查用户角色时,即它总是返回 false(我尝试使用低、高、一路大小写)。 我需要在 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 - 错误定位服务器/指定的实例)
【问题讨论】:
-
你从哪里调用 User.IsInRole?
-
@AlexDresko 我在登录后调用了一个正常的操作。
-
你检查过User.Identity.Name,是否包含登录用户名??
-
@gaurav 检查我的编辑
-
好的,所以当您调用 IsInRole 函数时遇到异常,我认为您应该检查内部异常,它可能包含更详细的错误消息,也发布内部异常消息?
标签: asp.net-mvc asp.net-mvc-5 asp.net-identity