2015-03-05 9 views
5
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, Domain, UserName, Password)) 
      { 
       UserPrincipal U = new UserPrincipal(ctx); 
       U.GivenName = strFirstName; 
       U.Surname = strLastName; 
       U.EmailAddress = strEmail; 

       PrincipalSearcher srch = new PrincipalSearcher(U); 

       foreach (var principal in srch.FindAll()) 
       { 
        var p = (UserPrincipal)principal; 
        if (!User.Any(x => x.Email == p.EmailAddress)) 
        { 
         MyUserDataset.UserRow User = User.NewUserRow(); 
         User.FirstName = p.GivenName; 
         User.LastName = p.Surname; 
         User.UserName = p.SamAccountName; 
         User.Email = p.EmailAddress; 
         User.AddUserRow(User); 
        } 
       } 
       User.AcceptChanges(); 
      } 

मैं लक्ष्य निर्देशिका में कनेक्शन स्थापित करने के लिए उपरोक्त प्रिंसिपल कॉन्टेक्स्ट क्लास का उपयोग कर रहा हूं और निर्देशिका के विरुद्ध संचालन करने के लिए प्रमाण-पत्र निर्दिष्ट करता हूं।संदर्भ स्थापित करते समय कनेक्शन समय निर्धारित करने के लिए कैसे करें - प्रिंसिपल कॉन्टेक्स्ट

क्या कोई जानता है कि मैं प्रिंसिपल कॉन्टेक्स्ट कन्स्ट्रक्टर में कनेक्शन समय को कैसे निर्दिष्ट कर सकता हूं ?, मैं & पर कनेक्शन के समय में चल रहा हूं, मैं सोच रहा था कि कनेक्शन कितना समय निकाल सकता है इसके बाद मैं नियंत्रित कर सकता हूं।

उत्तर

1

ठीक है, मुझे लगता है कि उत्तर दुर्भाग्य से नहीं है। मैंने प्रिंसिपल कॉन्टेक्स्ट के स्रोत कोड में खोद दिया है, यह डायरेक्टरीएन्ट्री का उपयोग करता है जो असुरक्षित मूल विधि सिस्टम का उपयोग करता है। डायरेक्टरी सर्विसेज.इंटरोप.यून्सएफ़नेटिव मोड्स .ADsOpenObject एलडीएपी कनेक्शन खोलने के लिए।

इस ब्लॉग के अनुसार: http://blogs.msdn.com/b/dsadsi/archive/2012/06/06/how-to-specify-timeout-for-ldap-bind-in-net.aspx, ADSOpenObject पर टाइमआउट कॉन्फ़िगर करने का कोई तरीका नहीं है। हालांकि, यह भी उल्लेख किया गया है कि यदि सीधे LdapConnection का उपयोग कर रहे हैं, तो टाइमआउट सेट करना संभव है। उस स्थिति में, आप प्रिंसिपल कॉन्टेक्स्ट उपयोगकर्ता को सक्षम नहीं कर पाएंगे।

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