Pregunta

En uno de mis aplicaciones, yo soy la consulta de active directory para obtener una lista de todos los usuarios por debajo de un determinado usuario (utilizando el "Directos" cosa").Así que, básicamente, le da el nombre de la persona, se busca en el ANUNCIO, los Informes Directos son de lectura.Pero a continuación, para cada informe directo, la herramienta necesita para comprobar los informes directos de los informes directos.O, más abstracto:La Herramienta va a utilizar a una persona como la raíz del árbol y luego caminar a lo largo de todo el árbol para obtener los nombres de todas las hojas (puede ser de varios cientos)

Ahora, mi preocupación es, obviamente, el rendimiento, ya que esto debe ser hecho un par de veces.Mi idea es manualmente la caché que (esencialmente acaba de poner todos los nombres en una larga cadena y la tienda que en algún lugar y actualizarlo una vez al día).

Pero me pregunto si hay una forma más elegante de obtener primero la información y luego la memoria caché, posiblemente con algo en el Sistema.DirectoryServices Espacio De Nombres?

¿Fue útil?

Solución

Con el fin de tomar el control sobre las propiedades que desee almacenar en memoria caché puede llamar 'RefreshCache ()" pasar de las propiedades que desea colgar alrededor de:

System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry();               

// Push the property values from AD back to cache.

entry.RefreshCache(new string[] {"cn", "www" });

Otros consejos

Active Directory es bastante eficiente en el almacenamiento de la información y de la recuperación de información no debería ser un gran impacto en el rendimiento.Si realmente la intención de almacenar los nombres, es probable que desee almacenar en una especie de árbol de la estructura, así que usted puede ver las relaciones de todas las personas.Dependiendo de cómo el número de personas, puedes tirar así toda la información que necesita a diario y, a continuación, consulta todas las peticiones en contra de su copia en la caché.

AD ¿que tipo de almacenamiento en caché para usted, así que no te preocupes a menos que el rendimiento se convierte en un problema.He software haciendo este tipo de cosas todo el día corriendo en una intranet corporativa que tiene miles de visitas por hora y nunca han tenido que ajustar el rendimiento en esta área.

Depende de la fecha en que usted desea que la información pueda ser.Si debe tener los últimos datos en su informe, a continuación, consultar directamente desde el ANUNCIO es razonable.Y estoy de acuerdo en que el ANUNCIO es bastante robusto, un típico dedicado servidor de ANUNCIOS es realmente muy a la ligera utilizada en la normal de operaciones del día a día pero lo mejor es consultar con su departamento de TI o la persona de apoyo.

Una alternativa es tener un diario de secuencia de comandos para el volcado de los datos de ANUNCIOS en un archivo CSV y/o importarla en una base de datos SQL.(Oracle tiene una SELECCIONE CONECTAR POR la característica de que se pueden crear automáticamente multi-nivel de las jerarquías dentro de un conjunto de resultados.MSSQL puede hacer algo similar con un poco de recursividad IIRC).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top