试图身份验证或访问角色时,ASP.NET MVC SQL Server不可加速



当我尝试使用roles.isuserinrole("劳力士"(或任何相关方法时,我会得到数据库连接问题,如下所示。我可以在数据库中访问角色,并在此之前的任何时间读/写,因此我确定没有任何连接问题。所有用户的角色ID的匹配都很好。当尝试访问已验证到某个角色的控制器方法时,此错误也会发生吗?一旦与角色检查有关的任何线被击中应用程序,该应用会立即锁定并在大约一分钟后出现错误。我唯一遇到此错误的时间是尝试访问角色时,不确定身份是否没有连接到DB?我在这个问题上完全损失了,我唯一能想到的是,具有身份的东西不是正确的。任何想法都非常感谢。

您的问题是Roles.IsUserInRole("roleX")不是身份框架的一部分。这是MemberHippRovider的一部分,您不想使用它。出现此错误的原因 - MemberHippRovider试图提供帮助,并尝试连接到数据库,这是您从未告诉过的数据库。

如果您需要检查当前用户是否在角色中使用User.IsInRole("RoleX");。其中User是控制器或视图的一部分。或者,您也可以通过HttpContext.Current.User.IsInRole("RoleX");进行操作,这会检查Auth Cookie以获取有关角色的信息(登录用户的所有角色都持续存在于Auth Cookie中(。

如果您想浸入数据库中以检查任意用户的角色(不是当前登录( - 您需要使用ApplicationUserManager.IsInRoleAsync()

相关内容

  • 没有找到相关文章

最新更新