Soyez le premier à donner votre avis sur cette source.
Vue 13 827 fois - Téléchargée 1 523 fois
using System; using System.DirectoryServices; using System.Management; using System.Windows.Forms; namespace ListeUtilisateursDuSystem { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private void frmMain_Shown(object sender, EventArgs e) { // Lecture des nom d'utilisateurs. GetSystemUsers(); } private void btnClose_Click(object sender, EventArgs e) { //Sortir this.Close(); Application.Exit(); } private void GetSystemUsers() { this.Cursor = Cursors.WaitCursor; try { //Préparation this.lblDomainName.Text = ""; this.lblMachineName.Text = ""; this.cbxUsers.Items.Clear(); //Lecture du nom de domaine string localdomain = GetDomain(); //Lecture du nom de la machine. string localpc = Environment.MachineName; this.lblDomainName.Text += localdomain; this.lblMachineName.Text += localpc; Application.DoEvents(); //Si le nom de domaine est unconnu. if (localdomain == string.Empty) { //L'objet dirEntry est un composant ajouté depuis le toolBox (Juste pour une info de +). this.dirEntry.Path = "WinNT://" + localpc; } else { this.dirEntry.Path = "WinNT://" + localdomain + "/" + localpc; } //Prendre les utilisateurs humains de la machine foreach (DirectoryEntry child in this.dirEntry.Children) { if (child.SchemaClassName == "User") this.cbxUsers.Items.Add(child.Name); } } catch (Exception ex) { MessageBox.Show("Erreur:" + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.Cursor = Cursors.Default; } private string GetDomain() { try { //Requette de recheche sur les informations du système. string squery = "SELECT * FROM Win32_ComputerSystem"; //Création d'un objet Management Searcher. ManagementObjectSearcher mgmtsearch = new ManagementObjectSearcher(squery); //Recherche l'entrée Domain dans la liste des infos système. foreach (ManagementObject item in mgmtsearch.Get()) { return (item["Domain"].ToString()); } return string.Empty; } catch { return string.Empty; } } private void btnConnect_Click(object sender, EventArgs e) { Connect(cbxUsers.Text, txtPassword.Text); } private void Connect(string userName, string password) { try { DirectoryEntry de = new DirectoryEntry("LDAP://localhost/CN=Users;DC=" + lblDomainName.Text, lblDomainName.Text + "/" + userName, password, AuthenticationTypes.Secure); object test = de.NativeObject; // Si cette propriété peut etre lu, donc les informations de connexion sont correctes. MessageBox.Show("Salut " + userName, "Authentication réussite", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch(Exception e) { MessageBox.Show(e.Message, "Erreur:", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
Merci pour votre noble travail, j'ai télécharger l'application mais elle ne marche pas. Je ne sais pas si je dois modifier quelque chose en code ou non.
SVP j'attends votre reponse, et merci d'avance.
sur mon pc , quand j'essaye de faire fonctionner ton application lorsque je me connecte il me dit toujours que le serveur n'est pas opérationnel , je ne comprend pas. quelqu'un pourrais me l'expliquer?
merci
comment tu peut utiliser cette application pour réaliser une authentification unique avec les application oracle(cad après la vérification dans AD ensuite faire une vérification dans OID)
c une application très interréssante pour débuter un projet SSO
ça c'est mieux,
J'ai pas vu cet article sinon, je profite de la fenetre de login du système,
Article tres intéressant
Merci
Plutot que de faire ta propre fenêtre de login, tu peux utiliser celle de windows, Kenny Kerr explique tout ça ici : http://msdn.microsoft.com/fr-fr/library/aa480470.aspx
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.