[英]ASP.NET Core 2.2 How to override UserManager.CreateAsync to remove unique Username requirement
我正在尝试覆盖我的 UserManager.CreateAsync 以消除对唯一用户名的要求。 我怎样才能做到这一点?
到目前为止,这就是我所拥有的
public class CustomUserManager : UserManager<User>
{
public string TenantId { get; set; }
public CustomUserManager(IUserStore<User> store, IOptions<IdentityOptions> optionsAccessor,
IPasswordHasher<User> passwordHasher, IEnumerable<IUserValidator<User>> userValidators,
IEnumerable<IPasswordValidator<User>> passwordValidators, ILookupNormalizer keyNormalizer,
IdentityErrorDescriber errors, IServiceProvider services, ILogger<UserManager<User>> logger) : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger)
{
}
public override async Task<IdentityResult> CreateAsync(User user, string Password)
{
ThrowIfDisposed();
user.TenantId = this.TenantId;
if (user == null)
{
throw new ArgumentNullException("user");
}
var result = dbContext.Users.Any(u => u.UserName == user.UserName && u.TenantId == user.TenantId);
if (result == true)
{
return IdentityResult.Failed();
}
return await base.CreateAsync(user, Password);
}
}
由于我使用 base.CreateAsync,我无法强制创建用户。 如何覆盖 CreateAsync 正在执行的操作?
我坚持这一点。
请尝试设置 dbContext.Configuration.ValidateOnSaveEnabled = false; 看看它是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.