远程检查交换凭据并检查用户是否已登录

Neo*_*Neo 5 c# exchangewebservices winforms exchange-server-2010

我尝试过这个并没有太大的成功.基本上我需要远程使用EWS登录Exchange.

问题是我不知道用户是否已登录确定,或者凭据是否错误,因为我什么都没收到!如果我提供了错误的凭据,软件就会继续!

有没有我缺少的东西,我已经检查了有关EWS的MSDN内容,它向您展示了如何连接到交换,但没有关于验证凭据的内容!

下面是我目前要连接的代码.

public void connect(string Email, string Password)
    {
        try
        {            
            _useremail = Email;
            _userpass = Password;

            // Define the credentials to use.
            var credentials = new WebCredentials(_useremail, _userpass);

            _ExchangeServer = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
            _ExchangeServer.Credentials = credentials;
            _ExchangeServer.Url = new Uri(_ExchangeEWSURL);
            _ExchangeServer.Timeout = 60;
            _ExchangeServer.KeepAlive = true;
            _ExchangeConnected = true;
        }
        catch (Exception ex)
        {
            _ExchangeConnected = false;
            throw ex;
        }
    }
Run Code Online (Sandbox Code Playgroud)

正如你目前所看到的,我只是在课堂上将bool值设置为true.有任何想法吗?

Sli*_*SFT 10

要检查给定凭据是否有效,您必须查询您希望用户有权访问的资源(日历,收件箱,联系人等).没有明确的登录方法-当你请求的用户资源(验证时隐式通过FindItems,FindFolders,FindAppointments,等).

  • 如果您只是想确保凭证有效而不是测试对特定资源的访问,您可以像这样调用`exchService.ConvertIds(new AlternateId [] {new AlternateId(IdFormat.HexEntryId,"00",email) },IdFormat.HexEntryId);`如果凭证错误,它会引发异常 (2认同)