我如何验证传递给NetworkCredential构造函数以供EWS使用的凭据?

问题描述 投票:0回答:1

有没有一种方法可以验证传递给System.Net.NetworkCredential类的凭据?我想确保对Exchange Web服务的调用有效,以便调用可以正常工作。

这里是示例代码:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
 service.Credentials = new NetworkCredential(user_id, password);

//how to validate credentials here? 

service.Url = new System.Uri("some_url");
Microsoft.Exchange.WebServices.Data.Appointment meeting1 = new Microsoft.Exchange.WebServices.Data.Appointment(service);

 //add some extra stuff to the meeting object

  ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

 Microsoft.Exchange.WebServices.Data.Mailbox test = new Microsoft.Exchange.WebServices.Data.Mailbox(email);

 Microsoft.Exchange.WebServices.Data.FolderId folderid = new Microsoft.Exchange.WebServices.Data.FolderId(WellKnownFolderName.Calendar, test);

 meeting1.Save(folderid,SendInvitationsMode.SendToAllAndSaveCopy);

而且,是否有办法检查.Save()是否确实有效?该函数没有返回值。

c# exchangewebservices networkcredentials
1个回答
1
投票

有没有一种方法可以验证传递给System.Net.NetworkCredential类的凭据?

这些是Active Directory凭据,因此,如果要验证它们,您会看到类似Validate a username and password against Active Directory?的内容。EWS除了提供了不正确的信息外,仅返回401之外不提供任何凭据验证方法。

[还有一种方法可以检查.Save()是否真正起作用?该函数没有返回值

如果从服务器收到无效响应,则将引发异常,因此在这种情况下,至少应在保存附近进行尝试/捕获(异常可以基于请求或响应)。对于Meetings,如果在您的示例中创建成功,则Meeting1对象的ID属性现在将具有基础ID。

© www.soinside.com 2019 - 2024. All rights reserved.