【发布时间】:2011-10-07 13:32:05
【问题描述】:
如何打开需要“http 身份验证”的url(浏览器窗口)以透明的方式传递登录名和密码? delphi 中的旧版应用程序需要从 Reporting Services 打开“.aspx”中的报表。
谢谢,塞尔索
【问题讨论】:
标签: delphi http http-authentication delphi-5
如何打开需要“http 身份验证”的url(浏览器窗口)以透明的方式传递登录名和密码? delphi 中的旧版应用程序需要从 Reporting Services 打开“.aspx”中的报表。
谢谢,塞尔索
【问题讨论】:
标签: delphi http http-authentication delphi-5
使用 Indy TidHTTP 组件,因为它可以轻松处理身份验证要求。将组件放在表单上,然后:
IdHTTP1.Request.UserName := 'xxx';
IdHTTP1.Request.Password := 'xxx';
IdHTTP1.Get(x);
我相信这适用于您可能拥有的任何 Indy 版本。
【讨论】:
可以使用WinHTTP,查看IWinHttpRequest.SetCredentials方法
检查此示例
uses
Variants,
SysUtils,
WinHttp_TLB;
Const
HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0;
Var
Http: IWinHttpRequest;
begin
try
Http := CoWinHttpRequest.Create;
try
Http.Open('GET', 'http://Foo.com/home', False);
Http.SetCredentials('AUser','APassword', HTTPREQUEST_SETCREDENTIALS_FOR_SERVER);
Http.Send(EmptyParam);
//Do your stuff
finally
Http:=nil;
end;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
【讨论】:
如果可以接受,您可以只在其中包含用户名和密码的 URL。
【讨论】: