Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 在MS Access 2007中使用Active Directory/Windows身份验证对用户进行身份验证_Winforms_Ms Access_Ms Access 2007 - Fatal编程技术网

Winforms 在MS Access 2007中使用Active Directory/Windows身份验证对用户进行身份验证

Winforms 在MS Access 2007中使用Active Directory/Windows身份验证对用户进行身份验证,winforms,ms-access,ms-access-2007,Winforms,Ms Access,Ms Access 2007,我们的应用程序是基于MSAccess 2007构建的。我们想为这个应用程序添加一个新的用户登录概念。 我想使用Active Directory/Windows身份验证对用户进行身份验证。我想为此用户创建一个日志文件。就像我们对使用表单身份验证的.net应用程序所做的那样 我如何在MS Access 2007上做到这一点 此外,此应用程序运行24小时,不会关闭。可以有多个用户使用此应用程序。 正如我所说,这个应用程序是全天候使用的,有多个班次运行,不同的用户登录和注销。 在用户登录和注销会话期间,

我们的应用程序是基于MSAccess 2007构建的。我们想为这个应用程序添加一个新的用户登录概念。 我想使用Active Directory/Windows身份验证对用户进行身份验证。我想为此用户创建一个日志文件。就像我们对使用表单身份验证的.net应用程序所做的那样 我如何在MS Access 2007上做到这一点

此外,此应用程序运行24小时,不会关闭。可以有多个用户使用此应用程序。 正如我所说,这个应用程序是全天候使用的,有多个班次运行,不同的用户登录和注销。 在用户登录和注销会话期间,我们需要跟踪特定用户的日志。 此应用程序使用SQL server 2005作为数据库服务器。
您的建议对我很有帮助,在MS Access 2007上开发此类模块

由于用户必须登录到电脑,因此您只需使用以下代码获取他们的登录信息:

'这段代码最初是由Dev Ashish编写的。 "不得涂改,不得散发,, “除了作为申请的一部分。 “您可以在任何应用程序中自由使用它, '前提是版权声明保持不变。 ' “代码由 “德夫·阿希什 ' 私有声明函数apiGetUserName Lib advapi32.dll别名_ GetUserNameA ByVal lpBuffer作为字符串,nSize作为Long作为Long 函数fOSUserName作为字符串 '返回网络登录名 暗谷一样长,lngX一样长 Dim strUserName作为字符串 strUserName=字符串$254,0 lngLen=255 lngX=apiGetUserNamestrUserName,lngLen 如果lngX>0,则 fOSUserName=左$strUserName,lngLen-1 其他的 fOSUserName=vbNullString 如果结束 端函数 下面是一个vbs脚本,但它在Access中也可以正常工作:

可以运行以下代码来显示 Active Directory组,并让您知道每个成员的LDAP 尊贵的名字。输出将文本文件命名为组名 并将包括活动中的所有成员及其位置 目录只需将其复制到txt文件并重命名为.vbs即可

设置objGroup=GetObject“LDAP://cn=GroupName,ou=OUName,DC=DomainName,DC=local” 设置objFileSystem=CreateObject“Scripting.FileSystemObject” 设置objFile=objFileSystem.OpenTextFileobjGroup.Get“name”和“-Members.txt”,2,True,0 对于objGroup.Members中的每个objMember objFile.WriteLine objMember.Get“sAMAccountName”&VbTab&_ objMember.Get“cn”&VbTab&_ objMember.Parent 下一个 设置objFile=Nothing 设置objFileSystem=Nothing Set objGroup=Nothing 在C.Net中使用

Console.WriteLine("UserName: {0}", Environment.UserName);

我不相信你能做到你所要求的。使用Windows用户登录广告并不是什么特别的事情——它只是NTFS用户/安全的一个UI,你必须强迫用户注销Windows并重新登录。旧版本的Access也有同样的问题:可能相关:谢谢你Albert D.Kallal。它的工作非常棒。是的,我真的想知道w网络用户ID。我可以在用户登录和注销时记录详细信息。谢谢,这是一个很大的帮助。我们也可以像在.net环境中一样在Access中维护会话超时吗。