2014-01-27 72 views
0

我想使用我自己的SQL Server数据库来存储用户权限。UserStore与我自己的数据库

我初始化UserStore与我的背景是这样的(我试过用默认构造函数也)

UserManagerFactory =() => new UserManager<IdentityUser>(new UserStore<IdentityUser>(new DbEpicerieEntities())); 

然后,我创建了一个空数据库,生成实体数据模型。

然后,我改变web配置我的连接

<connectionStrings> 
    <add name="DefaultConnection" connectionString="metadata=res://*/Models.EpicerieModel.csdl|res://*/Models.EpicerieModel.ssdl|res://*/Models.EpicerieModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=DbEpicerie;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

但它不工作。如果我尝试注册一个用户,后

IdentityResult result = await UserManager.CreateAsync(user);

它会调用

protected override void Dispose(bool disposing) 
{ 
    if (disposing) 
    { 
     UserManager.Dispose(); 
    } 

    base.Dispose(disposing); 
} 

我尝试使用与已经取得表的数据库,但我也有同样的结果。

我试图更改DefaultConnection的连接名称,但没有成功。

我试过的建议,对question和我改变DbContextIdentityDbContext<IdentityUser>

public partial class DbEpicerieEntities : IdentityDbContext<IdentityUser> 
    { 
     public DbEpicerieEntities() 
      : base("DefaultConnection") 
     { 
     } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      throw new UnintentionalCodeFirstException(); 
     } 

    } 

,但我有同样的问题。

我不知道,如果在web配置中的EntityFramework设置可能是问题

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 

任何想法,为什么它不工作?

谢谢

回答

2

使用下面的连接字符串解决了这个问题对我来说:

<add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=Epicerie;Integrated Security=True;" providerName="System.Data.SqlClient" /> 
1

可您发布MyContext类?您可以进行的尝试是将您的第一个代码片段更改为使用您的类DbEpicerieEntities类,而不是MyContext类。

UserManagerFactory =() => new UserManager<IdentityUser>(new UserStore<IdentityUser>(new DbEpicerieEntities())); 
+0

对不起,这是我的问题是错误的。我做了编辑。谢谢 – Marc

相关问题