استعلام قائمة العناوين العمومية (GAL) للمستخدمين عبر المجالات

StackOverflow https://stackoverflow.com/questions/1260080

سؤال

أحتاج إلى البحث عن جميع المستخدمين الذين تحتويون على سلسلة نصية معينة في اسمهم مقابل قائمة العناوين العمومية Exchange Server. سيتم تنفيذ هذه العملية من تطبيق ASP.NET. لاحظ أن GAL مطلوب (وليس Active Directory) لأنها تحتوي على مستخدمين عبر المجالات. إنه أيضا ما طلبه العميل.

لقد كنت أبحث في Exchange Services Web وأساليب Outlook Web Access. ومع ذلك، لا يجوز تكوين أي منها في مؤسستي، لذلك، أحتاج إلى معرفة أي خيار هو الصحيح قبل طرح البنية التحتية لتكوينه.

تبادل خدمات الويب

كنت آمل أن أستخدم أسماء العاصمة طريقة في Exchange Web Services. تنص الوثائق الخاصة بها على ما يلي:

يتم تفتيش Active Directory أولا، ثم يتم البحث في مجلد جهات الاتصال الخاص بالمستخدم.

يبدو أن هذه الطريقة ستظهر فقط للمستخدمين فقط من المجال الحالي. هل هذا صحيح؟

Outlook Web Access.

الخيار الآخر الذي وجدته كان galfind. هذا يبدو مثاليا ولكن هذه المقالة صرح أنه غير مدعوم. وبعد تم تأكيد أنه لم يعد متاحا في هذا تقنية شرط.

هل يمكن لأي شخص يرجى تقديم المشورة بشأن هذه أو أي خيارات أخرى؟

هل كانت مفيدة؟

المحلول

من الممكن الاستعلام عبر المجالات عن طريق بدء الاستعلام من جذر الغابات. هنا هو الكود الذي انتهى بيه باستخدام:

string filter = "(&(objectCategory=person)(objectClass=user)(name=*" + search + "*))";
var rootEntry = new DirectoryEntry("GC:");
foreach (DirectoryEntry entry in rootEntry.Children)
{
    DirectoryEntry forestEntry = entry;
    DirectorySearcher searcher = new DirectorySearcher
        {
            SearchRoot = forestEntry,
            Filter = filter,
            Sort =
                {
                    Direction = SortDirection.Ascending,
                    PropertyName = "cn"
                }
        };
    searcher.PropertiesToLoad.AddRange(ADProperties.Values.ToArray());
    SearchResultCollection results = searcher.FindAll();
    foreach (SearchResult result in results)
    {
        DirectoryEntry foundEntry = result.GetDirectoryEntry();

        // Do something
    }
}

نصائح أخرى

أنا لا خبير تبادل ولكن لا يمكنك القيام بذلك باستخدام كائنات بيانات التعاون (CDO) على الرغم من أنها قد لا تكون سويفت جدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top