Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 指定的架构不是有效的成员身份。CreateUser_Entity Framework_Asp.net Membership - Fatal编程技术网

Entity framework 指定的架构不是有效的成员身份。CreateUser

Entity framework 指定的架构不是有效的成员身份。CreateUser,entity-framework,asp.net-membership,Entity Framework,Asp.net Membership,我的任务是从旧的半生不熟的用户商店(使用加密密码)迁移到默认的MS成员/角色提供者。我在其他项目中也做过,没问题 在本例中,我首先使用“new.NET通用提供程序”的代码创建了必要的表。我只是想在Users表中插入新记录,结果遇到了麻烦 我有一个简单的edmx,其中包含由成员资格提供者创建的6个表。我已将web.config设置为指向必要的cxn字符串和成员资格/角色提供程序(代码如下) Web.Config: <connectionStrings> <add name

我的任务是从旧的半生不熟的用户商店(使用加密密码)迁移到默认的MS成员/角色提供者。我在其他项目中也做过,没问题

在本例中,我首先使用“new.NET通用提供程序”的代码创建了必要的表。我只是想在Users表中插入新记录,结果遇到了麻烦

我有一个简单的edmx,其中包含由成员资格提供者创建的6个表。我已将web.config设置为指向必要的cxn字符串和成员资格/角色提供程序(代码如下)

Web.Config:

<connectionStrings>
    <add name="Test" connectionString="metadata=res://*/Entities.Test.csdl|res://*/Entities.Test.ssdl|res://*/Entities.Test.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=[OurServer];initial catalog=[OurDb];integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="Test" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
  <providers>
    <add connectionStringName="Test" applicationName="/" name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" />
  </providers>
</roleManager>

您不需要使用自己的会员资格提供商来使用EntityFramework吗?不需要在mvc4中使用通用提供商。
System.Web.Security.MembershipCreateStatus status = new System.Web.Security.MembershipCreateStatus();

//Get list of existing users, containing Username & encrypted PW
List<UserMigration.Models.Users> usersList = UserMigration.Models.Users.GetUsers();

foreach (var user in usersList)
{
    string password = "";
    //We have two encryption methods (bogus I know), so I attempt to decrypt with one, then another, using existing utility functions.
    if (!EncryptDecrypt.TryDecryptTripleDES(user.Password, out password))
    {
        EncryptDecrypt.TryDecrypt(user.Password, out password);
    }
    //if we got a password, lets party
    if (!string.IsNullOrEmpty(password))
    {
        System.Web.Security.Membership.CreateUser(user.Username, password,string.Empty,null,null,true,out status);
    }
}
Schema specified is not valid. Errors: 
The relationship 'TestModel.MembershipEntity_Application' was not loaded because the type 'TestModel.Membership' is not available.

The relationship 'TestModel.RoleEntity_Application' was not loaded because the type 'TestModel.Role' is not available.

The relationship 'TestModel.User_Application' was not loaded because the type 'TestModel.User' is not available.
The following information may be useful in resolving the previous error:
The required property 'Roles' does not exist on the type 'System.Web.Providers.Entities.User'.