Authentifier l'utilisateur en utilisant Active Directory/Windows authentication dans MS Access 2007
nous avons application construite sur MSAccess 2007. Nous voulons ajouter un nouveau concept de login utilisateur pour cette application. Je veux authentifier l'utilisateur en utilisant L'authentification Active Directory/Windows.Je veux créer un fichier journal pour cet utilisateur. (comme nous le faisons pour les applications .net utilisant l'authentification des formulaires) Comment puis-je faire cela sur MS Access 2007.
de plus Cette application fonctionne 24 heures, il ne sera pas Arrêt. Il peut y avoir plusieurs utilisateurs utilisant cette application.
Comme je l'ai dit ce l'application est utilisée 24 heures sur 24, 7 jours sur 7, Il y a plusieurs changements en cours d'exécution et différents utilisateurs se connectent et se déconnectent.
Pendant la session de connexion et de déconnexion de l'utilisateur, nous devons garder une trace de la connexion pour un utilisateur particulier.
Cette application utilise SQL server 2005 comme serveur de base de données.
Votre conseiller est d'une grande aide pour moi, pour développer ce type de module sur MS Access 2007
2 réponses
puisque l'utilisateur doit se connecter au pc, alors vous pouvez simplement saisir leur connexion en utilisant le code de http://www.mvps.org/access/api/api0008.htm :
' This code was originally written by Dev Ashish. ' It is not to be altered or distributed, ' except as part of an application. ' You are free to use it in any application, ' provided the copyright notice is left unchanged. ' ' Code Courtesy of ' Dev Ashish ' Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If ( lngX > 0 ) Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = vbNullString End If End Function
et, ce qui suit est un script vbs, mais il devrait fonctionner dans L'accès très bien aussi:
affiche L'appartenance au groupe et L'emplacement du répertoire actif
le le code suivant peut être exécuté pour afficher l'appartenance au groupe d'un Active Directory group et aussi vous faire connaître le LDAP de chaque membre Nom Unique. La sortie va nommer le fichier texte le nom du groupe et inclura tous les membres et leur emplacement en Répertoire. Il suffit de copier dans un fichier txt et renommer .vbs Profitez-en!
Set objGroup = GetObject(“LDAP://cn=GroupName,ou=OUName,DC=DomainName,DC=local“) Set objFileSystem = CreateObject(“Scripting.FileSystemObject”) Set objFile = objFileSystem.OpenTextFile(objGroup.Get(“name”) & ” – Members.txt“, 2, True, 0) For Each objMember in objGroup.Members objFile.WriteLine objMember.Get(“sAMAccountName”) & VbTab & _ objMember.Get(“cn”) & VbTab & _ objMember.Parent Next Set objFile = Nothing Set objFileSystem = Nothing Set objGroup = Nothing
C#.Net utiliser
Console.WriteLine("UserName: {0}", Environment.UserName);