begin process at 2010 03 19 06:48:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

récupérer infos ActiveDirectory pour utilisateur courant


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

récupérer infos ActiveDirectory pour utilisateur courant

mercredi 9 mai 2007 à 11:39:05 | récupérer infos ActiveDirectory pour utilisateur courant

Onizukasan

Bonjour à tous,

tout d'abord j'utilise Visual Studio .NET 2003 et framework 1.1

je souhaite mettre en place une gestion des droits d'accès sur une application web.
les utilisateurs étant déjà identifiés (ils ont déjà entrés leurs identifiants sur windows
et sont référencés sous Active Directory implanté sur le réseau Intranet),
il n'est donc pas nécessaire de les faire retaper des mots de passe à l'arrivée sur le site.
Ainsi je souhaite pour établir un controle transparent pour l'utilisateur. Je souhaite récupérer les données de l'utilisateur qui se connecte, notamment son login Active Directory (le SAMAccountName si je ne me trompe pas).
Or tout ce que j'ai trouvé au sujet d'active directory et de diverses méthodes d'accès
à celui-ci permet de manipuler les entrées active directory mais pas d'obtenir les
informations que je souhaite pour l'utilisateur courant.

Existe il des méthodes ou des propriétés issues du framework ou du server IIS pour obtenir le login Active Directory de l'utilisateur connecté ? ( genre System.Environment.UserName )

L'espace de noms System.DirectoryServices me permettrait-il de résoudre mon problème ou
ne sert-il qu'à effectuer des recherches et à manipuler les entrées AD ?

En esperant que tout cela vous inspire et merci de m'avoir lu en tout cas.

mercredi 9 mai 2007 à 13:29:34 | Re : récupérer infos ActiveDirectory pour utilisateur courant

zuff

Je travail pas mal avec Active directory pour les applis Intranet donc voici une premier code pour récuperer l'indentifiant window (attention il y a une case à cocher sur IIS pour pouvoir récupere les ServerVariables):

Dim
user As String

' Authentification Digest sur iis
user = Request.ServerVariables( "REMOTE_USER" )
Dim RecupUser() As String
RecupUser = user.Split( "\" )
user = RecupUser(RecupUser.Length - 1)

Ensuite j'ai une classe ActiveDirectory que je déclare ensuite

Dim objPersonne AsNew clsActiveDirectory (user)

' verif les autorisations
If objPersonne.AppartientA(user, WebConfigurationManager.AppSettings("Applicatif").ToString) = FalseThen
   
Response.Redirect("Refus.aspx")
EndIf

cette vérif permet de savoir si la personne appartient au groupe d'utilisateurs qui ont droit d'utiliser l'appli Intranet.

voici pour info mes 2 méthodes utilisées de ma classe :

PublicSub New(ByVal LeLogin AsString)

' Cherche les Informations Sur le Compte suivant le Login Transmis
Dim searcher AsNew DirectorySearcher(rootEntry)

' Mettre ici les valeurs des différents attributs
searcher.PropertiesToLoad.Add("cn")
searcher.PropertiesToLoad.Add(
"givenname")
searcher.PropertiesToLoad.Add(
"sn")

searcher.Filter =

"(&(anr=" & LeLogin & ")(objectCategory=person))"

Dim results As SearchResultCollection
results = searcher.FindAll()

If results.Count > 0 Then
   
Dim result As SearchResult
   
ForEach result In results
      LoginRecherche =
CStr(result.Properties("cn")(0)).ToUpper
      CheminPersonneRecherche =
CStr(result.Path)   

      
Try
         
NomRecherche = Trim(CStr(result.Properties("sn")(0))).ToUpper
      
Catch ex As Exception
         NomRecherche =
""
      
EndTry

      
Try
         
PrenomRecherche = Trim(CStr(result.Properties("givenname")(0)))
      
Catch ex As Exception
         PrenomRecherche =
""
      
EndTry

   Next
EndIf

EndSub



PublicFunction AppartientA(ByVal LeLogin AsString, ByVal NomGroupe AsString) AsBoolean
   
' recherche les groupes de la personne
   
Dim searcher AsNew DirectorySearcher(rootEntry)

   searcher.PropertiesToLoad.Add(
"memberOf")
   searcher.Filter =
"(&(anr=" & LeLogin & ")(objectCategory=person))"

   Dim results As SearchResultCollection
   results = searcher.FindAll()
   
   
Try
      
If results.Count > 0 Then
         
Dim result As SearchResult
         
ForEach result In results
            
Dim NbCollection AsInteger
            
NbCollection = result.Properties("memberOf").Count
            
For i AsInteger = 0 To NbCollection - 1
               
Dim CheminGroupe AsString = Trim(CStr(result.Properties("memberOf")(i)))
               
If CheminGroupe.IndexOf(WebConfigurationManager.AppSettings("LDAPGroupes").ToString) >= 0 Then
                  
CheminGroupe = "LDAP://" & CheminGroupe
                  
Dim groupEntry As DirectoryEntry = New DirectoryEntry(CheminGroupe)
                  
' renvoi oui s'il appartient au groupe
                  
If groupEntry.Name.IndexOf(NomGroupe) >= 0 Then
                     
ReturnTrue
                  
EndIf
               
EndIf
            
Next
         
Next
      
EndIf
   Catch ex As Exception
   EndTry

   
ReturnFalse
EndFunction





 
lundi 28 juillet 2008 à 08:19:29 | Re : récupérer infos ActiveDirectory pour utilisateur courant

Djodu69

Bonjour,

Ton code est fort intéressant et va dans le sens de ma recherche.
As ton avis est il aussi possible de gérer des droits avec les groupes d'AD, notamment sur des objets "menu" ?

Merci par avance
lundi 28 juillet 2008 à 09:07:26 | Re : récupérer infos ActiveDirectory pour utilisateur courant

Djodu69

Autre souci. VS2008 ne reconnais pas le clsActiveDirectory de "Dim objPersonne As New clsActiveDirectory(utilisateur)" Y-a t'il un namespace spécifique a importer ?
lundi 28 juillet 2008 à 10:30:16 | Re : récupérer infos ActiveDirectory pour utilisateur courant

zuff

Excuse, clsActiveDirectory est une classe que j'ai créé dans App_Code car je fais beaucoup de chose avec l'Active Directory.

Pour ta classe, il faut :

Imports

System.Web.Configuration
Imports System.DirectoryServices


et le DirectoryServices doit être monté dans ton web.config en rajoutant la référence .Net.

Pour les droits pas de problème avec les groupes, personnellement c'est ce que je fais avec mes applicatifs Intranet.
lundi 28 juillet 2008 à 13:56:28 | Re : récupérer infos ActiveDirectory pour utilisateur courant

Djodu69

Finalement je suis passé par le code de Microsoft.
Merci de ton aide quand même
lundi 28 juillet 2008 à 14:26:25 | Re : récupérer infos ActiveDirectory pour utilisateur courant

Djodu69

Mon problème maintenant est comment gérer les rôles et les droits pour les utilisateurs ?
Sachant que j'ai un menu créé sur une base xml (sitemap) et que donc mes utilisateurs sont stockés sur l'AD ?

merci par avance
jeudi 31 juillet 2008 à 08:10:55 | Re : récupérer infos ActiveDirectory pour utilisateur courant


Cette discussion est classée dans : récupérer, utilisateur, souhaite, active, directory


Répondre à ce message

Sujets en rapport avec ce message

Groupes Active Directory [ par arkel ] Salut,J'essaie de récupérer la liste des membres qui composent un groupe de l'Active Directory Windows 2000.... mais j'ai quelques petits problèmes.Po informations sur un utilisateur dans l'active directory de Win2000 [ par stefdef ] Comment fait-on pour récupérer par exemple l'email d'un utilisateur précis dans l'active directory???(je suis débutant en asp, alors merci d'etre clai Utilisateur "Inactif" sur Active directory [ par neferti ] Bonjour,Je suis actuellement en stage et je souhaiterais savoir s'il est possible de mettre un objet de la classe User en statut inactif et de l'activ Récupérer les groupes d'Active Directory avec ASP.Net [ par komisarek ] BonjourJ'aimerais savoir comment récupérer les groupes d'Active Directory avec ASP.NET.Je trouve beaucoup d'infos sur le sujet en ce qui concerne les ADSI (Active Directory) : Récupérer Nom du "Manager" d'un groupe [ par Boreux ] Active Directory Role [ par jostag ] Bonjour a tous,je fais présentement mon travail de fin de DEC en programmation et j'ai décidé de faire un projet asp.net (vb ou c#, j'ai pas encore ch Active directory the serveur is not operationnal [ par jostag ] Bonjour,j'ai une application web créé en vb.net 2003.Dans cette application, il est question d'authentification d'utilisateur a partir de l'active dir sharepoint [ par pathy03 ] Bonjour c'est patick  je suis entrain de faire un travail sur le sharepoint et jusque la je ne parviens pas a comprendre comment est ce que on peut a Enregistrement dans Active directory [ par Cipoli ] Bonjour à tous, Je suis très embêté, je ne trouve aucun document concernant la création d'un enregistrement dans l'Active directory de microsoft 2003 Popup récuperer temps selectionné [ par furion01 ] Bonsoir,Je code une application web qui trace des courbes en asp et je doit récupérer deuxtemps que l'utilisateur choisi correspondant a la date de dé


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,449 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales