aspnet_regsql.exe创建dbo.aspnet_users但是visual 2013需要dbo.AspNetUsers

时间:2015-11-29 16:13:25

标签: c# asp.net sql-server asp.net-identity

我正在使用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(顺便说一下,我正在使用向导)

1 个答案:

答案 0 :(得分:0)

我意识到如果我使用RoleManager将角色添加到我的应用程序中,那么这些将保存在dbo.AspNetRoles中,并且在向用户添加角色时没有冲突。

var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var str = roleManager.Create(new IdentityRole("admin"));