我正在开发一个使用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 :(得分:0)
您可以使用模拟,例如使用this the small impersonation class尝试登录Windows用户。
即。在代码周围放置以下using
块以在其他用户帐户下运行:
using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
...
<code that executes under the new context>
...
}
您可以在使用块周围try...catch
检查密码是否错误,或者更好的是,使用Impersonator
来源中的函数登录并检查结果,即不捕获(性能)