我想重新寫從一個的System.DirectoryServices搜索System.DirectoryServices.ProtocolSystem.DirectoryServices.Protocol搜索問題
在S.DS我得到的所有請求的屬性後面,但在S.DS .P,我沒有得到GUID或HomePhone ...
它的其餘部分適用於一個用戶。
什麼想法?
public static List<AllAdStudentsCV> GetUsersDistinguishedName(string domain, string distinguishedName)
{
try
{
NetworkCredential credentials = new NetworkCredential(ConfigurationManager.AppSettings[ "AD_User" ], ConfigurationManager.AppSettings[ "AD_Pass" ]);
LdapDirectoryIdentifier directoryIdentifier = new LdapDirectoryIdentifier(domain+":389");
using (LdapConnection connection = new LdapConnection(directoryIdentifier, credentials))
{
SearchRequest searchRequest = new SearchRequest();
searchRequest.DistinguishedName = distinguishedName;
searchRequest.Filter = "(&(objectCategory=person)(objectClass=user)(sn=Afcan))";//"(&(objectClass=user))";
searchRequest.Scope = SearchScope.Subtree;
searchRequest.Attributes.Add("name");
searchRequest.Attributes.Add("sAMAccountName");
searchRequest.Attributes.Add("uid");
searchRequest.Attributes.Add("telexNumber"); // studId
searchRequest.Attributes.Add("HomePhone"); //ctrId
searchRequest.SizeLimit = Int32.MaxValue;
searchRequest.TimeLimit = new TimeSpan(0, 0, 45, 0);// 45 min - EWB
SearchResponse searchResponse = connection.SendRequest(searchRequest) as SearchResponse;
if (searchResponse == null) return null;
List<AllAdStudentsCV> users = new List<AllAdStudentsCV>();
foreach (SearchResultEntry entry in searchResponse.Entries)
{
AllAdStudentsCV user = new AllAdStudentsCV();
user.Active = "Y";
user.CenterName = "";
user.StudId = GetstringAttributeValue(entry.Attributes, "telexNumber");
user.CtrId = GetstringAttributeValue(entry.Attributes, "HomePhone");
user.Guid = GetstringAttributeValue(entry.Attributes, "uid");
user.Username = GetstringAttributeValue(entry.Attributes, "sAMAccountName");
users.Add(user);
}
return users;
}
}
catch (Exception ex)
{
throw;
}
}
另外,如果我想獲取在廣告的每個用戶,這樣我就可以用我的SQL數據庫同步數據,我怎麼做,我一直得到最大規模突破,錯誤。我將大小設置爲maxInt32 ...是否有「忽略大小」選項?
感謝,
Eric-
改變「HOMEPHONE」到「HOMEPHONE」現在我回家的電話,但還是老樣子沒有GUID ...任何想法都能在這裏找到,而不是「UID」叫什麼名字? –
它應該是objectGUID –
要容易地找到屬性名稱(即使那些AD不會使用常規工具(如ldapbrowser)顯示),您應該嘗試使用ADSIEdit(DC上的adsiedit.msc)瀏覽目錄 –