eFeng.Leung

[爱我所爱][记我所想][学我所需]
posts - 25, comments - 13, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

FYI: Getting Started with WebDAV

Posted on 2006-02-27 17:11 eFeng.Leung 阅读(...) 评论(...) 编辑 收藏
FYI: Getting Started with WebDAV

WebDAV is a protocol, not an API.  It is an extension of HTTP and provides more request methods to allow us to get information out of Exchange and change information within it. 

Here are some WebDAV samples on MSDN...

310283 How to retrieve and to modify properties on items by using WebDAV in Visual C# .NET
http://support.microsoft.com/default.aspx?scid=kb;EN-US;310283

308373 How to send a meeting request by using WebDAV
http://support.microsoft.com/default.aspx?scid=kb;EN-US;308373

296126 How to create, modify, and delete contact items by using WebDAV (PROPPATCH)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;296126

259849 XWEB: How to Perform Full-Text Searching Using WebDAV
http://support.microsoft.com/default.aspx?scid=kb;EN-US;259849

We have a lot of technologies at our disposal for Messaging developments so it is always important to be reminded of when to use what technology.  Here are some scenarios of when to use WebDAV...

Managed Code and Exchange

If you are writing managed (.NET) code and want to work with data in the Exchange store you will need to know WebDAV.  MAPI and CDO 1.21 are NOT supported from managed code as they were not tested or designed to work in that environment.  CDOEX is supported in managed code but only when the code runs ON the Exchange that hosts the folders and items you are working with.  WebDAV is the only technology that is supported in managed code that will work remotely.

ASP Middle Tier and Kerberos

As I mentioned in a previous post, CDO 1.21 is not supported for use with Kerberos authentication.  This means that if you are running an ASP web application that uses integrated authentication to leverage the current user’s credentials to access resources like their Exchange mailbox or a public folder via CDO 1.21 and this application is hosted on a separate IIS box, you will get a MAPI_E_LOGON_FAILED exception.  Even though the web application may be running in the context of a user that has access to the Exchange resource, since CDO doesn't support Kerberos there is no mechanism for passing credentials from the IIS server to the Exchange server.

This is where WebDAV comes in.  Since WebDAV works simply through HTTP requests and responses you can manage the type of authentication you use at a very granular level.  If you are implementing a middle tier web application that accesses Exchange as a backend store, whether you are using ASP.NET or ASP web applications, you need to use WebDAV.

Non-PC Systems Accessing Exchange Data

I recently had a case with a customer implementing a Java web application hosted on Linux that he wanted to integrate with Exchange.  Our API's won't help in this scenario because they are all based on COM which I understand is hard if not impossible to get Linux to talk to.  WebDAV to the rescue!  Since WebDAV is based on HTTP requests and responses and uses XML to communicate any programmer can communicate with Exchange as long as they have some mechanism for sending requests and reading responses.

...When I talk about Outlook Item types I'll come back to some more areas where WebDAV is particularly helpful.  Truth be told I used to avoid WebDAV like the plague because it wasn't an API set rather a bunch of XML communication back and forth.  However, I've gotten over my initial fears and become more and more a fan of WebDAV every time I use it...

...Here is some of the standard information I send out to customers when they are getting started with WebDAV...

MSDN WebDAV Reference

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/wss_references_webdav.asp

This is a general introduction/reference for WebDAV in Exchange

 

Properties by Namespace

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/wss_references_nsproperties.asp

Searching Exchange with WebDAV is all about finding the right property and namespace.  Here is a list of properties organized by namespace.  Use Exchange Explorer (see below) to identify which properties are available on items.

 

Searching Folders with WebDAV

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/_exch2k_searching_folders_http.asp

These articles give details on searching Exchange with WebDAV.

 

SQL in the Exchange Store

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_exch2k_sql_web_storage_system_sql.asp

This article details the SQL commands available with WebDAV against Exchange and what they do.

 

Exchange Explorer Download

http://www.microsoft.com/downloads/details.aspx?FamilyID=4AFE3504-C209-4A73-AC5D-FF2A4A3B48B7&displaylang=en

Exchange Explorer is a very helpful tool to view properties on items and folders.  It displays the full name of the properties available on an item along with their values.

 

Update 1-20-2006: Adding some more links here that are quite relevant...

 

Be sure to check out my post related to Exchange Store Event Sink programming that covers CDOEX.  It talks in depth about the Exchange store and relates directly to WebDAV.  Lots of good links there.

 

Here are some more MSDN links that very helpful...

 

WebDAV Methods

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_webdav_methods.asp

It is important to familiarize yourself with these methods in order to understand what functionality you have available to you.

 

WebDAV Protocol Status Codes

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_webstore_http_webdav_protocol_errors.asp

Understand what WebDAV gives back to you if there are errors.

Published Friday, December 02, 2005 3:31 PM by mstehle
Filed Under: , , ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

You can also stay up to date using your favorite aggregator by subscribing to the CommentRss Feed