Asp.net mvc 4 WebSecurity.InitializeDatabaseConnection失败,返回“0”;尚未启用角色管理器功能。”;从控制台程序调用时
我有一个使用SimpleMembership对用户进行身份验证的MVC4应用程序 我想从控制台程序添加用户 引用类库的控制台程序,该类库具有执行用户创建的方法 看起来是这样的:Asp.net mvc 4 WebSecurity.InitializeDatabaseConnection失败,返回“0”;尚未启用角色管理器功能。”;从控制台程序调用时,asp.net-mvc-4,simplemembership,Asp.net Mvc 4,Simplemembership,我有一个使用SimpleMembership对用户进行身份验证的MVC4应用程序 我想从控制台程序添加用户 引用类库的控制台程序,该类库具有执行用户创建的方法 看起来是这样的: public class UserBuilder { private static readonly SimpleMembershipInitializer _membershipInitializer; private static readonly bool _isInitialized; p
public class UserBuilder
{
private static readonly SimpleMembershipInitializer _membershipInitializer;
private static readonly bool _isInitialized;
private static readonly object _initializerLock = new object();
static UserBuilder()
{
LazyInitializer.EnsureInitialized(ref _membershipInitializer, ref _isInitialized, ref _initializerLock);
}
public void HandleEvent(UserAdded @event)
{
if (!WebSecurity.UserExists("ReportModels"))
{
WebSecurity.CreateUserAndAccount("ReportModels", "ReportModels");
};
}
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
}
}
当我启动控制台应用程序时,我在WebSecurity.initializedTabaseConnection
开头的行中得到System.Configuration.Provider.ProviderException{“角色管理器功能尚未启用”。}
我需要做些什么来实现这一点
我试过:
- 将nuget软件包Microsoft ASP.NET Web Pages 2 Web数据添加到控制台项目和类库项目
- 此帖子中列出的答案:李>
- 已验证连接字符串
- 已验证表是否在数据库中就位
- 验证了从MVC4项目创建用户并对其进行身份验证是否有效
- 多亏了在这篇博文中找到的信息和一些谷歌搜索,最终解决了这个问题
本质上,我需要将其添加到我的app.config文件中:
<system.web>
<profile defaultProvider="SimpleProfileProvider">
<providers>
<add name="SimpleProfileProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"
connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
<roleManager defaultProvider="SimpleRoleProvider" enabled="true">
<providers>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
</system.web>
请注意rolemager
元素上的enabled=“true”
。否则将抛出相同的异常