使用ASP.NET标识

时间:2018-01-22 22:15:48

标签: c# asp.net entity-framework asp.net-identity

我的应用使用ASP.NET身份,但在用户使用UserName登录时不使用Email属性。所以我想将它从数据库表中删除以保持整洁,我已经完成了以下代码:

public class UserEntityConfiguration : EntityTypeConfiguration<User>
{
    public UserEntityConfiguration()
    {
        ToTable("User");

        Property(u => u.Id).HasColumnOrder(0);
        Property(u => u.Title).HasMaxLength(50).HasColumnOrder(1);
        Property(u => u.FullName).HasMaxLength(256).IsRequired().HasColumnOrder(2);
        Property(u => u.Email).HasMaxLength(512).IsRequired().HasColumnOrder(3);
        Property(u => u.EmailConfirmed).HasColumnOrder(4);
        Property(u => u.PasswordHash).HasColumnOrder(5);
        Property(u => u.SecurityStamp).HasMaxLength(256).HasColumnOrder(6);
        Ignore(u => u.UserName);  // not used
        Ignore(u => u.PhoneNumber);  // not used
        Ignore(u => u.PhoneNumberConfirmed);  // not used

    }
}

如果我未设置UserName属性,则会收到运行时错误

  

名称不能为空或空。

如果我然后尝试设置属性,我会收到此错误:

  

LINQ to不支持指定的类型成员'UserName'   实体。仅初始化程序,实体成员和实体导航   支持属性。

因为没有用于将属性映射到的数据库列。

是否可以在没有User表中的UserName列的情况下使用ASP.NET Identity(在我的情况下不会使用)?

1 个答案:

答案 0 :(得分:1)

我认为使用默认IdentityUser是可行的。 UserName属性也用于身份验证。

你可能需要写自己的身份或者只是忽略&#39;它(让它成为)。