2012-01-31 22 views
0

建立一個應用程序,我有一些PasswordRecovery實用程序的麻煩。我正在使用配置工具中內置的ASP.NET。我的問題是我無法使用提供的PasswordRecovery控件,因爲我沒有安裝SMTP服務器,也不知道如何操作。PasswordRecovery問題

我試圖自定義控件,以允許我在成功密碼恢復後在標籤內顯示用戶密碼。這是我到目前爲止的代碼:

protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e) 
    { 
     e.Cancel = true; 
     MembershipUser user; 
     user = Membership.GetUser(PasswordRecovery1.UserName); 
     label1.Text = user.GetPassword(); 


    } 

這是我收到的錯誤:

This Membership Provider has not been configured to support password retrieval. 

現在我做了這個錯誤一些研究和跨一個奇怪的來到。 ASP.NET工具沒有將任何類型的Membership Provider添加到我的web.config文件中。此外,當我試圖通過這裏的配置工具來測試數據庫是我所得到的:

Could not establish a connection to the database. 
If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider. 

任何人可以幫助我成功的密碼恢復後訪問用戶的密碼?如果SMTP很容易就可以嘗試,但我認爲在標籤上顯示用戶密碼會更容易一些?

在此先感謝。

+2

密碼恢復是**壞主意**無論如何。您希望提供_reset機制_而不是完全恢復,因爲您不應該以首先可逆的方式存儲密碼。 – 2012-01-31 05:28:20

+0

我同意。無論哪種方式確定...但我不能設置enablePasswordReset =「true」,因爲它會引發我當前的配置錯誤。 – shenn 2012-01-31 05:33:08

回答

0

修復重置密碼時的錯誤是要走的路。爲什麼你不要求幫助呢?

剛剛得到一個SMTP服務器設置 - 有一個包含在IIS中,你只需要安裝它。

不要做密碼恢復,這是一個壞主意。你也不應該在明文中存儲密碼。永遠。 永遠。

+0

那麼這個SMTP服務器需要安裝在每臺將運行我的應用程序的機器上嗎?或只是主服務器? – shenn 2012-01-31 15:58:24

+0

@shenn,應用程序需要訪問SMTP服務器。你放在哪裏,或者你在你的組織中是否使用現有的一個,取決於你。在每個網絡服務器上放置一個網絡服務器將有助於解決網絡中斷問題,但也會是一件額外的事情,需要加以保護。 – Ben 2012-01-31 19:01:25

+0

@shenn,請在serverfault.com上查詢如何設置SMTP服務器 – Ben 2012-02-11 21:26:58