2010-03-10 9 views
9

ईडब्ल्यूएस प्रबंधित एपीआई में एक विशिष्ट उपयोगकर्ता के लिए अपॉइंटमेंट बनाना आसान है:अन्य उपयोगकर्ताओं के लिए नियुक्तियां बनाने के लिए ईडब्ल्यूएस प्रबंधित API का उपयोग करना?

ExchangeService service = new ExchangeService(); 
service.Credentials = new NetworkCredentials ("administrator", "password", "domain"); 
service.AutodiscoverUrl(emailAddress); 

Appointment appointment = new Appointment(service); 
appointment.Subject = "Testing"; 
appointment.Start = DateTime.Now; 
appointment.End = appointment.Start.AddHours(1); 
appointment.Save(); 

यह व्यवस्थापक के लिए अपॉइंटमेंट बनाएगा। लेकिन कहें कि मैं वास्तव में किसी अन्य उपयोगकर्ता के लिए अपॉइंटमेंट बनाना चाहता हूं (उस उपयोगकर्ता को मेरे लिए नियुक्तिकर्ता के रूप में नहीं जोड़ना)। यह ईडब्ल्यूएस प्रबंधित एपीआई के माध्यम से संभव है?

+1

@Alfred लगेगा। क्या आप मुझे बता सकते हैं कि खूनी नरक प्रबंधित API DLL स्थापित है। मैं इसे अपनी मशीन पर कहीं भी नहीं ढूंढ सकता .... बहुत धन्यवाद। – brumScouse

+1

@brumScouse। एक टिप्पणी के बजाय आपको एक नया प्रश्न पोस्ट करना चाहिए। वैसे भी, प्रबंधित API DLL Exchange सर्वर के साथ स्थापित नहीं है। आपको इसे माइक्रोसॉफ्ट से डाउनलोड करना होगा और अपने कंप्यूटर पर इंस्टॉल करना होगा। इस तिथि के अनुसार, सबसे वर्तमान संस्करण http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1 –

+0

@brumScouse पर अल्फ्रेड के निर्देशों का पालन करने के बाद पाया जा सकता है। डीएलएल इस तरह के किसी स्थान पर मिलेगा: सी: \ प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट \ एक्सचेंज \ वेब सेवाएं \ 2.2 –

उत्तर

5

मैं इस लेख से यह पता लगा: http://msdn.microsoft.com/en-us/library/dd633680(EXCHG.80).aspx

आप service.ImpersonatedUserId विशेषता का उपयोग करना चाहिए।

+0

प्रतिनिधिमंडल का उपयोग करके यह किया जा सकता है। मुझे पता है कि हम ईडब्ल्यूएस एपीआई का उपयोग करके प्रतिनिधि बना सकते हैं और प्रबंधित कर सकते हैं, लेकिन यह नहीं पता कि अपॉइंटमेंट आदि बनाने के लिए प्रतिनिधिमंडल का उपयोग करने का कोई तरीका है या नहीं। – Aamir

7
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "[email protected]")); 

भी काम करेगा। फिर नियुक्ति के लिए inboxFolder.id पास करें। कॉल सहेजें। अद्यतन और हटाए जाने की आवश्यकता नहीं है। सबसे अच्छा जवाब प्रतिरूपण का उपयोग करना है, लेकिन इसके लिए सर्वर व्यवस्थापक द्वारा इसे सक्षम करने की आवश्यकता है। यदि आप ऐसी शक्ति नहीं रखते हैं, तो यह विधि आपको वही करने देगी जो आपको चाहिए। नोट: आपके एप्लिकेशन को चलाने वाले उपयोगकर्ता को लक्षित खाते पर अनुमतियां होनी चाहिए या यह विफल हो जाएगी (जैसा कि इसे करना चाहिए)।

यहाँ मिला: http://msdn.microsoft.com/en-us/library/gg274408(v=EXCHG.80).aspx

+1

धन्यवाद! यह काम करता है, लेकिन यह ** WellKnownFolderName.Calendar ** ** WellKnownFolderName.Inbox ** के बजाय होना चाहिए। – Ephedra

5

मैं इस उत्तर दिया गया है पता है, लेकिन जवाब में करने के लिए @ आमिर की इस टिप्पणी आप इस प्रतिनिधियों मैं सिर्फ एक परियोजना मैं पर काम कर रहा हूँ के लिए यह किया है का उपयोग कर सकते हैं।

जैसा कि @matt ने अपने उत्तर में सुझाव दिया है कि आप अन्य उपयोगकर्ता फ़ोल्डर को इंगित करने के लिए नियुक्ति की सहेजी गई विधि में संशोधन कर सकते हैं, जो इस मामले में कैलेंडर होगा।

कोड के रूप में नीचे

Appointment appointment = new Appointment(service); 
appointment.Subject = "Testing"; 
appointment.Start = DateTime.Now; 
appointment.End = appointment.Start.AddHours(1); 
appointment.Save(new FolderId(WellKnownFolderName.Calendar, new Mailbox(_EmailAddress))); 

आशा है कि मदद करता है

संबंधित मुद्दे