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; 四个GIF动画? 学艺不精,请教高手啊!SDAC控件为何每隔三秒到数据库取一次数啊?这样一来不是加大服务器访问压力吗,如何解决? dongliu(一沙一世界,一花一天堂) 用户麻烦你进来帮我看一下,非常感激。 delphi里没有能生成随机小数的函数啊? demo验证 TTable.Filter能过滤Alphy类型,而不能过滤Longinteger? 關于dbchart的問題 为什么我的数据显示不出? RadioGroup1 删除 问题 如何用delph监测系统有其他进程启动了,就关机? 关于自定义消息的问题 打开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;