запрос пользователя / групп active directory javascript
можно ли запросить объявление из javascript?
Я работаю из SharePoint, и я могу получить информацию о текущем пользователе SharePoint, используя некоторые js, которые я нашел в блоге.
но мне интересно, могу ли я запросить AD, чтобы узнать, находится ли текущий пользователь в определенной группе объявлений.
3 ответов
Я думаю, вам лучше написать быстро asp.net страница, которую вы можете позвонить через AJAX и получить JSON обратно. Класс .NET directory services будет намного лучше разговаривать с Active Directory, чем javascript, если вы не можете найти библиотеку js специально для этого (которую я не смог найти).
это немного поздно, но для будущих посетителей из Google мне пришлось написать что-то на JavaScript, чтобы исправить запланированную задачу, которая выполняется с помощью cscript:
var conn = WScript.CreateObject("ADODB.Connection")
var rootDSE = GetObject("LDAP://RootDSE");
var context = rootDSE.Get("defaultNamingContext");
conn.Provider = "ADsDSOObject";
conn.Open("ADs Provider");
var query = "<LDAP://" + context + ">;(&(objectCategory=person)(objectClass=user));samAccountName;subtree";
var cmd = WScript.CreateObject("ADODB.Command");
cmd.ActiveConnection = conn;
cmd.CommandText = query;
cmd.Properties.Item("SearchScope") = 2;
cmd.Properties.Item("Page Size") = 500;
var r = cmd.Execute();
while(!r.EOF)
{
for (var e=new Enumerator(r.Fields);!e.atEnd();e.moveNext())
{
WScript.Stdout.Write(e.Item().name + "=" + e.Item().value + " ");
}
WScript.Stdout.WriteLine("");
r.MoveNext();
}
Мне неизвестно, как можно получить доступ к AD из клиентского скрипта. Я мог только думать о каком-то элементе управления ActiveX, который выполняет эту работу, однако 1) будет работать только в IE 2) также будет ограничен настройками зоны в IE.
Итак, причина в том, почему вам это нужно. Скорее всего, чтобы иметь возможность показать пользователю что-то или скрыть что-то от пользователя. Если это так, вы можете подумать о применении решения "целевые аудитории" к своей странице (см. здесь - http://office.microsoft.com/en-us/sharepointserver/HA101690531033.aspx). Например, добавьте на страницу две версии webpart: одну для пользователей, входящих в группу, и другую для пользователей, не входящих в группу.
Если вам действительно нужна эта информация на стороне клиента в JS, вы можете создать веб-службу "ad helper" на своем сервере и вызвать эту службу с помощью AJAX, согласно сообщению @squillman.