簡體   English   中英

當用戶在ASP.NET/ASP.NET MVC中更改密碼時,如何使任何自動登錄cookie到期?

[英]How to expire any auto-login cookie when user change password in ASP.NET/ASP.NET MVC?

我在項目中使用ASP.NET表單身份驗證方法,將登錄信息作為用戶ID保留在用戶的Cookie中,如以下代碼所示。 它運作良好,沒有任何問題。

FormsAuthentication.SetAuthCookie(userInfo.id.ToString(), model.AutoLogin);

但是,當用戶使用自動登錄然后更改密碼時,就會出現問題。 在某些站點上,我看到它會迫使您在更改密碼時重新登錄。 強制當前頁面注銷並重新登錄非常容易。

但是我發現在其他瀏覽器中強制其他自動登錄cookie再次登錄的好主意。 我這樣做有一個很丑陋的主意,但我不喜歡它。

  1. 在用戶數據中保留最新的更改密碼日期。
  2. 像下面的代碼一樣,將其放入身份驗證cookie中。

    FormsAuthentication.SetAuthCookie(userInfo.id.ToString()+'|'+ userInfo.ChangePasswordDate,model.AutoLogin);

您是否有解決與ASP.NET和ASP.NET MVC一起使用的問題的更好的主意?

謝謝,

身份驗證cookie僅包含加密的用戶名。 因此,您可以通過注銷用戶( FormsAuthentication.SignOut )來強制用戶重新登錄,或者您什么也不做,在這種情況下,舊的cookie仍然有效,仍然經過身份驗證,但是密碼已在數據存儲區中更改,以便下次他嘗試要登錄,他將需要使用此新密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM