Category Archives: Coding

Exchange ActiveSync Building Blocks–Warming Up

Following up on last week’s premise of delivering some Exchange ActiveSync protocol hacking I thought I’d get it semi-started with covering code common to later articles.

My language of choice will as stated be C#. I know you can do this stuff in Java, PHP, and whatnot, but I had to make a decision as to what I would be using and C# felt natural. I will be writing code compatible with .NET 3.5 unless something else is indicated. (For instance if I run into a feature which requires .NET 4.0.)
(…)
I warm up for the building block that are to follow – which will contain more complete code samples.

Exchange ActiveSync Building Blocks – Intro

I mentioned when petitioning feature requests for EAS-MD that I was considering open-sourcing this utility in some form. I haven’t decided on all the details there yet, but I am sort of starting it off now with a series of posts describing, (along with code), the ActiveSync features I’m using in my utility in further details. While having code readily available is a good thing I believe explanations and samples are perfect complements if the object is to learn. Learning by doing is great, but learning by trial-and-error not necessarily equally so. (Sometimes we don’t care how things work, and just want a pre-built black-box component, but that isn’t my primary intent with this site. And besides – you can just use my “official” app for troubleshooting your ActiveSync deployment if you do not need to understand all this stuff. I do understand that most people aren’t that into ActiveSync )

This is the introductory post, which will serve to answer some general questions as well as being updated with links to new posts as they appear.

EAS-MD Version 1.4 – Autodiscover Support

This time around it was a long release cycle, but I have gotten around to finishing up a new build of the EAS-MD utility and upping the version number to 1.4.

The main addition to this release is that I’ve added support for testing Autodiscover. This can be a tricky point getting to work properly so I thought it could be relevant for of you. This means I’ve also added support in general for redirection and reading it out if you’re hitting a non-optimal Client Access Server. (The modus operandi for Office 365 is apparently that you should configure your device with m.outlook.com and then be redirected to a specific CAS. They might have changed this by now since Android devices have a couple of problems with this approach – I do not know since I haven’t tested the ActiveSync part of Office 365 yet.)

There are a couple of other changes as well:
- Added Client Certificate Password text box (for pfx-files).
- Added ActiveSync Autodiscover tests. (Please note that SRV record support is not added yet, and thus disabled in the UI.)
- Added scrollbars to output windows.
- Added possibility to use both domain\user and user@domain.com (leave “Domain” textbox empty to use the latter).
- Added support for parsing out the redirect on a HTTP 451.
- Added handling of HTTP 302.
- Added explanation for HTTP 502.
- Added explanation for HTTP 504.
- Disabled “Hex” view option on Main tab. (Code still present, but not sure if this is actually useful, so it’s not active in the UI.)
- Re-designed how HTTP status codes are shown in the output view. (Parses out the individual HTTP codes for errors.)
- Changed default protocol version to 12.1 (Exchange 2007 SPx).
- Major code refactoring.
- Fixed minor bugs.
- Minor changes in the UI.
- Added about tab. (Easier to identify the version you’re running.)
(…)
And a description of how Autodiscover works.

RSS for Posts RSS for Comments