2008-11-21 28 views
5

¿Hay alguna manera de determinar (.NET preferiblemente) si el usuario actual es una cuenta de usuario de dominio o una cuenta de usuario local?¿Determina si el usuario actual es un dominio o un usuario local?

Antes de tiempo: no sé el nombre de dominio en el que se está ejecutando, así que no puedo buscar DOMINIO \ Nombre de usuario v COMPUTER \ Nombre de usuario.

Parte de la respuesta podría ser determinar el nombre DOMAIN u ORDENADOR del código.

[Editar] Ampliando la respuesta de Asher un fragmento de código sería

private bool isCurrentUserLocalUser() 
{ 
    return Environment.MachineName == Environment.UserDomainName; 
} 
+0

me cambió el código para utilizar la comparación entre mayúsculas y minúsculas, porque Environment.UserDomainName devuelve nombres en minúsculas en algunos entornos ('algunos-PC ') mientras Environment.MachineName está en mayúscula (' SOME-PC ') – mistika

Respuesta

1

puede utilizar Environment.UserDomainName la documentación de MSDN explica el comportamiento exacto de esta propiedad en cada caso (dominio/cuenta local)

Puede usar esta propiedad junto con otras propiedades como Environment.MachineName para averiguar cuál es el tipo de cuenta de usuario que se está utilizando.

Tenga en cuenta que la cuenta de dominio no es necesariamente de Active Directory (puede ser eso Novell Netware)

+1

Esto no funciona porque UserDomainName también le dará nombre de grupo de trabajo, que a menudo es lo mismo que el nombre de la máquina. –

0

Se podría buscar en el nombre de usuario completo, que puede ser < nombre de dominio > \ < nombre de usuario > o < máquina nombre > \ < nombre de usuario > para cuentas de dominio y locales respectivamente. Si la primera parte coincide con el nombre de dominio, obviamente es una cuenta de dominio y ocurre lo contrario.

+0

¿Cómo puedo averiguar programáticamente qué es el nombre de dominio? ¿Cómo puedo saber que es un nombre de dominio y no ese nombre particular de netbios? – Ryan

2

Ver ese puesto y comprobar si se trata de responder a su pregunta

how-do-i-detect-if-my-program-runs-in-an-active-directory-environment

+0

No es exactamente lo mismo (de hecho, q no es claro exactamente lo que se está preguntando - ¿es un entorno publicitario/el usuario actual tiene una cuenta publicitaria/es usuario actual conectado a través de un anuncio, etc.) pero útil de todos modos - gracias – Ryan

Cuestiones relacionadas