忽略具有 ASP.NET 标识的用户名属性



我的应用使用 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 中不受支持 实体。仅初始值设定项、实体成员和实体导航 支持属性。

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

是否可以在用户表中没有用户名列的情况下使用 ASP.NET 身份(在我的情况下不会使用(?

我认为默认IdentityUser是不可能的。用户名属性也用于身份验证。

你可能必须写下自己的身份,或者只是"忽略"它(顺其自然(。

相关内容

  • 没有找到相关文章

最新更新