{"id":1411,"date":"2021-12-30T08:31:00","date_gmt":"2021-12-30T08:31:00","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=1411"},"modified":"2021-12-30T13:11:57","modified_gmt":"2021-12-30T13:11:57","slug":"tip-resetear-contrasena-con-asp-net-identity","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/tip-resetear-contrasena-con-asp-net-identity\/","title":{"rendered":"TIP: resetear contrase\u00f1a con ASP.NET Identity"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En entornos .NET Framework debemos utilizar las implementaciones de <a href=\"http:\/\/owin.org\/html\/spec\/owin-1.0.html\" data-type=\"URL\" data-id=\"http:\/\/owin.org\/html\/spec\/owin-1.0.html\" target=\"_blank\" rel=\"noreferrer noopener\">OWIN<\/a> \/ <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/aspnet\/aspnet\/overview\/owin-and-katana\/\" data-type=\"URL\" data-id=\"https:\/\/docs.microsoft.com\/en-us\/aspnet\/aspnet\/overview\/owin-and-katana\/\" target=\"_blank\">Katana<\/a> de manera adicional, en .NET Core (o el nombre que acabe teniendo) no es necesario al tratarse de una evoluci\u00f3n de las librer\u00edas <em>Microsoft.Owin.*<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un ejemplo sencillo s\u00edncrono para realizar un cambio de contrase\u00f1a:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nusing Microsoft.Owin.Security.DataProtection;\nusing Microsoft.Owin.Security;\nusing Microsoft.AspNet.Identity.Owin;\nusing Microsoft.AspNet.Identity;\nusing Microsoft.AspNet.Identity.EntityFramework;\n...\n\nvar userStore = new UserStore&amp;lt;IdentityUser&gt;();\nvar userManager = new UserManager&amp;lt;IdentityUser&gt;(userStore);\nvar user = userManager.FindByName(MyUserNameTextBox.Text);\n\nvar provider = new DpapiDataProtectionProvider(System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName());\nuserManager.UserTokenProvider = (IUserTokenProvider&amp;lt;IdentityUser, string&gt;)(new DataProtectorTokenProvider&amp;lt;IdentityUser, string&gt;(provider.Create(&quot;UserToken&quot;)) as IUserTokenProvider&amp;lt;IdentityUser, string&gt;);\n\nvar token = userManager.GeneratePasswordResetToken(user.Id);\nvar result = userManager.ResetPassword(user.Id, token, MyPasswordTextBox.Text);\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>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\u00f3n de las librer\u00edas Microsoft.Owin.* Un ejemplo sencillo s\u00edncrono para realizar un cambio de contrase\u00f1a:<\/p>\n","protected":false},"author":1,"featured_media":1413,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[839,842,841,840,843],"class_list":["post-1411","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-asp-net-identity","tag-dataprotection","tag-katana","tag-owin","tag-tokenprovider"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=1411"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1411\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/1413"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=1411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=1411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=1411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}