SimpleMembership MVC4

时间:2013-01-09 00:18:47

标签: sql-server asp.net-mvc sql-server-ce simplemembership

我有一个实现SimpleMembership的应用程序,该应用程序是在Visual Studio 2012中MVC Template建模的。我使用SQL Server CE (4)数据库作为成员资格提供程序并配置了web.config InitializeSimpleMembershipAttribute 1}}和initializerdatabase创建Account controller并添加我的自定义用户和角色,User.IsInRole(<rolename>)允许用户注册和登录。但是,每当我尝试以编程方式询问会员提供者时,例如Administrator privileges我收到 SQL连接错误。

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

此错误不一致,因为请求有时会成功,但仅在启动本地计算机时才会成功。如果我重新编译错误被抛出,只有重新启动有时会解决问题。我将应用程序池标识设置为SQL Server CE的本地用户。我正在将MVC 4 application用于应用程序中的其他数据库,它们都可以正常工作。

我甚至使用VS template创建了一个新的{{1}},并且遇到了同样的问题。我对如何继续查找错误原因或实施修复感到茫然。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,不幸的是,您无法使用通常的User.IsInRole API检查角色,因为它仍然使用标准提供程序。我发现SimpleRoleProvider暴露了GetRolesForUser,因此您可以检查用户是否处于这样的角色:

Roles.GetRolesForUser("mercury2269").Contains("Admin")