如何使用Exchange Web Service Managed API獲取公共文件夾日歷(包括循環會議)


在Exchange2010及其以后,MS提供了Managed API來調用Exchange的接口

下面代碼演示了如何獲取公共日歷

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
        service.Credentials = new NetworkCredential("user", "password", "domain");
        service.Url = new Uri(https://wwww.sohu.com/ews/exchange.asmx);

        System.Net.ServicePointManager.ServerCertificateValidationCallback =
            delegate(
            Object obj,
            X509Certificate certificate,
            X509Chain chain,
            SslPolicyErrors errors
            )
            {
                return true;
            };


        //CAL
        string _id = "AAEuAAAAAAAaRHOQqmYRzZvIAKoAL8RaAwBZaXl0Ei75TYF0WbP9Pt4/AAAFNPQsAAA=";


        CalendarView view = new CalendarView(DateTime.Now.AddDays(-5), DateTime.Now.AddDays(5));

        CalendarFolder cf = CalendarFolder.Bind(service, new FolderId(_id));

        //CalendarFolder.(service);
        //Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
        // service.ClientRequestId = _id;
        FindItemsResults<Appointment> findResults = cf.FindAppointments(view);


        foreach (Appointment appointment in findResults.Items)
        {
            Response.Write(appointment.Start+"--" + appointment.Subject + "<br>");
        }


在上面代碼里,有一個_id參數,他是日歷的ID,下面代碼演示了如何獲取日歷的ID

系統的入口是PublicFoldersRoot參數

 ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
        service.Credentials = new NetworkCredential("user", "password", "domain");
        service.Url = new Uri("https://www.sohu.com/ews/exchange.asmx");

        System.Net.ServicePointManager.ServerCertificateValidationCallback =
            delegate(        
            Object obj,        
            X509Certificate certificate,        
            X509Chain chain,        
            SslPolicyErrors errors
            )    
            {
                return true;
              };

       


        FolderView view = new FolderView(5);
        view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
        view.PropertySet.Add(FolderSchema.DisplayName);
        view.Traversal = FolderTraversal.Shallow;

        FindFoldersResults findFolderResults = service.FindFolders(WellKnownFolderName.PublicFoldersRoot, view);
        //find specific folder
        foreach (Folder f in findFolderResults)
        {
            //show folderId of the folder "test"
           // if (f.DisplayName == "Test")
            Response.Write(f.DisplayName+"**"+f.Id.UniqueId+"<br>");

        }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM