الاتصال بـ OPENS باستخدام System.DirectoryService
سؤال
لقد كنت أحاول العثور على بعض البرامج التعليمية حول كيفية الاتصال بـ Opends باستخدام أنواع LDAP الخاصة بـ .NET دون جدوى. هل يمكن لأي شخص أن يوجهني إلى بعض المقالات/البرامج التعليمية التي لديها عينات جيدة حول استخدام Opends كخدمة دليل والوصول إلى ذلك باستخدام C#.
هذا ما جربته حتى الآن ، ولكن دائمًا ما أحصل على خطأ في اسم المستخدم/كلمة المرور غير صالح. أنا عالق في بيانات الاعتماد التي تحتاج إلى الدخول أو إذا كان ما أحاول فعله أمرًا منطقيًا على الإطلاق.
DirectoryEntry directoryEntry = new DirectoryEntry
{
Path = @"LDAP://SUnnikris-va-d:389/dc=example,dc=com",
Username = "uid=user.0",
Password = "TestPass!",
AuthenticationType = AuthenticationTypes.ServerBind
};
directoryEntry.RefreshCache();
DirectoryEntry newUser = directoryEntry.Children.Add("uid=nuser,ou=People,dc=example,dc=com", "person");
newUser.Properties["objectClass"].Value = new object[] { "top", "person", "organizationalPerson", "inetorgPerson" };
newUser.Properties["uid"].Value = "nuser";
newUser.Properties["givenName"].Value = "new";
newUser.Properties["sn"].Value = "user";
newUser.Properties["cn"].Value = "new user";
newUser.Properties["userPassword"].Value = "nuser";
newUser.CommitChanges();
المحلول 2
لقد اكتشفت ذلك ، يستخدم Opends الاسم الكنسي باعتباره Superuser للإدارة. في الأساس ، كانت المشكلة مع بيانات الاعتماد التي كنت أستخدمها ، بدلاً من UID كان علي تحديد هذا:-
NetworkCredential myCreds = new NetworkCredential("cn=Directory Manager", "TestPass!");
نصائح أخرى
أعتقد أن اسم المستخدم الخاص بك خاطئ ، فأنت بحاجة إلى وضع مسار LDAP الكامل لاسم المستخدم أي uid = admin ، ou = adminou ، dc = example ، dc = com
يمكنك أيضًا استخدام System.DirectoryServices.AccountManagement لتنفيذ Easiser ، يمكنك نظرة هنا -> http://anyrest.wordpress.com/2010/06/28/active-directory-c/