c# - usuario - Recuperar propiedades específicas de Active Directory
single sign on c# active directory (2)
"Pero esto devuelve muchas propiedades que simplemente no están en este diálogo, pero no sé qué hace que estas propiedades sean únicas / especiales".
El servidor de Windows viene con un esquema de AD predefinido. Esa es la lista básica de valores únicos / especiales. Si tiene, por ejemplo, un servidor de intercambio instalado, Exchange agregará un montón de propiedades adicionales únicas / especiales a la lista porque agrega un esquema de AD de Exchange para que base el esquema de Windows AD. Esencialmente, una instalación base de AD de Windows le mostrará sus objetos de esquema garantizados, y todos los demás objetos son opcionales dependiendo de las configuraciones y el software instalado en su red.
Recomiendo encarecidamente utilizar el complemento de editor adsi para realizar este tipo de programación: http://technet.microsoft.com/en-us/library/cc773354%28v=ws.10%29.aspx . Esto te ayudará a saber qué cuerdas mágicas puedes poner en FindClass y te gusta las llamadas como parámetros y te permitirá saber qué obtendrás de AD a través de tu C # call antes de entrar al código.
Estoy usando el .NET System.DirectoryServices.ActiveDirectory incorporado para acceder a un controlador de dominio de Active Directory.
Estoy intentando enumerar la colección de propiedades de usuario del servidor, no los valores, sino una lista de configuraciones modificables para cualquier usuario.
Básicamente, este es un espejo de los atributos que se pueden escribir desde el "Editor de atributos" en Active Directory:
Intenté capturar estos datos usando el siguiente código:
ActiveDirectorySchema currSchema = ActiveDirectorySchema.GetSchema(directoryContext);
ActiveDirectorySchemaClass userSchema = currSchema.FindClass("user");
ReadOnlyActiveDirectorySchemaPropertyCollection userProperties = userSchema.GetAllProperties();
Pero esto devuelve muchas propiedades que simplemente no están en este diálogo, pero no sé qué hace que estas propiedades sean únicas / especiales.
También probé FindClass ("persona");
¿Hay alguna manera de lograr esto?
Actualizar
Según lo solicitado, esto es lo que obtengo si solicito lo anterior:
Usando FindClass ("persona")
cn
instanceType
nTSecurityDescriptor
objectCategory
objectClass
adminDescription
adminDisplayName
allowedAttributes
allowedAttributesEffective
allowedChildClasses
allowedChildClassesEffective
attributeCertificateAttribute
bridgeheadServerListBL
canonicalName
createTimeStamp
description
directReports
displayName
displayNamePrintable
distinguishedName
dSASignature
dSCorePropagationData
extensionName
flags
fromEntry
frsComputerReferenceBL
fRSMemberReferenceBL
fSMORoleOwner
isCriticalSystemObject
isDeleted
isPrivilegeHolder
isRecycled
lastKnownParent
managedObjects
masteredBy
memberOf
modifyTimeStamp
mS-DS-ConsistencyChildCount
mS-DS-ConsistencyGuid
msCOM-PartitionSetLink
msCOM-UserLink
msDFSR-ComputerReferenceBL
msDFSR-MemberReferenceBL
msDS-Approx-Immed-Subordinates
msDS-AuthenticatedToAccountlist
msDS-EnabledFeatureBL
msDS-HostServiceAccountBL
msDS-IsDomainFor
msDS-IsFullReplicaFor
msDS-IsPartialReplicaFor
msDS-KrbTgtLinkBl
msDS-LastKnownRDN
msDS-LocalEffectiveDeletionTime
msDS-LocalEffectiveRecycleTime
msDs-masteredBy
msDS-MembersForAzRoleBL
msDS-NC-RO-Replica-Locations-BL
msDS-NCReplCursors
msDS-NCReplInboundNeighbors
msDS-NCReplOutboundNeighbors
msDS-NcType
msDS-NonMembersBL
msDS-ObjectReferenceBL
msDS-OIDToGroupLinkBl
msDS-OperationsForAzRoleBL
msDS-OperationsForAzTaskBL
msDS-PrincipalName
msDS-PSOApplied
msDS-ReplAttributeMetaData
msDS-ReplValueMetaData
msDS-RevealedDSAs
msDS-RevealedListBL
msDS-TasksForAzRoleBL
msDS-TasksForAzTaskBL
msSFU30PosixMemberOf
name
netbootSCPBL
nonSecurityMemberBL
objectGUID
objectVersion
otherWellKnownObjects
ownerBL
partialAttributeDeletionList
partialAttributeSet
possibleInferiors
proxiedObjectName
proxyAddresses
queryPolicyBL
replPropertyMetaData
replUpToDateVector
repsFrom
repsTo
revision
sDRightsEffective
seeAlso
serialNumber
serverReferenceBL
showInAdvancedViewOnly
siteObjectBL
sn
structuralObjectClass
subRefs
subSchemaSubEntry
systemFlags
telephoneNumber
url
userPassword
uSNChanged
uSNCreated
uSNDSALastObjRemoved
USNIntersite
uSNLastObjRem
uSNSource
wbemPath
wellKnownObjects
whenChanged
whenCreated
wWWHomePage
Usando FindClass ("usuario")
cn
instanceType
nTSecurityDescriptor
objectCategory
objectClass
objectSid
sAMAccountName
accountExpires
accountNameHistory
aCSPolicyName
adminCount
adminDescription
adminDisplayName
allowedAttributes
allowedAttributesEffective
allowedChildClasses
allowedChildClassesEffective
altSecurityIdentities
assistant
attributeCertificateAttribute
audio
badPasswordTime
badPwdCount
bridgeheadServerListBL
businessCategory
c
canonicalName
carLicense
co
codePage
comment
company
controlAccessRights
countryCode
createTimeStamp
dBCSPwd
defaultClassStore
department
departmentNumber
description
desktopProfile
destinationIndicator
directReports
displayName
displayNamePrintable
distinguishedName
division
dSASignature
dSCorePropagationData
dynamicLDAPServer
employeeID
employeeNumber
employeeType
extensionName
facsimileTelephoneNumber
flags
fromEntry
frsComputerReferenceBL
fRSMemberReferenceBL
fSMORoleOwner
garbageCollPeriod
gecos
generationQualifier
gidNumber
givenName
groupMembershipSAM
groupPriority
groupsToIgnore
homeDirectory
homeDrive
homePhone
homePostalAddress
houseIdentifier
info
initials
internationalISDNNumber
ipPhone
isCriticalSystemObject
isDeleted
isPrivilegeHolder
isRecycled
jpegPhoto
l
labeledURI
lastKnownParent
lastLogoff
lastLogon
lastLogonTimestamp
legacyExchangeDN
lmPwdHistory
localeID
lockoutTime
loginShell
logonCount
logonHours
logonWorkstation
mail
managedObjects
manager
masteredBy
maxStorage
memberOf
mhsORAddress
middleName
mobile
modifyTimeStamp
mS-DS-ConsistencyChildCount
mS-DS-ConsistencyGuid
mS-DS-CreatorSID
msCOM-PartitionSetLink
msCOM-UserLink
msCOM-UserPartitionSetLink
msDFSR-ComputerReferenceBL
msDFSR-MemberReferenceBL
msDRM-IdentityCertificate
msDS-AllowedToDelegateTo
msDS-Approx-Immed-Subordinates
msDS-AuthenticatedAtDC
msDS-AuthenticatedToAccountlist
msDS-Cached-Membership
msDS-Cached-Membership-Time-Stamp
msDS-EnabledFeatureBL
msDS-FailedInteractiveLogonCount
msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon
msDS-HABSeniorityIndex
msDS-HostServiceAccountBL
msDS-IsDomainFor
msDS-IsFullReplicaFor
msDS-IsPartialReplicaFor
msDS-KeyVersionNumber
msDS-KrbTgtLinkBl
msDS-LastFailedInteractiveLogonTime
msDS-LastKnownRDN
msDS-LastSuccessfulInteractiveLogonTime
msDS-LocalEffectiveDeletionTime
msDS-LocalEffectiveRecycleTime
msDs-masteredBy
msDS-MembersForAzRoleBL
msDS-NC-RO-Replica-Locations-BL
msDS-NCReplCursors
msDS-NCReplInboundNeighbors
msDS-NCReplOutboundNeighbors
msDS-NcType
msDS-NonMembersBL
msDS-ObjectReferenceBL
msDS-OIDToGroupLinkBl
msDS-OperationsForAzRoleBL
msDS-OperationsForAzTaskBL
msDS-PhoneticCompanyName
msDS-PhoneticDepartment
msDS-PhoneticDisplayName
msDS-PhoneticFirstName
msDS-PhoneticLastName
msDS-PrincipalName
msDS-PSOApplied
msDS-ReplAttributeMetaData
msDS-ReplValueMetaData
msDS-ResultantPSO
msDS-RevealedDSAs
msDS-RevealedListBL
msDS-SecondaryKrbTgtNumber
msDS-Site-Affinity
msDS-SourceObjectDN
msDS-SupportedEncryptionTypes
msDS-TasksForAzRoleBL
msDS-TasksForAzTaskBL
msDS-User-Account-Control-Computed
msDS-UserPasswordExpiryTimeComputed
msExchAssistantName
msExchHouseIdentifier
msExchLabeledURI
msIIS-FTPDir
msIIS-FTPRoot
mSMQDigests
mSMQDigestsMig
mSMQSignCertificates
mSMQSignCertificatesMig
msNPAllowDialin
msNPCallingStationID
msNPSavedCallingStationID
msPKI-CredentialRoamingTokens
msPKIAccountCredentials
msPKIDPAPIMasterKeys
msPKIRoamingTimeStamp
msRADIUS-FramedInterfaceId
msRADIUS-FramedIpv6Prefix
msRADIUS-FramedIpv6Route
msRADIUS-SavedFramedInterfaceId
msRADIUS-SavedFramedIpv6Prefix
msRADIUS-SavedFramedIpv6Route
msRADIUSCallbackNumber
msRADIUSFramedIPAddress
msRADIUSFramedRoute
msRADIUSServiceType
msRASSavedCallbackNumber
msRASSavedFramedIPAddress
msRASSavedFramedRoute
msSFU30Name
msSFU30NisDomain
msSFU30PosixMemberOf
msTSAllowLogon
msTSBrokenConnectionAction
msTSConnectClientDrives
msTSConnectPrinterDrives
msTSDefaultToMainPrinter
msTSExpireDate
msTSExpireDate2
msTSExpireDate3
msTSExpireDate4
msTSHomeDirectory
msTSHomeDrive
msTSInitialProgram
msTSLicenseVersion
msTSLicenseVersion2
msTSLicenseVersion3
msTSLicenseVersion4
msTSLSProperty01
msTSLSProperty02
msTSManagingLS
msTSManagingLS2
msTSManagingLS3
msTSManagingLS4
msTSMaxConnectionTime
msTSMaxDisconnectionTime
msTSMaxIdleTime
msTSPrimaryDesktop
msTSProfilePath
msTSProperty01
msTSProperty02
msTSReconnectionAction
msTSRemoteControl
msTSSecondaryDesktops
msTSWorkDirectory
name
netbootSCPBL
networkAddress
nonSecurityMemberBL
ntPwdHistory
o
objectGUID
objectVersion
operatorCount
otherFacsimileTelephoneNumber
otherHomePhone
otherIpPhone
otherLoginWorkstations
otherMailbox
otherMobile
otherPager
otherTelephone
otherWellKnownObjects
ou
ownerBL
pager
partialAttributeDeletionList
partialAttributeSet
personalTitle
photo
physicalDeliveryOfficeName
possibleInferiors
postalAddress
postalCode
postOfficeBox
preferredDeliveryMethod
preferredLanguage
preferredOU
primaryGroupID
primaryInternationalISDNNumber
primaryTelexNumber
profilePath
proxiedObjectName
proxyAddresses
pwdLastSet
queryPolicyBL
registeredAddress
replPropertyMetaData
replUpToDateVector
repsFrom
repsTo
revision
rid
roomNumber
sAMAccountType
scriptPath
sDRightsEffective
secretary
securityIdentifier
seeAlso
serialNumber
serverReferenceBL
servicePrincipalName
shadowExpire
shadowFlag
shadowInactive
shadowLastChange
shadowMax
shadowMin
shadowWarning
showInAddressBook
showInAdvancedViewOnly
sIDHistory
siteObjectBL
sn
st
street
streetAddress
structuralObjectClass
subRefs
subSchemaSubEntry
supplementalCredentials
systemFlags
telephoneNumber
teletexTerminalIdentifier
telexNumber
terminalServer
textEncodedORAddress
thumbnailLogo
thumbnailPhoto
title
tokenGroups
tokenGroupsGlobalAndUniversal
tokenGroupsNoGCAcceptable
uid
uidNumber
unicodePwd
unixHomeDirectory
unixUserPassword
url
userAccountControl
userCert
userCertificate
userParameters
userPassword
userPKCS12
userPrincipalName
userSharedFolder
userSharedFolderOther
userSMIMECertificate
userWorkstations
uSNChanged
uSNCreated
uSNDSALastObjRemoved
USNIntersite
uSNLastObjRem
uSNSource
wbemPath
wellKnownObjects
whenChanged
whenCreated
wWWHomePage
x121Address
x500uniqueIdentifier
Aclaración sobre los datos devueltos
userSchema
userProperties
La lista de atributos que se permite modificar para un objeto se almacena en el atributo allowedAttributesEffective .
Mostrará los atributos para el contexto de seguridad bajo el cual se realizó la consulta.
Echa un vistazo a esta publicación de blog para obtener más información .