La détermination d'un Utilisateur de l'Appartenance au Groupe à l'aide de VBA
Comment puis-je déterminer si un utilisateur, dans le dire de l'Accès, est un membre d'un Groupe de Sécurité Active Directory?
Je préfère ne pas la construction d'un système d'authentification dans ma petite Access DB.
Grâce
OriginalL'auteur Allain Lalonde | 2009-01-06
Vous devez vous connecter pour publier un commentaire.
Allain trouvé ce en ligne
Vous pouvez obtenir le compte Windows de l'info par le biais de la
USERDOMAIN
etUSERNAME
des variables d'environnement:Mettant tous ensemble:
Cette réponse n'est pas vraiment ma liée -- c'est juste un bon vieux NTFS groupes. AD a des choses comme les Unités d'Organisation qui ne sont pas une partie de NTFS et accessible uniquement via des requêtes LDAP.
Je vous déconseillons d'utiliser les variables d'Environnement pour le nom d'utilisateur et de domaine de l'utilisateur: ils sont des paramètres locaux et ils peuvent être modifiés. L'interrogation du Réseau Windows vous demande d'Active Directory et le Serveur de Domaine qui vous êtes et où vous êtes, et c'est un peu plus fiable.
Pour des précisions sur Nigels commentaire, GetCurrentUser = CreateObject("WScript.Réseau").Nom D'Utilisateur GetCurrentDomain = CreateObject("WScript.Réseau").UserDomain
OriginalL'auteur Patrick Cuff
Je suis en retard pour le jeu, mais le code que vous avez besoin est ci-dessous. Il obtient les noms d'utilisateur et les noms de domaine pour vous.
Remarque que je ne suis pas en utilisant objGroup.Ismember qui est en fait la bonne méthode à utiliser - je suis l'énumération de la liste des groupes dont l'utilisateur est en, car il est beaucoup plus facile à déboguer et il n'est pas sensible de la performance.
...Et j'ai levé le code à partir d'un projet antérieur, dans lequel j'avais besoin de vérifier l'appartenance à une "Lecture des Rapports de groupe, une" Modifier les Données "du Groupe, et une" Modifier les Données du Système de groupe, afin que je puisse choisir les commandes pour activer et qui constitue pour l'ouvrir en lecture seule. L'énumération des groupes a été plus rapide que trois contrôles.
Nous espérons que cette présentation tardive est de l'utiliser à d'autres développeurs: quand j'ai regardé pour la première fois, en 2003, c'était comme si personne n'avait jamais utilisé groupes d'ANNONCES dans Excel ou MS-Access.
Un point à noter: si votre nom d'utilisateur a les appartenances à un groupe géré par plusieurs serveurs dans différents fuseaux horaires, je travaille pour des clients où cela est vrai pour les employés avec des profils dans deux ou plusieurs offices - vous verrez que d'une itération à travers tous les groupes de prendre plusieurs secondes. Dans ces cas objGroup.Ismember est le chemin à parcourir. Je vous demande instamment de ne pas utiliser les locaux de cacher les groupes de l'utilisateur de la liste, bien que cela soit tentant, il peut être quand vous avez besoin de vérifier à plusieurs reprises, ce qui est très mauvaise pratique en matière de sécurité.
OriginalL'auteur Nigel Heffernan
Trouvé ce en ligne
Maintenant, je n'ai besoin que le nom du compte de l'utilisateur actuel. Trop mauvais
Application.CurrentUser
ne veut pas me donner leur nom du Compte de Domaine.Pas de problème. J'ai eu bats avec ce problème depuis quelques semaines à la fin de décembre et appris la plupart de ce de la manière forte. Je vous recommande un livre à ce type de question: "L' .NET Guide du Développeur pour le Répertoire des Services de Programmation"
OriginalL'auteur Allain Lalonde