asp.net-identity-2 – Asp.Net身份保存用户没有电子邮件

前端之家收集整理的这篇文章主要介绍了asp.net-identity-2 – Asp.Net身份保存用户没有电子邮件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想保存用户没有电子邮件,像这样:
var user = new ApplicationUser { UserName = model.Name };
var result = await UserManager.CreateAsync(user);

但是我收到错误“电子邮件不能为空或空”。有没有解决方案?还是不可能?

解决方法

身份取决于电子邮件作为重置用户密码的方式。

然而,忽略电子邮件并不简单,但可能。您将需要实现Microsoft.AspNet.Identity.IIdentityValidator接口,忽略缺少电子邮件

namespace Microsoft.AspNet.Identity
{
  /// <summary>
  /// Used to validate an item
  /// 
  /// </summary>
  /// <typeparam name="T"/>
  public interface IIdentityValidator<in T>
  {
    /// <summary>
    /// Validate the item
    /// 
    /// </summary>
    /// <param name="item"/>
    /// <returns/>
    Task<IdentityResult> ValidateAsync(T item);
  }
}

然后在ApplicationUserManager中将您自己的实现分配给属性UserValidator。

如果你真的需要这个,你可以通过反编译Microsoft.AspNet.Identity.UserValidator类来获取UserValidator的原始源代码,并窥探现有的源代码,并删除电子邮件的cheecking。

但是,我不知道框架的重置如何对用户的电子邮件缺乏反应。你可能会在其他操作中获得例外。

猜你在找的asp.Net相关文章