问题描述
是否可以在不指定的情况下从 LDAP 检索所有属性/值的列表,如果可以,这怎么可能?
Is it possible to retrieve a list of all attributes/values from LDAP without specifying, if so how can this be possible?
推荐答案
我抓取我的 DirectoryEntry 类对象的所有参数列表.我希望它会有所帮助:
I grab list of all parameters my DirectoryEntry class object. I hope it will help:
objectClass = System.Object[] cn = *****istrator sn = Kwiatek (Last name) c = PL (Country Code) l = Warszawa (City) st = Mazowieckie (Voivodeship) title = .NET Developer description = Built-in account for *****istering the computer/domain postalCode = 00-000 postOfficeBox = Warszawa Ursynów physicalDeliveryOfficeName = Wojskowa Akademia Techniczna givenName = Piotr (First name) distinguishedName = CN=*****istrator,CN=Users,DC=helpdesk,DC=wat,DC=edu instanceType = 4 whenCreated = 2012-11-23 06:09:28 whenChanged = 2013-02-23 13:24:41 displayName = Piotr Kwiatek (Konto *****istratora) uSNCreated = System.__ComObject memberOf = System.Object[] uSNChanged = System.__ComObject co = Poland company = HELPDESK streetAddress = Kaliskiego 2 wWWHomePage = http://www.piotr.kwiatek.org name = *****istrator objectGUID = System.Byte[] userAccountControl = 512 badPwdCount = 0 codePage = 0 countryCode = 616 badPasswordTime = System.__ComObject lastLogoff = System.__ComObject lastLogon = System.__ComObject logonHours = System.Byte[] pwdLastSet = System.__ComObject primaryGroupID = 513 objectSid = System.Byte[] *****Count = 1 accountExpires = System.__ComObject logonCount = 178 sAMAccountName = *****istrator sAMAccountType = 805306368 objectCategory = CN=Person,CN=Schema,CN=Configuration,DC=helpdesk,DC=wat,DC=edu isCriticalSystemObject = True dSCorePropagationData = System.Object[] lastLogonTimestamp = System.__ComObject mail = spam@kwiatek.org nTSecurityDescriptor = System.__ComObject
这里你有代码:
string currentUserSid = WindowsIdentity.GetCurrent().User.Value;
PrincipalContext ctx = new PrincipalContext(
ContextType.Domain,
"helpdesk.wat.edu");
UserPrincipal up = UserPrincipal.FindByIdentity(
ctx, IdentityType.Sid,
currentUserSid);
/*
*
*/
DirectoryEntry entry = up.GetUnderlyingObject() as DirectoryEntry;
PropertyCollection props = entry.Properties;
/*
*
*/
foreach (string propName in props.PropertyNames)
{
if (entry.Properties[propName].Value != null)
{
Console.WriteLine(propName + " = " + entry.Properties[propName].Value.ToString());
}
else
{
Console.WriteLine(propName + " = NULL");
}
}
Console.ReadKey();
亖呉?盀