在我的應用程序中,我有一個管理區域,可以創建用戶並設置默認密碼(創建帳戶的用戶不能看到該密碼)。我通過使用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在本地測試它,並將不同的端口分配給這些區域時,一切正常。 但是,一旦我將應用程序部署到服務器,當我嘗試使用鏈接更改密碼時,我總會得到「令牌無效」。
看起來主機是以某種方式編碼的令牌,並嘗試重置密碼時變得非常有用。
是否有一個允許令牌由另一個服務器發出的設置,或者我該如何解決這個問題?