C# System.net.Mail使用当前winfows用户进行身份验证

C# System.net.Mail使用当前winfows用户进行身份验证,c#,vb.net,winforms,system.net.mail,C#,Vb.net,Winforms,System.net.mail,如何在System.Net.Mail中使用当前登录用户凭据 通常使用以下方法创建一组凭据: smtp.Credentials = New NetworkCredential(username,password,domain) 我尝试使用以下代码来使用当前用户: Import System.Net.Mail ... Using smtp As New SmtpClient("smtp.office365.com", 587) smtp.EnableSsl =

如何在System.Net.Mail中使用当前登录用户凭据

通常使用以下方法创建一组凭据:

smtp.Credentials = New NetworkCredential(username,password,domain)
我尝试使用以下代码来使用当前用户:

Import System.Net.Mail
...
       Using smtp As New SmtpClient("smtp.office365.com", 587)
            smtp.EnableSsl = True ' ** ** set before Credentials
            smtp.UseDefaultCredentials = False
            smtp.Credentials = My.User.CurrentPrincipal  '<<<<<<<<<<<<<<
            Using message As New MailMessage()
                  ....
            End Using
       End Using
是否有方法将My.User/current凭据强制转换为System.Net.Mail所需的凭据类型


桌面客户端Win7+x64,ADS域中的PC,用户登录Windows

我认为您希望设置为True,而不是为SmtpClient的Credentials属性设置任何内容。似乎合理-不起作用。我开始相信System.Net.Mail for Office 365/Exchange SMTP不支持Active Directory或Windows安全性。哦,对了,这就是在线服务。不,它不会接受您的本地域用户凭据。它需要一封完整的电子邮件和密码。我想MS Exchange服务器会接受域凭据,但我想不会。显然,System.Net.Mail没有使用Exchange/smtp.office365.com进行迭代。我还没有看到任何用于Exchange的客户端API。没有将基于云的Exchange作为Office 365的一部分。SMTP工作正常-只是有烦人的额外登录名来发送邮件。我认为您希望设置为True,而不是设置SmtpClient的凭据属性。似乎合理-不起作用。我开始相信System.Net.Mail for Office 365/Exchange SMTP不支持Active Directory或Windows安全性。哦,对了,这就是在线服务。不,它不会接受您的本地域用户凭据。它需要一封完整的电子邮件和密码。我想MS Exchange服务器会接受域凭据,但我想不会。显然,System.Net.Mail没有使用Exchange/smtp.office365.com进行迭代。我还没有看到任何用于Exchange的客户端API。没有将基于云的Exchange作为Office 365的一部分。SMTP正常工作-只需额外登录即可发送邮件。
  Unable to cast object of type 'System.Security.Principal.WindowsPrincipal' 
  to type 'System.Net.ICredentialsByHost'.