2014-01-27 24 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

相關問題