2009-10-22 8 views
6

मैं किसी दिए गए विज्ञापन उपयोगकर्ता से जुड़े सभी ईमेल पते प्राप्त करने का प्रयास कर रहा हूं।सी # - एक सक्रिय निर्देशिका उपयोगकर्ता के लिए सभी ईमेल पते खोजें

मैं डोमेन और लॉगिन नाम (उदा डोमेन \ उपयोगकर्ता नाम।) और मैं ईस्वी में ई-मेल पते के संचय कर रहा है उपयोगकर्ता के लिए:

  1. मेल विशेषता।
  2. proxyAddresses विशेषताएँ में।

अब तक, मुझे नहीं पता कि एडी से कनेक्ट करने के लिए सी # एपीआई का उपयोग करने के लिए, और सभी ईमेल पतों को लाने के लिए उपयोगकर्ता द्वारा उचित तरीके से फ़िल्टर कैसे किया जाए। मैं .NET 3.5 का उपयोग कर रहा हूँ।

धन्यवाद।

उत्तर

-1

क्या आपने DirectoryEntry क्लास को देखा है। आप वहां से संपत्तियों को खींच सकते हैं क्योंकि आपके पास एलडीएपी स्ट्रिंग सेट अप है। मेल के लिए प्रस्ताव "मेल" लोहे का संकेत है?

30

System.DirectoryServices नामस्थान में विभिन्न कक्षाओं का उपयोग करके यहां एक संभावित समाधान है।

string username = "username"; 
string domain = "domain"; 

List<string> emailAddresses = new List<string>(); 

PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, domain); 
UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, username); 

// Add the "mail" entry 
emailAddresses.Add(user.EmailAddress); 

// Add the "proxyaddresses" entries. 
PropertyCollection properties = ((DirectoryEntry)user.GetUnderlyingObject()).Properties; 
foreach (object property in properties["proxyaddresses"]) 
{ 
    emailAddresses.Add(property.ToString()); 
} 
+4

इस उदाहरण के लिए काम करने के लिए "System.DirectoryServices.AccountManagement" का संदर्भ भी आवश्यक है। – Fueled

+4

+1 यह स्वीकृत उत्तर से बेहतर है क्योंकि ए) आपको सहायता प्राप्त करने के लिए इस साइट को छोड़ना नहीं है और बी) इसमें सभी गुप्त एलडीएपी क्वेरी सामान नहीं हैं। –

+0

मैं सम्मान से असहमत हूं - जबकि इसमें कुछ स्पष्टता शामिल है, यह एक महत्वपूर्ण भेद को इंगित नहीं करता है कि यह दस्तावेज यह इंगित करने में विफल रहता है: "यह [proxyAddress] संपत्ति सभी ईमेल पता प्रकारों, जैसे कि SMTP, x.400, आदि सूचीबद्ध करती है। इसलिए हमें एसएमटीपी प्रकार की जांच के लिए हमारे कोड को संशोधित करने की आवश्यकता होगी "। इसके अलावा, और शायद माइक्रोसॉफ्ट को अमान्य दस्तावेज के लिए यहां दोष देना है, @ डोनट - मैं अभी भी यह सोच रहा हूं कि आपने निम्न क्यों किया: ईमेल एड्रेस्रेस। जोड़ें (उपयोगकर्ता.इमेल एड्रेस) जब माइक्रोसॉफ्ट दस्तावेज़ इस विशेषता को "सूची" के रूप में परिभाषित करते हैं संपर्क के लिए ईमेल पते का "(एकाधिक पते?) – Jordan

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