“尚未启用角色管理器功能” - 从外部Web服务访问SimpleMembership

时间:2013-08-21 13:04:27

标签: simplemembership

希望您能够帮助解决我在SimpleMembershipProvider面临的一个特殊问题。

我有一个MVC4应用程序,它使用SimpleMembership功能来存储用户和角色信息。这一切都完全适用于前端MVC4应用程序。

我们还有一个Web服务,它将调用相同的SimpleMembershipProvider,使用标准的ValidateUser()方法从移动应用程序验证用户凭据。

但是,在我使用ValidateUser()方法之前,我需要使用WebSecurity.InitializeDatabaseConnection方法初始化我的WebSecurity对象。这导致以下错误:

“尚未启用角色管理器功能。”

我正在使用从我的Portal中提取的相同代码初始化服务启动中的WebSecurity对象:

    if (!WebSecurity.Initialized)
    {
    WebSecurity.InitializeDatabaseConnection("PortalContext", "UserProfile", "UserId", "UserName", autoCreateTables: true);
    }

我已经检查过我的web服务的web.config包含appSettings键

    <add key="enableSimpleMembership" value="true" /> 

我还在web.config的system.web部分中包含了rolemanager和membership的详细信息。

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear />
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear />
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>

我现在完全不知所措,整个上午都在谷歌搜索可能的解决方案。

任何人都可以想到可能发生这种情况的原因吗?

1 个答案:

答案 0 :(得分:0)

如果您在同一个解决方案中有多个项目并且正在使用迁移,请将启动项目作为包含迁移的项目(在解决方案资源管理器中,右键单击项目名称&gt;&#34;设置为启动项目&#34; )在运行database-update之前。

相关问题