Я пытаюсь понять, что происходит, и хочу отредактировать часть usermanager через мой собственный applicationusermanager. Перед вызовом UserStore CreateAsync (перед вставкой в БД), который я должен использовать.Я не могу понять этот код здесь ..
public virtual async Task<IdentityResult> CreateAsync(TUser user, string password)
{
this.ThrowIfDisposed();
IUserPasswordStore<TUser, TKey> passwordStore = this.GetPasswordStore();
if ((object) user == null)
throw new ArgumentNullException(nameof (user));
if (password == null)
throw new ArgumentNullException(nameof (password));
IdentityResult identityResult = await this.UpdatePassword(passwordStore, user, password).WithCurrentCulture<IdentityResult>();
if (!identityResult.Succeeded)
return identityResult;
return await this.CreateAsync(user).WithCurrentCulture<IdentityResult>();
}
public virtual async Task<IdentityResult> CreateAsync(TUser user)
{
this.ThrowIfDisposed();
await this.UpdateSecurityStampInternal(user).WithCurrentCulture();
IdentityResult identityResult = await this.UserValidator.ValidateAsync(user).WithCurrentCulture<IdentityResult>();
if (!identityResult.Succeeded)
return identityResult;
if (this.UserLockoutEnabledByDefault && this.SupportsUserLockout)
await this.GetUserLockoutStore().SetLockoutEnabledAsync(user, true).WithCurrentCulture();
await this.Store.CreateAsync(user).WithCurrentCulture();
return IdentityResult.Success;
}
Я пытаюсь так:
public override async Task<IdentityResult> CreateAsync(FrUser user,string password)
{
IUserPasswordStore<FrUser> pws = Store as IUserPasswordStore<FrUser>;
if ((object)user == null)
return new IdentityResult(string.Format(SystemMessage.NewException,"CreateAsync User Null"));
if (password == null)
return new IdentityResult(string.Format(SystemMessage.NewException, "CreateAsync Password Null"));
IdentityResult result = await this.UpdatePassword(pws, user, password);
IdentityResult secondResult= await base.CreateAsync(user);
//at last calling Store.CreateAsync(user); for db insert
return bla bla;
}