2012-04-30 19 views
5

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

समस्या यह है कि मुझे नहीं पता कि उपयोगकर्ता ठीक से लॉग इन है या यदि प्रमाण पत्र गलत हैं क्योंकि मुझे कुछ भी वापस नहीं मिलता है! अगर मैं गलत प्रमाण-पत्र प्रदान करता हूं तो सॉफ़्टवेयर बस चलता है!

क्या मुझे कुछ याद आ रही है, मैंने ईडब्ल्यूएस के बारे में एमएसडीएन सामान की जांच की है जो आपको दिखाता है कि एक्सचेंज से कैसे कनेक्ट किया जाए लेकिन प्रमाण-पत्रों को सत्यापित करने के बारे में कुछ भी नहीं!

नीचे कोड है जो मुझे वर्तमान में कनेक्ट करना है।

public void connect(string Email, string Password) 
    { 
     try 
     {    
      _useremail = Email; 
      _userpass = Password; 

      // Define the credentials to use. 
      var credentials = new WebCredentials(_useremail, _userpass); 

      _ExchangeServer = new ExchangeService(ExchangeVersion.Exchange2010_SP1); 
      _ExchangeServer.Credentials = credentials; 
      _ExchangeServer.Url = new Uri(_ExchangeEWSURL); 
      _ExchangeServer.Timeout = 60; 
      _ExchangeServer.KeepAlive = true; 
      _ExchangeConnected = true; 
     } 
     catch (Exception ex) 
     { 
      _ExchangeConnected = false; 
      throw ex; 
     } 
    } 

जैसा कि आप वर्तमान में देख सकते हैं कि मैंने कक्षा में सही के लिए एक बूल वैल्यू सेट किया है। कोई विचार?

उत्तर

10

यह जांचने के लिए कि दिए गए प्रमाण-पत्र मान्य हैं या नहीं, आपको संसाधनों से पूछना चाहिए कि आप उपयोगकर्ता को (कैलेंडर, इनबॉक्स, संपर्क इत्यादि) तक पहुंचने की अपेक्षा करते हैं)। कोई स्पष्ट लॉगिन विधि - प्रमाणीकरण तब होता है जब आप उपयोगकर्ता संसाधनों का अनुरोध करते हैं (FindItems, FindFolders, FindAppointments, आदि)।

+1

धन्यवाद जो मैंने पढ़ा है उससे SliverNinja (महान नाम btw) क्या मैं प्रिंसिपल कॉन्टेक्स्ट कर सकता हूं? अफसोस की बात है कि सर्वर मुझे इस समय 401 दे रहा है, इसलिए मैं परीक्षण नहीं कर सकता :( – Neo

+1

स्लाइवर निंजा, यदि आप एक उदाहरण पोस्ट करते हैं तो मैं इसे स्वीकार किए गए उत्तर के रूप में चिह्नित करता हूं क्योंकि यह काम करता है! – Neo

+2

यदि आप केवल यह सुनिश्चित करना चाहते हैं कि प्रमाण-पत्र हैं विशिष्ट संसाधनों तक पहुंच के लिए मान्य और परीक्षण नहीं, आप इस 'exchService.ConvertIds (नया वैकल्पिक Id [] {नया वैकल्पिक Id (IdFormat.HexEntryId," 00 ", ईमेल)}, IdFormat.HexEntryId) जैसे कॉल कर सकते हैं;' यदि क्रेडिटेंट गलत हैं –

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