D.B*_*D.B 3 c# exchangewebservices office365api
有没有办法验证用户使用EWS托管API提供的登录凭据而不发送电子邮件.我在[ExchangeService]对象上使用AutodiscoverUrl方法但是它需要太长时间?任何建议都会很感激.
try
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
service.Credentials = new WebCredentials("xxxx@yyy.com", "password");
service.AutodiscoverUrl("xxxx@yyy.com", RedirectionUrlValidationCallback);
Console.WriteLine("Credentials validated successfully");
Console.ReadLine();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
提高速度的一种方法,不是很好但是有效,就是自己设置服务URL.首先通过在调试模式下运行autodiscoverurl方法来获取交换服务URL:
然后,不是在服务上运行autodiscoverurl方法,而是添加从autodiscoverurl方法获得的url:
service.Url = new Uri("https://yourExchangeURL.com/EWS/Exchange.asmx");
Run Code Online (Sandbox Code Playgroud)
您可以在邮件帐户上发出请求(远程检查交换凭据并检查用户是否已登录),而不是调用自动发现来验证用户凭据
var findFolderResults = service.FindFolders(WellKnownFolderName.Root, new SearchFilter.IsGreaterThan(FolderSchema.TotalCount, 0), new FolderView(10));
Run Code Online (Sandbox Code Playgroud)
您的最终代码将如下所示
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
service.Credentials = new WebCredentials("xxxx@yyy.com", "password");
service.Url = new Uri("https://yourExchangeURL.com/EWS/Exchange.asmx");
var findFolderResults = service.FindFolders(WellKnownFolderName.Root, new SearchFilter.IsGreaterThan(FolderSchema.TotalCount, 0), new FolderView(10));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3046 次 |
| 最近记录: |