首页 文章

使用ASP.NET标识忽略UserName属性

提问于
浏览
2

我的应用程序使用ASP.NET标识,但在用户使用 Email 登录时不使用 UserName 属性 . 所以我用以下代码完成了'd like to remove it from the database table to keep things tidy, which I':

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 Entities中不支持指定的类型成员'UserName' . 仅支持初始值设定项,实体成员和实体导航属性 .

因为没有要将属性映射到的数据库列 .

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

1 回答

  • 1

    我不认为使用默认 IdentityUser 是可能的 . UserName属性也用于身份验证 .

    你可能必须写自己的身份或者只是“忽略”它(让它成为) .

相关问题