簡體   English   中英

ASP.Net MVC身份忘記密碼

[英]ASP.Net MVC Identity Forgotten Password

我已經設置了一個快速頁面來接受一個電子郵件地址,該地址將向其發送一封電子郵件,該郵件稍后將包含重置密碼或新臨時密碼的鏈接。

我的項目是一個使用Identity的新的ASP .Net MVC項目。 我認為重置它的最好方法是發送一個鏈接到電子郵件,當點擊時允許用戶輸入一個新的,但后來我不知道鏈接指向的頁面放什么,以允許這個功能和保持網站安全。

在這種情況下,發送一個新的臨時單一是最簡單的嗎?

這太長了,不適合評論,所以希望我沒有實際的代碼示例得到投票:O

我見過的常見解決方案:

當用戶請求重置密碼時,請將guid / random hash和expiration datetime記錄到用戶存儲中的用戶信息中(最有可能是db)。

帶有臨時頁面鏈接的電子郵件將發送到用戶的電子郵件地址(此解決方案需要有效的電子郵件地址)。

一旦命中了臨時頁面,就可以將鏈接設置為立即過期(將過期日期設置為datetime.now,或者從用戶信息中刪除guid / hash等)。

此臨時頁面URL可能在查詢字符串中具有記錄用戶的guid / hash,因此如果沒有電子郵件中的鏈接, 應該很難找到它。 為了增加安全性,用戶可能需要輸入要求重置密碼的用戶名/電子郵件(因為頁面上可能沒有提及用戶名/密碼。一旦完成此驗證(或不完成),請向用戶提供適當的字段重置密碼。

關於“忘記密碼鏈接”的另一個最后注釋不提供關於用戶名是否“不存在”的任何信息,因為這可能會在您的網站上找到有效的用戶名。

編輯:

這是一個先前的堆棧溢出問題,可能比我更好地解釋它(不要看“接受”的答案,看看最受歡迎的答案。:)

生成臨時URL以重置密碼

您可以在“Microsoft ASP.NET Identity Samples 2.1.0-alpha1” NuGet包的預發布版本中找到使用“忘記密碼”功能的完整示例。

腳步

  1. 創建空Web應用程序項目
  2. 安裝示例項目:Install-Package Microsoft.AspNet.Identity.Samples -Pre
  3. 啟動應用程序並注冊新用戶。
  4. 轉到登錄頁面,單擊“忘記密碼”。 然后添加最近注冊的用戶電子郵件。

然后,您將能夠調試應用程序檢查“忘記密碼”過程。

暫無
暫無

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

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