我有一个实现SimpleMembership
的应用程序,该应用程序是在Visual Studio 2012中MVC Template
建模的。我使用SQL Server CE (4)
数据库作为成员资格提供程序并配置了web.config
InitializeSimpleMembershipAttribute
1}}和initializer
。 database
创建Account controller
并添加我的自定义用户和角色,User.IsInRole(<rolename>)
允许用户注册和登录。但是,每当我尝试以编程方式询问会员提供者时,例如Administrator privileges
我收到 SQL连接错误。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
此错误不一致,因为请求有时会成功,但仅在启动本地计算机时才会成功。如果我重新编译错误被抛出,只有重新启动有时会解决问题。我将应用程序池标识设置为SQL Server CE
的本地用户。我正在将MVC 4 application
用于应用程序中的其他数据库,它们都可以正常工作。
我甚至使用VS template
创建了一个新的{{1}},并且遇到了同样的问题。我对如何继续查找错误原因或实施修复感到茫然。
感谢任何帮助。
答案 0 :(得分:1)
我遇到了同样的问题,不幸的是,您无法使用通常的User.IsInRole API检查角色,因为它仍然使用标准提供程序。我发现SimpleRoleProvider暴露了GetRolesForUser,因此您可以检查用户是否处于这样的角色:
Roles.GetRolesForUser("mercury2269").Contains("Admin")