1

我在 configuration.cs 中使用 Seed 方法,该方法是在 ASP.Net MVC 项目中打开 Code First Migrations 时创建的。

我所有的常用context.ENTITYHERE.AddOrUpdate电话都很好用。当我尝试使用此会员提供程序设置一些用户时,问题就来了:

Could not load type 'CodeFirstMembershipSharp.CodeFirstMembershipProvider' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

如果我禁用 'Membership.CreateUser(Username, Password, Email, null, null, IsApproved, null, out CreateStatus);' WebSecurity.cs 中的行,看起来没问题..!

有任何想法吗?非常感谢任何帮助!

4

1 回答 1

0

编辑:我现在意识到这并没有太大帮助,因为它使用了完全不同的会员提供者(尽管相似)。我仍然不确定如何最好地解决这个问题,但我留下了我的答案,因为我希望它可能会有所帮助。

我知道这现在已经很老了,但我找到了一个安装最新提供程序的解决方案。此链接包含所需的信息:

http://www.hanselman.com/blog/IntroducingSystemWebProvidersASPNETUniversalProvidersForSessionMembershipRolesAndUserProfileOnSQLCompactAndSQLAzure.aspx

有趣的是,自动进行的 web.config 更改似乎比旧的包含更多信息。

我的旧供应商线路是:

<membership defaultProvider="CodeFirstMembershipProvider">
        <providers>
          <add name="CodeFirstMembershipProvider" type="CodeFirstMembershipProvider" connectionStringName="[YOURCONNECTIONNAME]" />
        </providers>
      </membership>
      <roleManager enabled="true" defaultProvider="CodeFirstRoleProvider">
        <providers>
          <clear />
          <add name="CodeFirstRoleProvider" type="CodeFirstRoleProvider" connectionStringName="[YOURCONNECTIONNAME]" />
        </providers>
      </roleManager>

新的提供程序代码如下所示:

<profile defaultProvider="DefaultProfileProvider">
        <providers>
          <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="[YOURCONNECTIONNAME]" applicationName="/" />
        </providers>
      </profile>
      <membership defaultProvider="DefaultMembershipProvider">
        <providers>
           <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="[YOURCONNECTIONNAME]" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
        </providers>
      </membership>
      <roleManager defaultProvider="DefaultRoleProvider">
        <providers>
           <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="[YOURCONNECTIONNAME]" applicationName="/" />
        </providers>
      </roleManager>

于 2015-05-07T08:50:33.610 回答