2012-03-19 40 views
0

我正在開發一個使用SmtpClient發送電子郵件的應用程序,效果很好,但我有一個關於用戶驗證的問題,因爲我看到的代碼,只能知道電子郵件和電子郵件發送時密碼正確。在發送郵件之前登錄帳戶

以前有沒有辦法做這個認證。我用這個作爲一個例子:

public void SendMessage() 
{ 
    MailMessage mensagem = new MailMessage(); 
    mensagem.From = new MailAddress(email); 
    mensagem.To.Add(txtto.Text); 
    mensagem.Subject = txtsubject.Text; 
    mensagem.Body = richMessage.Text; 

    SmtpClient smtp = new SmtpClient(); 

    if (Form1.servidor.Equals("hotmail.com")) 
    { 
     smtp.Host = "smtp.live.com"; 
     smtp.Port = 25; 
     smtp.EnableSsl = true; 
    } 

    smtp.Credentials = new System.Net.NetworkCredential(email, Form1.password); 

    //only in this line is actually verified the existence of the user + password 
    smtp.Send(mensagem);  
} 

我不想要發送消息,知道用戶名+密碼是否正確。任何人都知道,也許另一個命名空間...

謝謝。

回答

0

您可以使用模擬,例如,用this the small impersonation class嘗試登錄Windows用戶。

I.e.請將以下using塊在你的代碼給其他用戶帳戶下運行:

using (new Impersonator("myUsername", "myDomainname", "myPassword")) 
{ 
    ... 

    <code that executes under the new context> 

    ... 
} 

你可以try...catch各地使用塊來檢查錯誤的密碼,或者更好的,使用Impersonator的源裏面的功能登錄並檢查結果,即不捕捉(性能)。

+0

但我不想登錄Windows用戶,我想登錄電子郵件。你知道另一種方式嗎? – Aime 2012-03-20 12:49:20

相關問題