我想使用我自己的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="data source=localhost;initial catalog=DbEpicerie;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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和我改变DbContext
到IdentityDbContext<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>
任何想法,为什么它不工作?
谢谢
对不起,这是我的问题是错误的。我做了编辑。谢谢 – Marc