Quel est le moyen le plus simple et le plus efficace en C# de vérifier si un nom de compte d'utilisateur Windows existe? C'est dans un environnement de domaine.Comment vérifier si le nom de compte d'utilisateur Windows existe dans le domaine?
- Entrée: nom d'utilisateur dans [domaine]/[utilisateur] le format (par exemple "mycompany \ bob")
- Sortie: Vrai si le nom d'utilisateur existe, false sinon.
Je n'ai trouvé this article mais les exemples y sont liés à l'authentification et la manipulation des comptes d'utilisateurs, et ils supposent que vous avez déjà un nom d'utilisateur distingué, alors que je commence avec le nom du compte utilisateur.
Je suis sûr que je peux comprendre cela en utilisant AD, mais avant que je le fais, je me demandais s'il y a une simple API de plus haut niveau qui fait ce dont j'ai besoin.
* MISE À JOUR *
Il y a probablement plusieurs façons de faire, Russ a affiché qui pourrait fonctionner, mais je ne pouvais pas comprendre comment modifier à travailler dans mon environnement. J'ai trouvé une approche différente, en utilisant le fournisseur WinNT qui a fait le travail pour moi:
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;
}
}
post-scriptum Pour ceux qui ne connaissent pas l'API utilisée ci-dessus: vous devez ajouter une référence à System.DirectoryServices pour l'utiliser.
Le lien que j'ai trouvé m'a aidé avec ceci: How Can I Get User Information Using ADSI Les exemples utilisent ADSI mais peuvent également être appliqués à .NET DirectoryServices. Ils démontrent également d'autres propriétés de l'objet utilisateur qui peuvent être utiles.
amour la nouvelle version, super rapide et exactement ce dont j'avais besoin. Merci! –