¿Cuál es la forma más simple y más eficiente en C# para verificar si existe un nombre de cuenta de usuario de Windows? Esto es en un entorno de dominio.¿Cómo comprobar si el nombre de la cuenta de usuario de Windows existe en el dominio?
- de entrada: nombre de usuario en [dominio]/[usuario] formato (por ejemplo, "miempresa \ bob")
- Salida: Verdadero si existe el nombre de usuario, falso en caso contrario.
he encontrado this article pero los ejemplos no están relacionados con la autenticación y la manipulación de las cuentas de usuario, y se supone que ya tiene un nombre completo del usuario, mientras que yo estoy empezando con el nombre de cuenta de usuario.
Estoy seguro de que puedo resolver esto usando AD, pero antes de hacerlo me preguntaba si existe una API de nivel superior que haga lo que necesito.
* ACTUALIZACIÓN *
Probablemente hay muchas maneras de hacer esto, Russ registró una que podría funcionar, pero no pude encontrar la manera de ajustar para que funcione en mi entorno. Lo que encontrar un enfoque diferente, utilizando el proveedor de WinNT que hizo el trabajo para mí:
public static bool UserInDomain(string username, string domain)
{
string path = String.Format("WinNT://{0}/{1},user", domain, username);
try
{
DirectoryEntry.Exists(path);
return true;
}
catch (Exception)
{
// For WinNT provider DirectoryEntry.Exists throws an exception
// instead of returning false so we need to trap it.
return false;
}
}
P. S. Para aquellos que no están familiarizados con la API utilizada anteriormente: debe agregar una referencia a System.DirectoryServices para usarla.
El enlace que encontré me ayudó con esto: How Can I Get User Information Using ADSI Los ejemplos usan ADSI pero también se pueden aplicar a .NET DirectoryServices. También demuestran otras propiedades del objeto de usuario que pueden ser útiles.
amor la nueva versión, super rápida y exactamente lo que necesitaba ¡Gracias! –