Delphi域用户登录验证的代码不起作用 这段程序中没有看到做用户名和密码验证的方法,那个checkLogin也只是一个赋值的方法。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个代码确实很莫名其妙,判断是否登录是这样判断:oADSI := GetObject(C_WINNT_ROOT);oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, sUser, sPassword, 0);这个判断我总觉得似乎不靠谱。不知道大家是否有其他判断域登录的方式? 这个代码确实很莫名其妙,判断是否登录是这样判断:oADSI := GetObject(C_WINNT_ROOT);oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, sUser, sPassword, 0);这个判断我总觉得似乎不靠谱。不知道大家是否有其他判断域登录的方式?楼上的,你也是搞delphi的吗?求指点啊,刚入门。。 顶上去目前的解决方案是用Windows自带功能LogonUserA,但是发现了一个问题:该功能只能通过本机进行验证,而无法指定域服务器进行验证。不知道有其他解决办法么? 顶上去。目前考虑用IIS的集成WINDOWS验证功能,做一个网页,Delphi发送用户名和密码去验证,获取验证结果。但是查不到Indy如何登录集成Windows验证的网页的资料。不知道哪位大侠可以提供?谢谢! 把oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, sUser, sPassword, 0);改成oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, UserName, sPassword, 0);测试成功!另外使用LDAP速度更快:function TADLogin.GetCanLogin2: Boolean;const C_WINNT_ROOT = 'LDAP:';var oADSI, oIIS: Variant; sUser, sPassword: string;begin Result := inherited GetCanLogin; try sUser := DomainName + '\' + UserName; sPassword := UserPassword; oADSI := GetObject(C_WINNT_ROOT); oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, UserName, sPassword, 0); Result := True; except on E: Exception do begin FErrorMsg := E.Message; end; end;end; 在线等待, 为啥放进线程中就不行了? 一个技术问题 急问一个fastReport的问题!请大家帮忙!谢谢!!! 今天生日,可刚毕业在外面找到工作,没人帮我庆祝,郁闷啊,散分 TForm的Create都参数重载问题 高分求围棋规则实现算法。 关于屏保 【求助】D2010编译的程序在部分WINXP电脑上运行出错 请问高手,在代码编辑器里,怎样实现一大段代码的右移缩进? 怎么实现NT的 net send 命令的功能 关于自定义消息的问题 打开form的名称怎么新加入MainMenu
oADSI := GetObject(C_WINNT_ROOT);
oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, sUser, sPassword, 0);
这个判断我总觉得似乎不靠谱。
不知道大家是否有其他判断域登录的方式?
oADSI := GetObject(C_WINNT_ROOT);
oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, sUser, sPassword, 0);
这个判断我总觉得似乎不靠谱。
不知道大家是否有其他判断域登录的方式?
楼上的,你也是搞delphi的吗?求指点啊,刚入门。。
目前的解决方案是用Windows自带功能LogonUserA,但是发现了一个问题:该功能只能通过本机进行验证,而无法指定域服务器进行验证。
不知道有其他解决办法么?
目前考虑用IIS的集成WINDOWS验证功能,做一个网页,Delphi发送用户名和密码去验证,获取验证结果。
但是查不到Indy如何登录集成Windows验证的网页的资料。不知道哪位大侠可以提供?谢谢!
oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, sUser, sPassword, 0);
改成
oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, UserName, sPassword, 0);
测试成功!另外使用LDAP速度更快:
function TADLogin.GetCanLogin2: Boolean;
const
C_WINNT_ROOT = 'LDAP:';
var
oADSI, oIIS: Variant;
sUser, sPassword: string;
begin
Result := inherited GetCanLogin;
try
sUser := DomainName + '\' + UserName;
sPassword := UserPassword;
oADSI := GetObject(C_WINNT_ROOT);
oIIS := oADSI.OpenDSObject(C_WINNT_ROOT + '//' + DomainName, UserName, sPassword, 0);
Result := True;
except
on E: Exception do
begin
FErrorMsg := E.Message;
end;
end;
end;