Rebex EWS

EWS, SMTP, MIME, S/MIME libraries for .NET

Download 30-day free trial Buy from $199
More .NET libraries

Back to feature list...

Connecting

Connecting to servers using EWS protocol 

To connect to Exchange web services running on default port (443), call the single-parameter Connect method. A secured (encrypted) HTTPS connection is established.

// create EWS client instance
var client = new Rebex.Net.Ews();

// connect to a server using HTTPS protocol
//  - implicit TLS/SSL mode
client.Connect(hostname);
' create EWS client instance
Dim client = New Rebex.Net.Ews()

' connect to a server using HTTPS protocol
'  - implicit TLS/SSL mode
client.Connect(hostname)
Tip: To connect to a server running on another port, just pass the port number to the Connect method as an additional argument.

Tip: For advanced security options, see TLS/SSL core section.

Connecting to servers over unsecure HTTP protocol 

To establish unsecure (HTTP) connection to Exchange server, use the Connect method with SslMode.None argument.

Please note that EWS does not support explicit TLS/SSL (use SslMode.Implicit instead).

Tip: Learn about the difference between explicit and implicit TLS/SSL modes.

// create EWS client instance
var client = new Rebex.Net.Ews();

// connect to a server using HTTP protocol
//  - no TLS/SSL mode
client.Connect(hostname, SslMode.None);
' create EWS client instance
Dim client = New Rebex.Net.Ews()

' connect to a server using HTTP protocol
'  - no TLS/SSL mode
client.Connect(hostname, SslMode.None)

Server certificate is validated automatically by Rebex EWS, but you can customize the validation process as well.

Note: For Rebex.Net.Ews, if port number is not specified, the 80 is used as a default port number for SslMode.None (HTTP protocol).

Getting info about the connection 

Once connected (or authenticated), you can get useful information about the current connection such as server name, server port or user name. Don't be afraid - user's password is not stored with the connection.

// create client instance
var client = new Rebex.Net.Ews();

// connect to a server
client.Connect(hostname);

// display info
Console.WriteLine("Connected to {0}:{1}.", client.ServerName, client.ServerPort);

// authenticate
client.Login(username, password);

// display info to the user
Console.WriteLine("Logged on as {0}.", client.UserName);
' create client instance
Dim client = New Rebex.Net.Ews()

' connect to a server
client.Connect(hostname)

' display info
Console.WriteLine("Connected to {0}:{1}.", client.ServerName, client.ServerPort)

' authenticate
client.Login(username, password)

' display info to the user
Console.WriteLine("Logged on as {0}.", client.UserName)

Getting info about TLS/SSL connection 

To get information about SSL connection, use TlsSocket property.

// create client instance
var client = new Rebex.Net.Ews();

// connect to a server
client.Connect(hostname);

// Cipher property contains a lot of information about the current cipher
Console.WriteLine("TLS cipher info: {0}", client.TlsSocket.Cipher);

// ServerCertificate property provides access to server certificate
// the first certificate in the chain is the server's certificate
CertificateChain chain = client.TlsSocket.ServerCertificate;
Console.WriteLine("Server's certificate info: Subject: {0}, Issuer: {1}",
    chain[0].GetSubject(), chain[0].GetIssuer());
' create EWS client instance
Dim client = New Rebex.Net.Ews()

' connect to a server
client.Connect(hostname, SslMode.Explicit)

' Cipher property contains a lot of information about the current cipher
Console.WriteLine("TLS cipher info: {0}", client.TlsSocket.Cipher)

' ServerCertificate property provides access to server certificate
' the first certificate in the chain is the server's certificate
Dim chain As CertificateChain = client.TlsSocket.ServerCertificate
Console.WriteLine("Server's certificate info: Subject: {0}, Issuer: {1}",
                  chain(0).GetSubject(), chain(0).GetIssuer())

Back to feature list...