gpt4 book ai didi

delphi - 根据工作组服务器检查用户凭据

转载 作者:行者123 更新时间:2023-12-03 15:25:30 24 4
gpt4 key购买 nike

我的应用程序将在 LAN 上的客户端桌面计算机上使用。在这个局域网中,有一台专用的Windows 2k 服务器。没有广告。

用户必须填写服务器的用户帐户信息,以便应用程序可以使用此帐户执行一些远程操作(映射网络驱动器)

如何根据该服务器检查用户凭据?

映射驱动程序时,如果用户帐户身份验证不正确,我会收到错误消息,但我希望在尝试映射之前获得此信息。

类似 LogonUser API 函数,但在远程计算机上工作。

谢谢

最佳答案

您可以使用WNetUseConnection带有 CONNECT_INTERACTIVECONNECT_PROMPT 标志的函数。当您输入正确的凭据时,这将与空的用户 ID 和密码参数结合调用凭据对话框并连接到网络资源:

procedure TForm1.Button1Click(Sender: TObject);
var
BufferSize: DWORD;
ResultFlag: DWORD;
NetResource: TNetResource;
begin
NetResource.dwType := RESOURCETYPE_DISK;
NetResource.lpLocalName := nil;
NetResource.lpRemoteName := '\\MySuperSecret\Place';
NetResource.lpProvider := nil;
if WNetUseConnection(Handle, NetResource, nil, nil, CONNECT_INTERACTIVE or
CONNECT_PROMPT, nil, BufferSize, ResultFlag) = NO_ERROR
then
ShowMessage('Connected!');
end;

要连接到网络资源而不提示输入凭据,请删除上面指定的标志,如以下函数所示,当连接成功时,该函数应返回 True,当连接失败时,应返回 False。参数说明如下:

  • RemoteName(字符串)- 远程网络名称
  • UserName(字符串)- 用于连接到网络资源的用户名
  • 密码(字符串)- 用于连接网络资源的密码

function TryConnect(const RemoteName, UserName, Password: string): Boolean;
var
BufferSize: DWORD;
ResultFlag: DWORD;
NetResource: TNetResource;
begin
NetResource.dwType := RESOURCETYPE_DISK;
NetResource.lpLocalName := nil;
NetResource.lpRemoteName := PChar(RemoteName);
NetResource.lpProvider := nil;
Result := WNetUseConnection(0, NetResource, PChar(UserName), PChar(Password),
0, nil, BufferSize, ResultFlag) = NO_ERROR;
end;

关于delphi - 根据工作组服务器检查用户凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com