<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Using .NET and WebDAV to access an Exchange server</title>
	<atom:link href="http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/</link>
	<description>Code. Cocoa. Technology.</description>
	<lastBuildDate>Wed, 06 Jan 2010 16:00:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: login OWA of Exchange 2007 using .NET2003 &#124; keyongtech</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-334</link>
		<dc:creator>login OWA of Exchange 2007 using .NET2003 &#124; keyongtech</dc:creator>
		<pubDate>Sun, 18 Jan 2009 17:09:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-334</guid>
		<description>[...] OWA of Exchange 2007 using .NET2003     Dear all,  I&#039;ve been using the code http://blog.downtownsoftwarehouse.co...change-server/  to write a .NET C# program to login OWA of 2003 and it works fine, however, when I port the [...]</description>
		<content:encoded><![CDATA[<p>[...] OWA of Exchange 2007 using .NET2003     Dear all,  I&#8217;ve been using the code <a href="http://blog.downtownsoftwarehouse.co...change-server/" rel="nofollow">http://blog.downtownsoftwarehouse.co&#8230;change-server/</a>  to write a .NET C# program to login OWA of 2003 and it works fine, however, when I port the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trevor</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-325</link>
		<dc:creator>Trevor</dc:creator>
		<pubDate>Thu, 09 Oct 2008 15:53:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-325</guid>
		<description>This is a great article, I just hope it is still being updated.

My question is whether or not anyone solved the 401 error that many people reported in their responses.

I have the same error when doing WebDAV against a Exch 2k3 server, and would really like a resolution.</description>
		<content:encoded><![CDATA[<p>This is a great article, I just hope it is still being updated.</p>
<p>My question is whether or not anyone solved the 401 error that many people reported in their responses.</p>
<p>I have the same error when doing WebDAV against a Exch 2k3 server, and would really like a resolution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: werutzb</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-327</link>
		<dc:creator>werutzb</dc:creator>
		<pubDate>Wed, 08 Oct 2008 02:42:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-327</guid>
		<description>Hi!

I would like extend my SQL capabilities.
 I red so many SQL books and would like to
get more about SQL for my work as oracle database manager.

 What can you recommend?

Thanks,
Werutz</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>I would like extend my SQL capabilities.<br />
 I red so many SQL books and would like to<br />
get more about SQL for my work as oracle database manager.</p>
<p> What can you recommend?</p>
<p>Thanks,<br />
Werutz</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-322</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Fri, 03 Oct 2008 17:54:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-322</guid>
		<description>Is it correct that authCookies; is being set to null and never being set a value?

Its storing the cookies ok but failing when it trys to call them. I believe because authCookies is null? has anyone had a simular problem?</description>
		<content:encoded><![CDATA[<p>Is it correct that authCookies; is being set to null and never being set a value?</p>
<p>Its storing the cookies ok but failing when it trys to call them. I believe because authCookies is null? has anyone had a simular problem?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johan O</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-329</link>
		<dc:creator>Johan O</dc:creator>
		<pubDate>Thu, 02 Oct 2008 09:28:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-329</guid>
		<description>In the above post the url was parsed... should be

----------------

It works like this:

https://[server-name]/exchange/[username]/[type]</description>
		<content:encoded><![CDATA[<p>In the above post the url was parsed&#8230; should be</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>It works like this:</p>
<p><a href="https://server-name/exchange/username/type" rel="nofollow">https://server-name/exchange/username/type</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johan O</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-328</link>
		<dc:creator>Johan O</dc:creator>
		<pubDate>Thu, 02 Oct 2008 09:25:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-328</guid>
		<description>I&#039;ve read alot of articles and have been having alot of problems getting it to work. But today I got it working after reading this article. I got it working in Visual Studio 2008 using an Exchange 2003 server.

One of the biggest problems i&#039;ve been having was understanding how to set the path to what I want.

It works like this:

https:///exchange//

where  can be inbox, calendar, and so on.

Now the second problem is that there is an error in this article. The author has set the wrong name of the cookie variable which made me get the error message login timeout.

I also uncommented the xml part and made it just show the response in a single messagebox. I also created a windows forms application and added a button for testing the code. Here is my code, just paste it into a new form and change the server name and username and password:


I also created an example query which finds and outputs all the mails in your mailbox.

using System;
using System.IO;
using System.Xml;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Security.Authentication;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Security;

namespace ExchangeTest6
{
    public partial class Form1 : Form
    {



        static void RunExampleQuery()
        {
            try
            {
                WebDAVRequest request = new WebDAVRequest();
                request.Authenticate();
                request.RunQuery();
            }
            catch (SecurityException e)
            {
                Console.WriteLine(&quot;Security Exception&quot;);
                Console.WriteLine(&quot;   Msg: &quot; + e.Message);
                Console.WriteLine(&quot;   Note: The application may not be trusted if run from a network share.&quot;);

                MessageBox.Show(e.Message);
            }
            catch (AuthenticationException e)
            {
                Console.WriteLine(&quot;Authentication Exception, are you using a valid login?&quot;);
                Console.WriteLine(&quot;   Msg: &quot; + e.Message);
                Console.WriteLine(&quot;   Note: You must use a valid login / password for authentication.&quot;);


                MessageBox.Show(e.Message);
            }
            catch (WebException e)
            {
                Console.WriteLine(&quot;Web Exception&quot;);
                Console.WriteLine(&quot;   Status: &quot; + e.Status);
                Console.WriteLine(&quot;   Reponse: &quot; + e.Response);
                Console.WriteLine(&quot;   Msg: &quot; + e.Message);


                MessageBox.Show(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(&quot;Unknown Exception&quot;);
                Console.WriteLine(&quot;   Msg: &quot; + e.Message);


                MessageBox.Show(e.Message);
            }
        }

        public Form1()
        {
            InitializeComponent();


        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            RunExampleQuery();
        }


    }

    public class WebDAVRequest
    {

        private static string server = &quot;https://servername&quot;;
        private static string path = &quot;/exchange/username/calendar&quot;;
        private static string username = &quot;username&quot;;
        private static string password = &quot;password&quot;;


        ///
        /// Add code here to check the server certificate, if you think it’s necessary. Note that this
        /// will only be called once when the application is first started.
        ///

        protected bool CheckCert(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            return true;
        }


        ///
        /// Default WebDAVRequest constructor. Set the certificate callback here.
        ///

        public WebDAVRequest()
        {
            ServicePointManager.ServerCertificateValidationCallback += CheckCert;
        }


        ///
        /// Default WebDAVRequest constructor. Set the certificate callback here.
        ///


        ///
        /// Authenticate against the Exchange server and store the authorization cookie so we can use
        /// it for future WebDAV requests.
        ///
        CookieContainer cookies;

        public void Authenticate()
        {
            string authURI = server + &quot;/exchweb/bin/auth/owaauth.dll&quot;;

            // Create the web request body:

            string body = string.Format(&quot;destination={0}&amp;username={1}&amp;password={2}&quot;, server + path, username, password);
            byte[] bytes = Encoding.UTF8.GetBytes(body);

            // Create the web request:

            HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create(authURI);
            request.Method = &quot;POST&quot;;
            request.ContentType = &quot;application/x-www-form-urlencoded&quot;;
            request.CookieContainer = new CookieContainer();
            request.ContentLength = bytes.Length;

            // Create the web request content stream:

            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(bytes, 0, bytes.Length);
                stream.Close();
            }

            // Get the response &amp; store the authentication cookies:

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            if (response.Cookies.Count  ‘{1}’
//                        AND &quot;&quot;urn:schemas:calendar:dtend&quot;&quot; &lt; &#039;{2}&#039;
//
//            &quot;;

            string sUri = &quot;http://server01/exchange/jotterud/inbox&quot;;


            string format =
             &quot;&quot; +
             &quot;&quot; +
             &quot;SELECT \&quot;DAV:displayname\&quot; &quot; +
             &quot;FROM SCOPE(&#039;SHALLOW TRAVERSAL OF \&quot;&quot; + sUri + &quot;\&quot;&#039;) &quot; +
             &quot;WHERE \&quot;DAV:isfolder\&quot; = false&quot; +
             &quot;&quot; +
             &quot;&quot;;


            bytes = Encoding.UTF8.GetBytes(String.Format(format, uri, start, end));

            // Use the authorization cookies we stored in the authentication method.

            request = (HttpWebRequest)HttpWebRequest.Create(uri);
            request.CookieContainer = cookies; //authCookies;
            request.Method = &quot;SEARCH&quot;;
            request.ContentLength = bytes.Length;
            request.ContentType = &quot;text/xml&quot;;

            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
            }

            response = (HttpWebResponse)request.GetResponse();

            Stream responseStream = response.GetResponseStream();

            //Read the Response Steam;
            StreamReader sr = new StreamReader(responseStream);
            String sText = sr.ReadToEnd();

            MessageBox.Show(sText);

            //using (Stream responseStream = response.GetResponseStream())
            //{
            //    // Parse the XML response to find the data we need.

            //    XmlDocument document = new XmlDocument();
            //    document.Load(responseStream);

            //    XmlNodeList subjectNodes = document.GetElementsByTagName(&quot;e:subject&quot;);
            //    XmlNodeList locationNodes = document.GetElementsByTagName(&quot;a:parentname&quot;);
            //    XmlNodeList startTimeNodes = document.GetElementsByTagName(&quot;d:dtstart&quot;);
            //    XmlNodeList endTimeNodes = document.GetElementsByTagName(&quot;d:dtend&quot;);
            //    XmlNodeList organizerNodes = document.GetElementsByTagName(&quot;d:organizer&quot;);

            //    for (int index = 0; index &lt; subjectNodes.Count; index++)
            //    {
            //        string subject = subjectNodes[index].InnerText;
            //        string organizer = organizerNodes[index].InnerText;
            //        string location = locationNodes[index].InnerText; // ParentName(locationNodes[index].InnerText);
            //        DateTime startTime = DateTime.Parse(startTimeNodes[index].InnerText);
            //        DateTime endTime = DateTime.Parse(endTimeNodes[index].InnerText);

            //        // Use a regex to get just the user&#039;s first and last names. Note that
            //        // some appointments may not have a valid user name.

            //        string pattern = @&quot;&quot;&quot;(?.*?)&quot;&quot;&quot;;
            //        Regex regex = new Regex(pattern, RegexOptions.None);
            //        Match matchedText = regex.Match(organizer);

            //        if (matchedText.Success &amp;&amp; matchedText.Groups[&quot;name&quot;] != null)
            //            organizer = matchedText.Groups[&quot;name&quot;].Value;

            //        // Print the results to the console.

            //        Console.WriteLine(&quot;{0} - {1}: {2}&quot;, startTime.ToShortTimeString(), endTime.ToShortTimeString(), subject);
            //        Console.WriteLine(&quot;{0} ({1})&quot;, location, organizer);
            //        Console.WriteLine();
            //    }

            //}

            response.Close();
        }
    }

}</description>
		<content:encoded><![CDATA[<p>I&#8217;ve read alot of articles and have been having alot of problems getting it to work. But today I got it working after reading this article. I got it working in Visual Studio 2008 using an Exchange 2003 server.</p>
<p>One of the biggest problems i&#8217;ve been having was understanding how to set the path to what I want.</p>
<p>It works like this:</p>
<p><a href="https:///exchange//" rel="nofollow">https:///exchange//</a></p>
<p>where  can be inbox, calendar, and so on.</p>
<p>Now the second problem is that there is an error in this article. The author has set the wrong name of the cookie variable which made me get the error message login timeout.</p>
<p>I also uncommented the xml part and made it just show the response in a single messagebox. I also created a windows forms application and added a button for testing the code. Here is my code, just paste it into a new form and change the server name and username and password:</p>
<p>I also created an example query which finds and outputs all the mails in your mailbox.</p>
<p>using System;<br />
using System.IO;<br />
using System.Xml;<br />
using System.Collections.Generic;<br />
using System.Text;<br />
using System.Net;<br />
using System.Net.Security;<br />
using System.Security.Cryptography.X509Certificates;<br />
using System.Security.Authentication;<br />
using System.Text.RegularExpressions;<br />
using System.Windows.Forms;<br />
using System.Security;</p>
<p>namespace ExchangeTest6<br />
{<br />
    public partial class Form1 : Form<br />
    {</p>
<p>        static void RunExampleQuery()<br />
        {<br />
            try<br />
            {<br />
                WebDAVRequest request = new WebDAVRequest();<br />
                request.Authenticate();<br />
                request.RunQuery();<br />
            }<br />
            catch (SecurityException e)<br />
            {<br />
                Console.WriteLine(&#8220;Security Exception&#8221;);<br />
                Console.WriteLine(&#8221;   Msg: &#8221; + e.Message);<br />
                Console.WriteLine(&#8221;   Note: The application may not be trusted if run from a network share.&#8221;);</p>
<p>                MessageBox.Show(e.Message);<br />
            }<br />
            catch (AuthenticationException e)<br />
            {<br />
                Console.WriteLine(&#8220;Authentication Exception, are you using a valid login?&#8221;);<br />
                Console.WriteLine(&#8221;   Msg: &#8221; + e.Message);<br />
                Console.WriteLine(&#8221;   Note: You must use a valid login / password for authentication.&#8221;);</p>
<p>                MessageBox.Show(e.Message);<br />
            }<br />
            catch (WebException e)<br />
            {<br />
                Console.WriteLine(&#8220;Web Exception&#8221;);<br />
                Console.WriteLine(&#8221;   Status: &#8221; + e.Status);<br />
                Console.WriteLine(&#8221;   Reponse: &#8221; + e.Response);<br />
                Console.WriteLine(&#8221;   Msg: &#8221; + e.Message);</p>
<p>                MessageBox.Show(e.Message);<br />
            }<br />
            catch (Exception e)<br />
            {<br />
                Console.WriteLine(&#8220;Unknown Exception&#8221;);<br />
                Console.WriteLine(&#8221;   Msg: &#8221; + e.Message);</p>
<p>                MessageBox.Show(e.Message);<br />
            }<br />
        }</p>
<p>        public Form1()<br />
        {<br />
            InitializeComponent();</p>
<p>        }</p>
<p>        private void Form1_Load(object sender, EventArgs e)<br />
        {</p>
<p>        }</p>
<p>        private void button1_Click(object sender, EventArgs e)<br />
        {<br />
            RunExampleQuery();<br />
        }</p>
<p>    }</p>
<p>    public class WebDAVRequest<br />
    {</p>
<p>        private static string server = &#8220;https://servername&#8221;;<br />
        private static string path = &#8220;/exchange/username/calendar&#8221;;<br />
        private static string username = &#8220;username&#8221;;<br />
        private static string password = &#8220;password&#8221;;</p>
<p>        ///<br />
        /// Add code here to check the server certificate, if you think it’s necessary. Note that this<br />
        /// will only be called once when the application is first started.<br />
        ///</p>
<p>        protected bool CheckCert(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)<br />
        {<br />
            return true;<br />
        }</p>
<p>        ///<br />
        /// Default WebDAVRequest constructor. Set the certificate callback here.<br />
        ///</p>
<p>        public WebDAVRequest()<br />
        {<br />
            ServicePointManager.ServerCertificateValidationCallback += CheckCert;<br />
        }</p>
<p>        ///<br />
        /// Default WebDAVRequest constructor. Set the certificate callback here.<br />
        ///</p>
<p>        ///<br />
        /// Authenticate against the Exchange server and store the authorization cookie so we can use<br />
        /// it for future WebDAV requests.<br />
        ///<br />
        CookieContainer cookies;</p>
<p>        public void Authenticate()<br />
        {<br />
            string authURI = server + &#8220;/exchweb/bin/auth/owaauth.dll&#8221;;</p>
<p>            // Create the web request body:</p>
<p>            string body = string.Format(&#8220;destination={0}&amp;username={1}&amp;password={2}&#8221;, server + path, username, password);<br />
            byte[] bytes = Encoding.UTF8.GetBytes(body);</p>
<p>            // Create the web request:</p>
<p>            HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create(authURI);<br />
            request.Method = &#8220;POST&#8221;;<br />
            request.ContentType = &#8220;application/x-www-form-urlencoded&#8221;;<br />
            request.CookieContainer = new CookieContainer();<br />
            request.ContentLength = bytes.Length;</p>
<p>            // Create the web request content stream:</p>
<p>            using (Stream stream = request.GetRequestStream())<br />
            {<br />
                stream.Write(bytes, 0, bytes.Length);<br />
                stream.Close();<br />
            }</p>
<p>            // Get the response &amp; store the authentication cookies:</p>
<p>            HttpWebResponse response = (HttpWebResponse)request.GetResponse();</p>
<p>            if (response.Cookies.Count  ‘{1}’<br />
//                        AND &#8220;&#8221;urn:schemas:calendar:dtend&#8221;" &lt; &#8216;{2}&#8217;<br />
//<br />
//            &#8220;;</p>
<p>            string sUri = &#8220;http://server01/exchange/jotterud/inbox&#8221;;</p>
<p>            string format =<br />
             &#8220;&#8221; +<br />
             &#8220;&#8221; +<br />
             &#8220;SELECT \&#8221;DAV:displayname\&#8221; &#8221; +<br />
             &#8220;FROM SCOPE(&#8216;SHALLOW TRAVERSAL OF \&#8221;" + sUri + &#8220;\&#8221;&#8216;) &#8221; +<br />
             &#8220;WHERE \&#8221;DAV:isfolder\&#8221; = false&#8221; +<br />
             &#8220;&#8221; +<br />
             &#8220;&#8221;;</p>
<p>            bytes = Encoding.UTF8.GetBytes(String.Format(format, uri, start, end));</p>
<p>            // Use the authorization cookies we stored in the authentication method.</p>
<p>            request = (HttpWebRequest)HttpWebRequest.Create(uri);<br />
            request.CookieContainer = cookies; //authCookies;<br />
            request.Method = &#8220;SEARCH&#8221;;<br />
            request.ContentLength = bytes.Length;<br />
            request.ContentType = &#8220;text/xml&#8221;;</p>
<p>            using (Stream requestStream = request.GetRequestStream())<br />
            {<br />
                requestStream.Write(bytes, 0, bytes.Length);<br />
                requestStream.Close();<br />
            }</p>
<p>            response = (HttpWebResponse)request.GetResponse();</p>
<p>            Stream responseStream = response.GetResponseStream();</p>
<p>            //Read the Response Steam;<br />
            StreamReader sr = new StreamReader(responseStream);<br />
            String sText = sr.ReadToEnd();</p>
<p>            MessageBox.Show(sText);</p>
<p>            //using (Stream responseStream = response.GetResponseStream())<br />
            //{<br />
            //    // Parse the XML response to find the data we need.</p>
<p>            //    XmlDocument document = new XmlDocument();<br />
            //    document.Load(responseStream);</p>
<p>            //    XmlNodeList subjectNodes = document.GetElementsByTagName(&#8220;e:subject&#8221;);<br />
            //    XmlNodeList locationNodes = document.GetElementsByTagName(&#8220;a:parentname&#8221;);<br />
            //    XmlNodeList startTimeNodes = document.GetElementsByTagName(&#8220;d:dtstart&#8221;);<br />
            //    XmlNodeList endTimeNodes = document.GetElementsByTagName(&#8220;d:dtend&#8221;);<br />
            //    XmlNodeList organizerNodes = document.GetElementsByTagName(&#8220;d:organizer&#8221;);</p>
<p>            //    for (int index = 0; index &lt; subjectNodes.Count; index++)<br />
            //    {<br />
            //        string subject = subjectNodes[index].InnerText;<br />
            //        string organizer = organizerNodes[index].InnerText;<br />
            //        string location = locationNodes[index].InnerText; // ParentName(locationNodes[index].InnerText);<br />
            //        DateTime startTime = DateTime.Parse(startTimeNodes[index].InnerText);<br />
            //        DateTime endTime = DateTime.Parse(endTimeNodes[index].InnerText);</p>
<p>            //        // Use a regex to get just the user&#8217;s first and last names. Note that<br />
            //        // some appointments may not have a valid user name.</p>
<p>            //        string pattern = @&#8221;"&#8221;(?.*?)&#8221;"&#8221;;<br />
            //        Regex regex = new Regex(pattern, RegexOptions.None);<br />
            //        Match matchedText = regex.Match(organizer);</p>
<p>            //        if (matchedText.Success &amp;&amp; matchedText.Groups["name"] != null)<br />
            //            organizer = matchedText.Groups["name"].Value;</p>
<p>            //        // Print the results to the console.</p>
<p>            //        Console.WriteLine(&#8220;{0} &#8211; {1}: {2}&#8221;, startTime.ToShortTimeString(), endTime.ToShortTimeString(), subject);<br />
            //        Console.WriteLine(&#8220;{0} ({1})&#8221;, location, organizer);<br />
            //        Console.WriteLine();<br />
            //    }</p>
<p>            //}</p>
<p>            response.Close();<br />
        }<br />
    }</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-323</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Wed, 01 Oct 2008 20:45:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-323</guid>
		<description>Hi, me again!

I mean i&#039;m running this against Exchange 2003!!

Thanks,

Nick</description>
		<content:encoded><![CDATA[<p>Hi, me again!</p>
<p>I mean i&#8217;m running this against Exchange 2003!!</p>
<p>Thanks,</p>
<p>Nick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-324</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Wed, 01 Oct 2008 20:44:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-324</guid>
		<description>Hi, Great Article!

I&#039;ve had to make a few modifications to work on .NET 3.0, (Visual Studio 2008). I now get the following error: (440) Login Timeout.

I am trying this against exchange 2007. It seems its not storing the cookie perhaps? When I step through the code it adds 2 cookies.

I had to change it to: CookieContainer Cookies = new CookieContainer();

When I display the output in the console on each cookie.add line, the name are sessionid and cdata. Which are correct.

Can anyone help??

Thanks!

Nick</description>
		<content:encoded><![CDATA[<p>Hi, Great Article!</p>
<p>I&#8217;ve had to make a few modifications to work on .NET 3.0, (Visual Studio 2008). I now get the following error: (440) Login Timeout.</p>
<p>I am trying this against exchange 2007. It seems its not storing the cookie perhaps? When I step through the code it adds 2 cookies.</p>
<p>I had to change it to: CookieContainer Cookies = new CookieContainer();</p>
<p>When I display the output in the console on each cookie.add line, the name are sessionid and cdata. Which are correct.</p>
<p>Can anyone help??</p>
<p>Thanks!</p>
<p>Nick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: siddharth</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-326</link>
		<dc:creator>siddharth</dc:creator>
		<pubDate>Fri, 26 Sep 2008 06:42:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-326</guid>
		<description>nice article but now i want ,retrieve all appointments listed in inbox.

thanks</description>
		<content:encoded><![CDATA[<p>nice article but now i want ,retrieve all appointments listed in inbox.</p>
<p>thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PSnows</title>
		<link>http://blog.mbcharbonneau.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/comment-page-1/#comment-321</link>
		<dc:creator>PSnows</dc:creator>
		<pubDate>Mon, 28 Apr 2008 16:19:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.downtownsoftwarehouse.com/2006/10/26/using-net-and-webdav-to-access-an-exchange-server/#comment-321</guid>
		<description>Hi!

How can I create a E-mail message on a user Mailbox, as a draft that he may send after, using C# and WebDav.

I&#039;ve crawling around Google all the afternoon and I found nothing that can solve this issue.

Thanx in advance for any help.

Best Regards,

Peter</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>How can I create a E-mail message on a user Mailbox, as a draft that he may send after, using C# and WebDav.</p>
<p>I&#8217;ve crawling around Google all the afternoon and I found nothing that can solve this issue.</p>
<p>Thanx in advance for any help.</p>
<p>Best Regards,</p>
<p>Peter</p>
]]></content:encoded>
	</item>
</channel>
</rss>
