запрос пользователя / групп 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.