Synapse LDAPSend库需要username = Domain \ User

时间:2017-06-25 19:06:55

标签: delphi active-directory

我正在使用Synapse LDAPSend.pas库在Active Directory服务器中进行连接和身份验证。代码非常简单直接,但问题是用户名需要“DomainName \ Username”或“Username @ DomainName”格式才能使绑定命令正常工作。无论如何只能使用指定的用户名吗?

var
  ldap: TLDAPsend;
begin
  ldap:= TLDAPsend.Create;
  try
    ldap.TargetHost := '192.168.0.12';
    ldap.UserName:= 'AD\Owner'; //here I need to specify only Owner
    ldap.Password:= 'Password!';
    if ldap.Login then
      if ldap.Bind then
      begin
        //do stuff
        ldap.Logout;
      end;
  finally
    ldap.Free;
  end;
end;

我在考虑类似“* \ Owner”或者Active Directory中的任何其他命令以使其有效?或者也许是Synapse设置。

1 个答案:

答案 0 :(得分:0)

如果当前用户登录到域,则有多种选项可用于检索域名。最简单的方法是使用函数SysUtils.GetEnvironmentVariable读取环境变量USERDOMAIN。 Windows NT上还提供了Windows API函数NetWkstaUserGetInfo以及Windows 2000中引入的GetUserNameEx以及其他许多函数,这些函数通常更难使用。

如果您的Delphi版本不包含这些API函数的声明,请使用Jedi Windows API headers