Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check exchange credentials remotely and check user logged in

I have attempted this with not much success. Basically I need to login to Exchange using EWS remotely.

The issue is I don't know if the user has logged in OK or if the credentials are wrong as I get nothing back! If I provide wrong credentials the software just carries on!

Is there something I'm missing, I've checked the MSDN stuff about EWS which shows you how to connect to exchange but nothing about validating credentials!

Below is the code I currently have to connect.

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;
        }
    }

as you can see at present I just set a bool value to true in the class. Any ideas?

like image 313
Neo Avatar asked Apr 30 '12 09:04

Neo


1 Answers

In order to check whether the given credentials are valid, you must query resources you expect the user to have access to (calendar, inbox, contacts, etc.). There is no explicit login method - the authentication occurs implicitly when you request user resources (via FindItems, FindFolders, FindAppointments, etc.).

like image 76
SliverNinja - MSFT Avatar answered Sep 29 '22 07:09

SliverNinja - MSFT