Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
Delphi 12 Athens
|
InternetOpenURL funktioniert nicht aus Freigabe
30. Aug 2010, 16:16
Hallo, ich verwende folgende Funktion zur Prüfung einer URL:
Delphi-Quellcode:
function IsUrlValid(const sUrl: string): Boolean;
var hInet, hConnect: HINTERNET;
StatusCode, dummy, bufLen, Option: DWORD;
begin
Result := False;
hInet := InternetOpen(PChar(Application.Title),
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,nil,nil,0);
if Assigned(hInet) then
try
Option := FCheckTimeout;
InternetSetOption(hInet,INTERNET_OPTION_CONNECT_TIMEOUT,@Option,SizeOf(Option));
InternetSetOption(hInet,INTERNET_OPTION_RECEIVE_TIMEOUT,@Option,SizeOf(Option));
hConnect := InternetOpenUrl(hInet,PChar(trim(sUrl)),nil,0,
INTERNET_FLAG_NO_UI,0);
if Assigned(hConnect) then
try
dummy := 0;
bufLen := SizeOf(StatusCode);
if HttpQueryInfo(hConnect,HTTP_QUERY_STATUS_CODE or HTTP_QUERY_FLAG_NUMBER,
@StatusCode,bufLen,dummy) then
//Statuscode 200 = alles OK
Result := StatusCode = 200;
finally
InternetCloseHandle(hConnect);
end
{$IFDEF Fehlersuche}
else
MessageBox(0,PChar('InternetOpenUrl-Fehler: ' + inttostr(GetLastError)),nil,0)
{$ENDIF};
finally
InternetCloseHandle(hInet);
end
{$IFDEF Fehlersuche}
else
MessageBox(0,PChar('InternetOpen-Fehler: ' + inttostr(GetLastError)),nil,0)
{$ENDIF};
end;
Nun musste ich feststellen, dass InternetOpenUrl nil zurückgibt, wenn das Kompilat aus einer Netzwerk-Freigabe heraus mit eingeschränkten Benutzerrechten aufgerufen wird. Je nachdem, was ich versuche, bekomme ich 12002(Timeout), 12007(DNS-Name konnte nicht aufgelöst werden) oder 12029(keine Verbindung zum Server) als Fehlercode zurück. Lokal klappt alles wie gewünscht, auch als Administrator gestartet gibt es keine Probleme, es scheint sich also definitiv um ein Sicherheitsproblem zu handeln. Hat jemand einen Ansatz für mich, was ich wo ändern muss (Gruppenrichtlinien, Sicherheitseinstellungen des IE, oder was weiß ich), ohne allzugroße Sicherheitslücken reißen zu müssen? Das Programm grundsätzlich als Admin zu starten ist übrigens keine Option
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|