TIP: resetear contraseña con ASP.NET Identity

TIP: resetear contraseña con ASP.NET Identity

En entornos .NET Framework debemos utilizar las implementaciones de OWIN / Katana de manera adicional, en .NET Core (o el nombre que acabe teniendo) no es necesario al tratarse de una evolución de las librerías Microsoft.Owin.*

Un ejemplo sencillo síncrono para realizar un cambio de contraseña:

using Microsoft.Owin.Security.DataProtection;
using Microsoft.Owin.Security;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
...

var userStore = new UserStore<IdentityUser>();
var userManager = new UserManager<IdentityUser>(userStore);
var user = userManager.FindByName(MyUserNameTextBox.Text);

var provider = new DpapiDataProtectionProvider(System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName());
userManager.UserTokenProvider = (IUserTokenProvider<IdentityUser, string>)(new DataProtectorTokenProvider<IdentityUser, string>(provider.Create("UserToken")) as IUserTokenProvider<IdentityUser, string>);

var token = userManager.GeneratePasswordResetToken(user.Id);
var result = userManager.ResetPassword(user.Id, token, MyPasswordTextBox.Text);