[英]Auto-discover exchange where username != email-address. Use URN rather than domain\username?
我有一封电子邮件,尝试通过Microsoft.Exchanage.WebServices访问。 具体来说,我正在尝试自动发现URL。 我在Microsoft远程连接分析器中运行以下命令(此方法有效):
Email address: foooosoft.fiiztestmailbox@baaar.eu
Domain\User Name (or UPN): baaarnet\foooosoft.fiiztestma
(foooosoft.fiiztestmailbox@baaar.eu also works)
Password: password1
这是因为有人告诉我我的用户名是foooosoft.fiiztestma,因为SAMAccountNames的长度限制(20个字符)。
尝试使用我的电子邮件地址作为帐户名会导致401错误。 如何更改代码以考虑到这一点?
我尝试向WebCredentials构造函数提供“ foooosoft.fiiztestma”,但出现相同的错误。
或者,是否有办法简化程序,仅提供UPN(电子邮件地址),而不使用域名\\用户名?
public class Program
{
public static void Main(string[] args)
{
string emailUser = "foooosoft.fiiztestmailbox@baaar.eu";
string password = "password1";
string domain = "baaarnet";
var credentials = new WebCredentials(emailUser, password, domain);
var foo = new ExchangeService
{
Credentials = credentials,
Url = DiscoverExchangeUrl(emailUser, credentials),
TraceEnabled = false
};
}
private static Uri DiscoverExchangeUrl(string emailAddress, ExchangeCredentials credentials)
{
var autoDiscover = new AutodiscoverService
{
Credentials = credentials,
EnableScpLookup = false,
RedirectionUrlValidationCallback = url => true,
TraceEnabled = false
};
var userSettings = autoDiscover.GetUserSettings(emailAddress, UserSettingName.ExternalEwsUrl);
return new Uri(userSettings.Settings[UserSettingName.ExternalEwsUrl].ToString());
}
}
我很幸运提供UPN作为用户名和一个空字符串作为域名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.