Skip to main content
 首页 » 编程设计

c#之使用 ASP.NET Web Api 时如何检查电话号码在 AspNetUsers 表中是唯一的

2024年02月04日33cyq1162

我创建了一个 Asp.Net Web Api 项目并使用了个人用户帐户。 当我将用户添加到表中时,默认系统会自动检查所提供的电子邮件地址是否已存在于表中,如果存在则抛出错误请求,否则可以提交用户。

我还如何检查电话号码是否唯一且尚未提交到表中?

// POST api/Account/Register 
        [AllowAnonymous] 
        [Route("Register")] 
        public async Task<IHttpActionResult> Register(RegisterBindingModel model) 
        { 
            if (!ModelState.IsValid) 
            { 
                return BadRequest(ModelState); 
            } 
 
            **using (ApplicationDbContext db = new ApplicationDbContext()) 
            { 
                var foundPhoneNumber = await db.Users.FirstOrDefaultAsync(x => x.PhoneNumber.Equals(model.PhoneNumber)); 
 
                if (foundPhoneNumber != null) 
                { 
                    return BadRequest("Phone number already exists"); 
                } 
            }** 
 
            var user = new ApplicationUser() 
            { 
                UserName = model.Email, 
                Email = model.Email, 
                PhoneNumber = model.PhoneNumber, 
                FirstName = model.FirstName, 
                LastName = model.LastName, 
                MemberNumber = model.MemberNumber, 
                CarReg = model.CarReg 
            }; 
 
            IdentityResult result = await UserManager.CreateAsync(user, model.Password); 
 
            if (!result.Succeeded) 
            { 
                return GetErrorResult(result); 
            } 
 
            return Ok(); 
        } 

我已查询数据库以检查是否有相同号码的电话号码。这可行,但有更好的方法吗?

请您参考如下方法:

修改您的 ApplicationUser 调用并添加以下属性。

public class ApplicationUser : IdentityUser 
{ 
    [MaxLength(17)] 
    [IsUnique] 
    public string PhoneNumber { get; set; } 
}