Asp.net mvc 4 WebSecurity.InitializeDatabaseConnection失败,返回“0”;尚未启用角色管理器功能。”;从控制台程序调用时

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

我有一个使用SimpleMembership对用户进行身份验证的MVC4应用程序

我想从控制台程序添加用户

引用类库的控制台程序,该类库具有执行用户创建的方法

看起来是这样的:

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”
      。否则将抛出相同的异常