我試圖從Active Directory中加載tokenGroups,但一旦部署到Windows Server(2003)後它就無法運行。我想不通爲什麼,因爲它工作在當地罰款......如何從Windows Server 2003上的活動目錄獲取tokenGroups?
這是我的錯誤:
There is no such object on the server.
這裏是我的代碼(SID變量是當前用戶的SecurityIdentifier從HttpContext的拉):
DirectoryEntry userDE = new DirectoryEntry(string.Format("LDAP://<SID={0}>", sid.Value))
userDE.RefreshCache(new[] { "tokenGroups" });
var tokenGroups = userDE.Properties["tokenGroups"] as CollectionBase;
groups = tokenGroups.Cast<byte[]>()
.Select(sid => new SecurityIdentifier(sid, 0)).ToArray();
任何想法,爲什麼我會得到那個錯誤?
UPDATE:錯誤實際發生的RefreshCache線
在構造函數調用之後,您是否有'userDE'的有效值?該用戶是否真的存在?或者您需要提供在您的LDAP路徑中使用的服務器? 「沒有這樣的對象」似乎表明用戶只是普通不存在....(或由於例如權限而無法找到) – 2010-07-08 17:57:20
是否可能是因爲sid屬於客戶端上的本地用戶,而不是活動目錄用戶? – apoorv020 2010-07-08 18:00:23