2012-03-01 75 views
3

我已經爲DNN(DotNetNuke)定製登錄控制。現在我試圖實現忘記密碼功能。我能夠使用代碼從數據庫中檢索密碼:忘記密碼:我如何發送電子郵件給用戶在DotNetNuke

UserInfo uInfo = UserController.GetUserByName(this.PortalId, userName); 
if (uInfo != null) 
{ 
    string password = UserController.GetPassword(ref uInfo, String.Empty); 
} 

我想使用DNN將檢索到的密碼發送給用戶。

任何幫助將不勝感激。

+0

據我所知,最好不要發送用戶的密碼(它應該被散列,所以你不應該檢索它),但是發送給他鏈接到網頁,他可以重置他的密碼 – Thaven 2012-03-01 12:56:13

+0

需求是這樣的我沒有其他選擇,只能通過電子郵件發送。 幫助將不勝感激。 – 2012-03-01 13:12:05

+0

@palakmehta - DNN如何使用hasing或加密方法保護用戶的密碼?如果它的哈希方法,那麼你想要的是不可能的。如果它是一種加密方法,那麼這是可能的。發送用戶密碼不是一個好主意,任何人都不可能撤回密碼,這樣做會使網站的安全性受到威脅。如果可以檢索普通用戶的密碼,那麼管理員的帳戶也可以。使用安全鹽散列密碼是您應該使用的唯一方法。我幾乎肯定DNN的開發人員知道這一點。 – 2012-03-01 13:55:03

回答

1

通過電子郵件發送密碼被認爲是一個很大的安全漏洞,真的不建議

如果您仍然需要這個功能,雖然,我想你可以通過發送電子郵件至SendMailSendEmail方法,簡單地實現這一點:

DotNetNuke.Services.Mail.Mail.SendEmail() 
DotNetNuke.Services.Mail.Mail.SendMail() 

SendMail方法提供了比SendEmail方法更多選項/參數。參數名稱應足夠自我解釋以使用這些方法。

+0

我正要寫相同的答案。謝謝@mnemcik。 – 2012-03-07 11:42:25

+0

你應該改正你的答案節省時間,正確的參考實際上是DotNetNuke.Services.Mail.Mail.SendMail()和DotNetNuke.Services.Mail.Mail.SendEmail()(注意額外的郵件) – 2012-06-22 13:27:20

+0

更新,謝謝 – 2012-06-26 15:11:06

相關問題