2012-03-19 3 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

偽装を使用できます。 Windowsユーザーにログインしようとするとthis the small impersonation classと表示されます。

I.e.他のユーザーアカウントで実行するようにコードの周りに、次のusingブロックを配置します。

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

    <code that executes under the new context> 

    ... 
} 

あなたは可能性が使用してブロックの周りtry...catch間違ったパスワードを確認したり、より良い、にImpersonatorのソース内の機能を使用するには、ログインして結果を確認します。つまり、キャッチ(パフォーマンス)はありません。

+0

しかし、私はWindowsユーザーにログオンしたくない、私は電子メールにログオンしたい。別の方法を知っていますか? – Aime

関連する問題