在我的应用程序中,我有一个管理区域,可以创建用户并设置默认密码(创建帐户的用户不能看到该密码)。我通过使用usermanager来做到这一点。aspnet身份2 passwort重置令牌在其他子域无效
var usermanager = context.GetOwinContext().GetUserManager<ApplicationUserManager>();
usermanager.Create(user, pass);
如果创建了用户密码,重置标记将被创建并通过电子邮件发送给用户。
string code = usermanager.GeneratePasswordResetToken(user.Id);
var url = string.Format("<a href='{0}?code={1}'>hier</a>", callBackUrl, HttpUtility.UrlEncode(code));
mail = CreateStudentEmailContent(context, repo, student, url, user.UserName);
usermanager.SendEmail(user.Id, mail.Subject, mail.Body);
现在用户收到邮件并单击链接,将链接发送到他可以设置新密码的公共区域的密码忘记页面。
管理区域和公共区域是两个独立的项目,将托管在不同子域下的不同服务器上。当我用localhost在本地测试它,并将不同的端口分配给这些区域时,一切正常。 但是,一旦我将应用程序部署到服务器,当我尝试使用链接更改密码时,我总会得到“令牌无效”。
看起来主机是以某种方式编码的令牌,并尝试重置密码时变得非常有用。
是否有一个允许令牌由另一个服务器发出的设置,或者我该如何解决这个问题?