将 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 在后端验证电子邮件时,如何将输入提交从禁用更改为启用?