将 web-API 注册字段从电子邮件更改为电话号码

Posted

技术标签:

【中文标题】将 web-API 注册字段从电子邮件更改为电话号码【英文标题】:Change web-API registration field from Email to PhoneNumber 【发布时间】:2019-10-26 21:34:26 【问题描述】:

我正在尝试自定义 Asp.Net Identity 的注册过程(在 web-API 项目中)。 是否可以使用 PhoneNumber 而不是使用 web-API 的电子邮件注册新用户?

此外,Identity 框架的其余功能应该与这种新方法一起使用吗?

程序员使用这种方法会面临哪些挑战?

尝试在 RegisterBindingModel.cs 中将 Email 更改为 PhoneNumber:

    [Required]
    [Display(Name = "Mobile number")]
    public string PhoneNumber  get; set; 

原来的代码是:

    [Required]
    [Display(Name = "Email")]
    public string Email get; set; 

AccountController.cs 中的更改

var user = new ApplicationUser()  UserName = model.PhoneNumber, PhoneNumber = model.PhoneNumber ;

        IdentityResult result = await UserManager.CreateAsync(user, model.Password);

预期的结果是一个新用户只用电话号码注册。

实际结果是, 错误 - 来自 ModelState 的“电子邮件不能为空或为空”。

【问题讨论】:

您是否尝试将services.AddIdentity 中的User.RequireUniqueEmail 属性设置为false?我假设这是一个 asp.net core 项目。 @bolkay,这是一个 .net 框架 web-API 项目。 【参考方案1】:

IdentityConfig.cs 中的以下代码更改有效:

RequireUniqueEmail = false

而且,身份框架也在检查是否存在错误的重复条目:

名称 9xxxxxxx8x 已被占用

感谢:@Rudy Asp.Net Identity save user without email

【讨论】:

以上是关于将 web-API 注册字段从电子邮件更改为电话号码的主要内容,如果未能解决你的问题,请参考以下文章

当使用 PHP 在后端验证电子邮件时,如何将输入提交从禁用更改为启用?

如何从 CSV 更改 AD 中的多个电话号码

如何将输入蓝色激活边框更改为红色

将 Django 模型字段的类型从 CharField 更改为 ForeignKey

将字段输入类型从隐藏更改为文本

协议缓冲区:将字段类型从字符串更改为字符串值向后兼容?