是否有可能從javascript查詢AD?javascript活動目錄用戶/組查詢
我正在從SharePoint內部工作,我可以使用我在博客上找到的一些js獲取當前SharePoint用戶的信息。
但我想知道如果我可以查詢AD,看看當前用戶是否在特定的AD組。
是否有可能從javascript查詢AD?javascript活動目錄用戶/組查詢
我正在從SharePoint內部工作,我可以使用我在博客上找到的一些js獲取當前SharePoint用戶的信息。
但我想知道如果我可以查詢AD,看看當前用戶是否在特定的AD組。
我認爲你最好寫一個快速的asp.net頁面,你可以通過AJAX調用並獲得一些JSON。 .NET目錄服務類在與Active Directory聊天方面要比javascript好得多,除非你能找到專門用於此的js庫(我一直無法找到它)。
我無法知道人們如何從客戶端腳本訪問AD。我只能想到某種類型的ActiveX控件可以完成這項工作,但是1)只能在IE 2中工作)也僅限於IE中的區域設置。
所以,原因是你爲什麼需要這個。最有可能的是,能夠向用戶顯示某些內容或隱藏用戶的內容。如果是這種情況,您可以考慮將「目標受衆」解決方案應用於您的頁面(請參閱此處 - http://office.microsoft.com/en-us/sharepointserver/HA101690531033.aspx)。例如,將Web部件的兩個版本添加到該頁面,一個用於組中的用戶,另一個用於不是的用戶。
如果您確實需要在JS中的客戶端上提供這些信息,您可以在服務器上創建一些「AD助手」Web服務,並使用AJAX調用該服務,如@ squillman的帖子所示。
這是一個有點晚,但對於谷歌從未來的訪客,我不得不使用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();
}
不太確定訪問WScript –
我已經讓SharePoint消耗幾個.NET網頁/網絡應用程序作爲Web部件。 我擔心SharePoint需要很長時間來加載它們。 – vwfreak