diff --git a/source/AspNetIdentity/AspNetIdentityManagerService.cs b/source/AspNetIdentity/AspNetIdentityManagerService.cs index 0dc6b4c..03f1983 100644 --- a/source/AspNetIdentity/AspNetIdentityManagerService.cs +++ b/source/AspNetIdentity/AspNetIdentityManagerService.cs @@ -155,7 +155,18 @@ object ParseUInt32(string sub) if (!UInt32.TryParse(sub, out key)) return 0; return key; } - + public virtual Task GeneratePasswordResetTokenAsync(TUserKey userId) + { + return userManager.GeneratePasswordResetTokenAsync(userId); + } + public virtual Task FindByEmailAsync(string email) + { + return userManager.FindByEmailAsync(email); + } + public virtual Task FindByNameAsync(string userName) + { + return userManager.FindByNameAsync(userName); + } public virtual IdentityManagerMetadata GetStandardMetadata(bool includeAccountProperties = true) { var update = new List(); @@ -216,7 +227,6 @@ public virtual IdentityManagerMetadata GetStandardMetadata(bool includeAccountPr }; return meta; } - public virtual PropertyMetadata GetMetadataForClaim(string type, string name = null, PropertyDataType dataType = PropertyDataType.String, bool required = false) { return PropertyMetadata.FromFunctions(type, GetForClaim(type), SetForClaim(type), name, dataType, required); @@ -249,7 +259,16 @@ public virtual Func SetForClaim(string typ return IdentityManagerResult.Success; }; } - + public virtual async Task ResetPasswordAsync(string subject, string token, string newPassword) + { + TUserKey key = ConvertUserSubjectToKey(subject); + var result = await this.userManager.ResetPasswordAsync(key, token, newPassword); + if (!result.Succeeded) + { + return new IdentityManagerResult(result.Errors.First()); + } + return IdentityManagerResult.Success; + } public virtual IdentityManagerResult SetPassword(TUser user, string password) { var token = this.userManager.GeneratePasswordResetToken(user.Id); @@ -260,7 +279,6 @@ public virtual IdentityManagerResult SetPassword(TUser user, string password) } return IdentityManagerResult.Success; } - public virtual string GetEmail(TUser user) { return userManager.GetEmail(user.Id); @@ -285,7 +303,6 @@ public virtual IdentityManagerResult SetEmail(TUser user, string email) return IdentityManagerResult.Success; } - public virtual string GetPhone(TUser user) { return userManager.GetPhoneNumber(user.Id);