IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Groupe utilisateur LDAP ! (VB.net)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Groupe utilisateur LDAP ! (VB.net)
    Bonjour,
    Pour une application, j’ai besoin de récupérer le groupe utilisateur de la session Windows.
    GetUtilisateurGroups(Environment.UserName) {pas le nom de domaine lui je le connais!} affin d’enrichir ma table Gestion de droits dans ma base de données SQL serveur !

    L’idée étant de pouvoir autoriser tel ou tel utilisateur à tout ou partie du programme !

    L’utilisateur ouvre l’application, celle ci va lire dans le LDAP son groupe utilisateur ! Si l’utilisateur est connu, l’application affiche les menus qui le concernent, et masque ceux qui ne le concernent pas ! Il n’est pas question d’énumérer les utilisateurs, mais bien d’identifier l’utilisateur de la session !

    je recherche des lien, de tutoriel et bien avidement de conseils!

    D’avance merci !

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Tu veux quoi exactement :

    - Obtenir les groupes auxquels appartient l'utilisateur de la session en cours ?

    ou

    - Obtenir le nom d'utilisateur de la session en cours ?

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

    Je souhaite intervenir sur un point qui me déplaît lorsque quelqu'un dit obtenir le nom de l'utilisateur de la session en cours en mettant ceci dans son programme :

    C'est FAUX !!!!

    Partant du principe que l'application est exécutée avec le fichier Manifest paramétré sur "AsInvoker", Le nom retourné par la variable est bon.

    Partons du principe que l'application est exécutée sur une session utilisateur avec le fichier Manifest paramétré sur "RequireAdministrator", le nom retourné par la variable ne sera pas le nom de l'utilisateur en cours de session mais celui du compte administrateur qui a fait l'objet de l'élévation !


    Donc selon l'un ou l'autre cas de figure, le nom sera correctement retourné en utilisant cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
            Public Shared Function GetUserName() As String
                Dim buffer As IntPtr = IntPtr.Zero
                Dim count As UInteger = 0
                Dim userName As String = String.Empty
                Try
                    Dim sessionId = WTSGetActiveConsoleSessionId()
                    WTSQuerySessionInformation(IntPtr.Zero, sessionId, WTS_INFO_CLASS.WTSUserName, buffer, count)
                    userName = Marshal.PtrToStringAnsi(buffer).Trim()
                Catch ex As Exception
                Finally
                    WTSFreeMemory(buffer)
                End Try
                Return userName
            End Function
     
            <DllImport("kernel32.dll")>
            Private Shared Function WTSGetActiveConsoleSessionId() As UInteger
            End Function
     
            <DllImport("Wtsapi32.dll")>
            Private Shared Function WTSQuerySessionInformation(hServer As System.IntPtr, sessionId As UInteger, wtsInfoClass As WTS_INFO_CLASS, ByRef ppBuffer As System.IntPtr, ByRef pBytesReturned As UInteger) As Boolean
            End Function
     
            Private Enum WTS_INFO_CLASS
                WTSInitialProgram
                WTSApplicationName
                WTSWorkingDirectory
                WTSOEMId
                WTSSessionId
                WTSUserName '5
                WTSWinStationName
                WTSDomainName '7
                WTSConnectState
                WTSClientBuildNumber
                WTSClientName
                WTSClientDirectory
                WTSClientProductId
                WTSClientHardwareId
                WTSClientAddress
                WTSClientDisplay
                WTSClientProtocolType
                WTSIdleTime
                WTSLogonTime
                WTSIncomingBytes
                WTSOutgoingBytes
                WTSIncomingFrames
                WTSOutgoingFrames
                WTSClientInfo
                WTSSessionInfo
            End Enum
    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour wallace1 et bonjour le forum,

    merci pour ta réponse, mais ce n'est pas ce qui m’intéresse!

    je veux que par apprentissage, connaitre tous les droits d'un utilisateur.

    l'administrateur réseau attribut des droits , une adresse mail et configure un ordinateur pour chaque nouveau arrivant. il ce charge également d'installer les applicatif sur la machine des utilisateur.

    mon programme s'adresse à un panel d'utilisateur dons tout ou parti lui est destine! l'idée étant d'affecter une configuration minimal. à charge au chef de service de déverrouiller tel ou tel fonctionnalités!

    je dois récupérer le UserName, le groupe utilisateur, le nom de la machine connectée ainsi que son adresse Mac!

    afin de réduire les droits aux groupe et/ou l'utilisateur et/ou la machine ; ainsi l'utilisateur 1 du groupe 1 de la machine 1 accédé à la fonction (1,2,3,4) alors qu'il ne dispose que de (1,2) sur la machine 2

    le groupe 2 les fonction (123456789) l'utilisateur 2 fonction (2,4,6,8) la machine 1 pour cette utilisateur la fonction(2,4) alors que pour la machine 2 fonction(2).

    encore merci pour ton aide.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Pas de problème

    Premier point et c'est une affirmation, c'est bien l'administrateur système (et pas l'admin réseau) qui se charge de créer les utilisateurs et d'en modifier les propriétés de compte via l'Active Directory.
    Second point et ce sont des questions :
    - Côté serveur, l'administration se fait-elle en environnement Windows ?
    - ton programme doit il s'exécuter sur le serveur qui a été promu contrôleur de domaine (là où est installé l'Active Directory) ou depuis n'importe quel poste client ?
    - Tu dis que ton programme s'adressera à un panel d'utilisateurs ..... ils auront accès aux outils d'administration ???

    J'avoue ne pas bien comprendre à qui s'adressera ton programme, .... au risque de répondre une fois de plus à côté de la plaque j'attends tes éclaircissements car si ton programme s'exécute sur le dcpromo alors c'est assez simple de récupérer toutes les infos que tu demandes (noms d'utilisateurs, noms et @mac de machines connectées).... en référençant les assemblys "System.DirectoryServices" et "System.DirectoryServices.AccountManagement" ou en usant du pInvoke :

    http://stackoverflow.com/questions/1...tive-directory
    http://www.morgantechspace.com/2014/...n-C-Sharp.html
    https://www.codeproject.com/Articles...er-names-using
    ....aso....

    A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour toutes ces précisions,, oui c'est l'administrateur système qui configure l'actif directory et qui affecte l'utilisateur à un groupe.

    Dans ses package d' installation il choisi le profile bureautique,technicien,administratif ou que sais je pour installer les applicatifs.

    C'est la que j'interviens, a sa première utilisation l'utilisateur lambda n'est pas connue dans la base de données. L'application récence toutes les informations utiles et en fonction de son profile dans l'actif directory se retrouve avec l'accès à certaines fonctionnalités et pas d'autres, l'apprentissage permet dans le temps une configuration quasi automatique!

    Prenons un exemple: Un commercial prospect, il a son ihm de prospection;
    Une commande est passé on entre dans un logique de production (etude,achats,fabrication),livraison;

    On arrive aux statistiques, nous pouvons tracer le processus de A a Z le tout dans le même ERP; même base de données même application mais pas le même niveau de confidentialité.

    Actuellement je trouve le username le nom de la machine et le sid du groupe utilisateur mais c'est moins parlant qu'administrateur par exemple!

    Maintenant si l'application doit interroger le LDAP en administrateur c'est pasun problème.
    Dernière modification par Invité ; 21/12/2016 à 21h17.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    .....

    Dans ses package d' installation il choisi le profile bureautique,technicien,administratif ou que sais je pour installer les applicatifs.
    Il mets en place une GPO pour déployer une application tout simplement, non mais c'est quoi ces profiles bureautique&Co ???? ......

    Citation Envoyé par dysorthographie Voir le message
    C'est la que j'interviens, a sa première utilisation l'utilisateur lambda n'est pas connue dans la base de données.
    Une BDD mais quelle BDD ?????

    L'application récence toutes les informations utiles
    Et c'est quoi ces informations exactement ?

    et en fonction de son profile dans l'actif directory se retrouve avec l'accès à certaines fonctionnalités et pas d'autres,
    Il n'y a pas de notions de profile dans l'AD, va falloir être plus précis sur ce à quoi tu penses.....?? Quelles fonctionnalités par exemple ?


    Citation Envoyé par dysorthographie Voir le message
    Prenons un exemple: Un commercial prospect, il a son ihm de prospection;
    Une commande est passé on entre dans un logique de production (etude,achats,fabrication),livraison;

    On arrive aux statistiques, nous pouvons tracer le processus de A a Z le tout dans le même ERP; même base de données même application mais pas le même niveau de confidentialité.
    Ton exemple n'est vraiment pas clair.....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ldapsearch lister les groupes d'un utilisateur ldap
    Par illegalsene dans le forum Administration système
    Réponses: 0
    Dernier message: 15/01/2014, 16h00
  2. Utilisateurs, groupes et roles asp.net
    Par jeanjean40 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/03/2011, 17h00
  3. [SUPERVISOR]Création de groupes utilisateurs avec superviseur
    Par leelee dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 17/02/2007, 11h32
  4. Listage groupe Utilisateurs AD
    Par pinpin_du_net dans le forum Langage
    Réponses: 2
    Dernier message: 16/08/2006, 18h27
  5. [Sécurité] Selection utilisateur ldap
    Par anto48_4 dans le forum Langage
    Réponses: 13
    Dernier message: 24/03/2006, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo