Javascript Active Directory запрос пользователя / группы - PullRequest
6 голосов
/ 08 января 2010

Можно ли запросить AD из JavaScript?

Я работаю из SharePoint и могу получить информацию о текущем пользователе SharePoint, используя несколько js, найденных в блоге.

Но мне интересно, могу ли я тогда запросить AD, чтобы узнать, находится ли текущий пользователь в определенной группе AD.

Ответы [ 3 ]

4 голосов
/ 09 января 2010

Я думаю, вам лучше написать быструю страницу asp.net, которую вы могли бы вызвать через AJAX и получить немного JSON. Класс служб каталогов .NET будет гораздо лучше общаться с Active Directory, чем с javascript, если только вы не можете найти библиотеку js специально для этого (которую я не смог найти).

3 голосов
/ 11 декабря 2010

Это немного поздно, но для будущих посетителей из 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();
}
0 голосов
/ 09 января 2010

Мне неизвестно, как можно получить доступ к AD из клиентского скрипта. Я мог думать только о каком-то элементе управления ActiveX, который выполняет эту работу, однако 1) будет работать только в IE 2) и будет ограничен настройками зоны в IE.

Итак, причина в том, что вам это нужно. Скорее всего, чтобы иметь возможность показать пользователю что-то или скрыть что-то от пользователя. Если это так, вы можете подумать о применении решения «целевой аудитории» на своей странице (см. Здесь - http://office.microsoft.com/en-us/sharepointserver/HA101690531033.aspx). Например, добавьте две версии вашей веб-части на страницу, одну для пользователей, которые находятся в группа и другая для пользователей, которые не являются.

Если вам действительно нужно иметь эту информацию на стороне клиента в JS, вы можете создать на своем сервере некоторую веб-службу "AD helper" и вызывать эту службу, используя AJAX, согласно сообщению @ squillman.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...