我想使用AspNetCore.Identity程序集實現密碼重置機制。它從用戶開始說他們忘記了密碼,輸入他們的電子郵件和密碼,然後提交。最後調用此代碼AspNetCore.Identity重置密碼 - 「X」的實例無法跟蹤
IdentUser user = UserManager.FindByName(passwordObj.username);
//Some unrelated code in between
Task<string> codeTask = UserManager.GeneratePasswordResetTokenAsync(user);
string code = Base64ForUrlEncode(codeTask.Result);
string applicationUrl = string.Format("{0}/{1}?userId={2}&&token={3}", ApplicationUrl, "ResetPasswordView", user.Id, code);
我沒有任何問題生成一個重置密碼令牌,任務運行完成,我得到一個電子郵件與正確的URL。
然而,當我嘗試重置密碼,我得到這個塊的代碼
public JsonResult ResetPassword(ResetPasswordModel passwordObj)
{
IdentUser User = UserManager.FindById(passwordObj.userId);
//Unrelated code
Task<IdentityResult> resetPassTask = UserManager.ResetPasswordAsync(User, Base64ForUrlDecode(passwordObj.token), passwordObj.resetPassword);
IdentityResult user = resetPassTask.Result;
....
}
和resetPassTask.Result
線產生一個異常說「實體類型‘IdentUser’的實例無法被追蹤因爲另一個這種類型的相同鍵的實例已被跟蹤
我還是比較新的ASP.NET核心,我剛開始學習異步調用的來龍去脈,所以我有一個艱難的時間調試這個。我已經搜索了答案,沒有發現任何解決我的問題的東西,所以我就在這裏。有關如何解決或調試此問題的任何想法?
可能是不相關的,但是你最好不要等待異步調用? –