我正在使用aspnet_regsql.exe来创建角色和用户表(dbo.aspnet_Roles,dbo.aspnet_Users)。创建角色工作正常,但当我尝试从我的可视化网站应用程序中保存用户时,它会抛出以下错误:
无效的对象名称'dbo.AspNetUsers'
我使用了以下代码,因此我可以决定哪个是我的用户表,但它不起作用。
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("aspnet_Users", "dbo");
}
这是我的web.config
<membership defaultProvider="SqlProvider">
<providers>
<clear />
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DefaultConnection" applicationName="/" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" />
</providers>
</membership>
<profile>
<providers>
<clear />
</providers>
</profile>
<roleManager defaultProvider="SqlProvider" enabled="true">
<providers>
<clear />
<add name="SqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
我不知道我在web.config中做错了什么或使用aspnet_regsql.exe(顺便说一下,我正在使用向导)
答案 0 :(得分:0)
我意识到如果我使用RoleManager将角色添加到我的应用程序中,那么这些将保存在dbo.AspNetRoles中,并且在向用户添加角色时没有冲突。
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var str = roleManager.Create(new IdentityRole("admin"));