begin process at 2012 05 27 14:42:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Système

 > 

IIS

 > 

Active directory et Dll = problème d'obtention utilisateur


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

Active directory et Dll = problème d'obtention utilisateur

mardi 24 février 2009 à 16:54:49 | Active directory et Dll = problème d'obtention utilisateur

jostag

Bonjour,
je ne suis pas sur d'être a la bonne place pour le message puisque ma question concerne un application web et une non web (une dll), enfin vous me le direz.

Voila je suis présentement en stage et un de mes mandats est de modifier l'authentification d'un programme.
À la base l'authentification se fessais en novell et un début de active directory, conçu par un étudiant cette méthode d'authentification cause des problèmes.
Maintenant, il faut que je modifies le code pour que ce sois uniquement avec active directory.

L'application de base a été faite en vb.net avec Visual studio 2003.

En fais le code est dans une dll, avec une classe utilisateur.vb qui sert a faire la découverte de l'utilisateurcourant et une classe activedirectory.vb qui interroge l'active directory directement.
----------------------------------------------------------------------------------------------------------------------
Dans le web.config de l'application web il y a :
<!-- LIEN VERS ACTIVE DIRECTORY
         Vous devez changer le lien vers le active directory selon vos besoin.
    -->
    <add key="lienAD" value="LDAP://DC=xxxx,DC=xxxx"/>
    <add key="userAD" value="WEBAPP"/>
    <add key="passAD" value="123456"/>
servant de passerelle entre l'application et le active directory.
----------------------------------------------------------------------------------------------------------------------
Ce qui est utilé dans les deux classes mentionner plus haut est ( :
----------------------------------------------------------------------------------------------------------------------
pour ActiveDirectory.vb :
Public Shared Function obtenirListeUtilisateurs() As ArrayList
        obtenirListeUtilisateurs = New ArrayList
        Dim de As DirectoryEntry = New DirectoryEntry(configServeurs.connectionAD, configServeurs.userAD, configServeurs.passAD)
        Dim ds As DirectorySearcher = New DirectorySearcher(de)

        ds.Filter = "(ObjectCategory=Person)"   'Rechercher des personnes
        ds.PropertyNamesOnly = True
        ds.PropertiesToLoad.Add("userPrincipalName")    'Charger le nom d'utilisateur
        ds.PropertiesToLoad.Add("NativeGuid")
        ds.Sort = New SortOption("name", SortDirection.Ascending)   'Trier en ordre alphabétique

        Dim source As SearchResultCollection = ds.FindAll
        For Each sr As SearchResult In source
            Dim util As utilisateurAD
            util.nom = sr.GetDirectoryEntry.Name.Substring(3)   'Nom de l'utilisateur
            util.valeur = sr.GetDirectoryEntry.NativeGuid.ToString  'Numéro d'identification
            obtenirListeUtilisateurs.Add(util)
        Next sr

        de.Close()  'Fermeture de la connexion

        Return obtenirListeUtilisateurs
    End Function
----------------------------------------------------------------------------------------------------------------------
et pour Utilisateur.vb
Public Shared Function utilisateurCourant(ByVal utilisateurEnMemoire As Utilisateur) As Utilisateur
            utilisateurCourant = New Utilisateur

            If Not utilisateurEnMemoire Is Nothing Then
                utilisateurCourant.numero = utilisateurEnMemoire.numero
                utilisateurCourant.nomUtilisateur = utilisateurEnMemoire.nomUtilisateur
                utilisateurCourant.nom = utilisateurEnMemoire.nom
            Else
                Try
                    Dim ds As DirectorySearcher = New DirectorySearcher(New DirectoryEntry(configServeurs.connectionAD, configServeurs.userAD, configServeurs.passAD))
                    ds.Filter = "(|(&(objectCategory=user)(userPrincipalName=" & Principal.WindowsIdentity.GetCurrent.Name.Substring(Principal.WindowsIdentity.GetCurrent.Name.LastIndexOf("\") + 1) & "@*)))"
                    ds.PropertyNamesOnly = True
                    ds.PropertiesToLoad.Add("userPrincipalName")    'Charger le nom d'utilisateur
                    ds.PropertiesToLoad.Add("NativeGuid")

                    Dim source As SearchResult = ds.FindOne
                    Try
                        utilisateurCourant.nomUtilisateur = source.GetDirectoryEntry.Properties("userPrincipalName")(0).ToString
                    Catch ex As Exception
                    End Try
                    Try
                        utilisateurCourant.nom = source.GetDirectoryEntry.Name.Substring(3)    'Nom de l'utilisateur
                    Catch ex As Exception
                    End Try
                    Try
                        utilisateurCourant.numero = source.GetDirectoryEntry.NativeGuid.ToString  'Numéro d'identification
                    Catch ex As Exception
                    End Try
                Catch ex As Exception
                    utilisateurCourant.nom = "Visiteur"
                    utilisateurCourant.nomUtilisateur = "Impossible de s'identifier"
                    utilisateurCourant.numero = ""
                End Try
            End If

            If Not utilisateurCourant.nom = "Visiteur" Then
                Try
                    utilisateurCourant.Groupes = _
                    utilisateurCourant.obtenirGroupesUtilisateur(utilisateurCourant.numero)
                Catch ex As Exception
                    utilisateurCourant.Groupes = Nothing
                End Try
            End If

        End Function

----------------------------------------------------------------------------------------------------------------------

En fait ce qui met demandez c'est de modifier les informations du web.config et de modifier les deux fonctions cité plus haut, tout en gardant leur appel, pour que l'authentification se face avec le login et le pass que les personnes utilisent lors de leur connection sur un ordinateur sans leur demandez lorsqu'il arrive sur la page.

J'ai essayé quelque petit trucs mais je n'ai pas réussi a obtenir l'utilisateur dans la dll (se que selon moi serai le mieux pour ne pas modifier l'appel des fonctions).

Cordialement,

Jo



Cette discussion est classée dans : end, utilisateur, try, ds, utilisateurcourant


Répondre à ce message

Sujets en rapport avec ce message

MonDataGrid [ par hamet ] J'ai créé mon namesspace, à l'intérieur j'ai mis une classe dont je fais hériter du control datagrid, dans mon formulaire je créé un objet avec ma cla datarAdapter et DataSet Global [ par hudon77 ] Salut! Mon application consiste a affficher tous les enregistrement ou encore de faire une recherche...et jai un bouton modifier pour chaque enr affic Probleme active directory asp.net [ par Goldeneye007 ] Sur la page http://www.vbfrance.com/code.aspx?id=31065 se trouve un programme en vb qui vérifie l'utilisateur (nom utilisateur et mot de passe) direct aspx/html vers excel ou autre [ par ap24dp ] salut, j'ai un formulaire qui remplit une bd access. un html qui me permet de lire la bd dans un tableau, mais je souhaite avoir un bouton qui me per Vérifier la valeur du champs avec un autre [ par Goldeneye007 ] Salut,Je voudrai vérifier la valeur d'un champ session ("uid") que j'ai fais apparaitre dans mon formulaire asp.net par le biais d'une zone texte comm Communication Javascript <> Asp.net [ par javajavajava ] Bonjour,J'utilise un calendrier popup en javascript pour choisir une date qui se met ds une textbox javascript aussi. J'ai 2 problemes : 1- qd je raff images ds la base svp [ par hamada143 ] salut tt le mondel'idée géneral est : de stocké l'image dans la base de données (access ou sql server) ,moi j'enregistre le chemin de l'image ds la ba Capture d'URL [ par c_ensias ] Bonjour,J'ai un formulaire à remplir par l'utilisateur comme dans les pages jaunes et je veux que quand l'utilisateur valide que l'URL de la page résu Createuserwizard [ par StephaneNet ] Bonjour, Je decouvre actuellement aspnet 2.0 et j'utilise le controle createuserwizard. J'ai donc utiliser assistant  aspnet_regsql.exe pour creer la GridView et colonne masquée [ par javajavajava ] Bonjour, j'ai un gridview de 4 colonnes dont une masquée (visible = false). J'update les lignes de ce gridview grace a une fonction définie ds un Obje


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,250 sec (3)

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