Accueil > > > PROTEGER SON APPLICATION, AUTHENTIFICATION PAR COMPTES SYSTÈME [GRACE A ACTIVE DIRECTORY]
PROTEGER SON APPLICATION, AUTHENTIFICATION PAR COMPTES SYSTÈME [GRACE A ACTIVE DIRECTORY]
Information sur la source
Description
Bonjour tout le monde voici une petite application qui effectue une recherche des objets (Comptes utilisateurs humains du système) par des requettes dans AD et permet de lister les noms des comptes ainsi de vérifier les informations de login (Mot de passe) Grace a ce code, on peut proteger nos application par l'authentification intégrée du système d'exploitation.
Source
- 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);
- }
- }
- }
- }
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);
}
}
}
}
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Authentification automatique [ par AnoTreL ]
Bonjour,j'ai crée une authentification LDAP et tout marche parfaitement, mais maintenant je voudrais que l'utilisateur puisse se connecter automatique
authentification LDAP en c# et ASP.NET [ par crapulas ]
Bonjour, j'ai créé une page de connexion pour un site web evec des textbox, label etc... en ASP.NET et avec du c#Il est demandé à la personne de rentr
Treeview : erreur de lecture du fichier XML en authentification intégrée [ par Drix78 ]
Bonjour,après avoir tenté d'exécuter un sample tout bête du webcontrol treeview, avec un fichier XML, je me suis rendu compte qu'il m'était impossible
Authentification en C# [ par sab741 ]
Bonjour,J'ai créé un formulaire avec un login et mot de passe ainsi qu'un bouton Login ( tout simple)!Or tous mes clients ne sont pas dans u
[.NET] [C#] LDAP SunOne error [ par Meuledor ]
Bonjour. J'ai une erreur qui me bloque alors que j'essais d'authentifier des users via ldap sur un serveur Directory SunOne (version inconnue) : <sp
[LDAP] Ajout d'un contact dans l'active directory [ par nerix27 ]
Bonjour,je souhaite faire une appli qui crée automatiquement des contacts smtp dans l'active directory (afin de créér une liste de cont
Conversion requête Ldap d'asp vers asp.net avec C# [ par Jean21 ]
Bonjour, L'un de vous pourra peut être me répondre: j'ai une requête qui fonctionne parfaitement sur une page asp : SET LireLDAP = GetObject("LDAP://
Authentification via dba_users d'oracle [ par winz611 ]
Bonjour, Je voudrais authentifier les utilisateurs d'une appli asp.net en interrogant la table dab_users d'une base oracle. Les mots de passe sont cry
Authentification (identifiant et mot de passe) [ par global1 ]
Bonjour, je débute en C# et j'aimerais ajouter un mot de passe associé à un identifiant qui permettrait de donner accès à l'a
Soap avec authentification [ par hmurielle ]
Bonjour à tous,Je débute totalement en web service. Comment code-t-on dans c# .net pour donner le login et mot de passe à Soap pour pou
|
Derniers Blogs
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|