Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#1

InternetOpenURL funktioniert nicht aus Freigabe

  Alt 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
  Mit Zitat antworten Zitat