J'utilise cette méthode dans mon application intranet, pour récupérer l'utilisateur courant :
domainAndUserName = HttpContext.Current.User.Identity.Name
Ce petit bout de code nous donne le nom de domaine et l'utilisateur connecté via l'identification windows, ensuite, j'ai splitté le résultat pour pouvoir utiliser le domaine et le username indépendament :
1 2 3
| domainAndUserName = HttpContext.Current.User.Identity.Name.Split('\\');
domain = domainAndUserName[0].ToString();
userName = domainAndUserName[1].ToString(); |
Enfin, grâce à Active Directory et aux lignes ci-dessus, on peut aisément récupérer les informations listés sur le serveur :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| try
{
// Connexion à Active Directory avec un samAccountName et un password valide
// recherche de l'utilisateur actuel via son samAccountName et affichage de ses informations
DirectoryEntry ldap = new DirectoryEntry("LDAP://votreCheminLDAP", "unUserName", "leMdpCorrespondant");
DirectorySearcher _searcher = new DirectorySearcher(ldap);
// on filtre les résultats pour récupérer les infos de notre utilisateur actuel
_searcher.Filter = "(&(objectClass=user) (samAccountName=" + userName + "))";
SearchResult _result = _searcher.FindOne();
DirectoryEntry _entry = _result.GetDirectoryEntry();
// enfin, on récupères les informations contenues dans l'AD, ici j'ai pris le commonName
cn = _entry.Properties["cn"].Value.ToString();
Label1.Text = "Bienvenue " + _entry.Properties["cn"].Value;
}
catch (Exception ex)
{
Label1.Text = ex.Message;
} |
Partager