1

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

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

此错误不一致,因为请求有时会成功,但仅在本地计算机启动时才会成功。如果我重新编译会引发错误,并且有时只有重新启动才能解决问题。我将应用程序池标识设置为具有Administrator privileges. 我正在使用SQL Server CE应用程序中的其他数据库,它们都工作得很好。

我什至MVC 4 application使用VS templateand 创建了一个新的,它有同样的问题。我不知道如何继续查找错误原因或实施修复。

任何帮助将不胜感激。

4

1 回答 1

1

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

Roles.GetRolesForUser("mercury2269").Contains("Admin")
于 2013-02-14T01:10:44.730 回答