![]() |
InternetOpenURL funktioniert nicht aus Freigabe
Hallo, ich verwende folgende Funktion zur Prüfung einer URL:
Delphi-Quellcode:
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 :)
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; |
AW: InternetOpenURL funktioniert nicht aus Freigabe
Der Server auf dem das Programm liegt muss im IE in der Gruppe Intranet eingetragen sein sonst geht das nicht
|
AW: InternetOpenURL funktioniert nicht aus Freigabe
Danke, das probiere ich morgen direkt aus (ich hatte es bereits mit "vertrauenswürdige Sites" versucht).
[edit] Irgend etwas mache ich falsch. Ich habe jetzt die komplette Domäne in die Intranet-Zone eingefügt (file://*.domain.local), leider keine Besserung :( [/edit] |
AW: InternetOpenURL funktioniert nicht aus Freigabe
So, ich habe nun folgende Situation:
- der Server einzeln sowie die gesamte Domäne sind in der Zone Intranet eingetragen - der zu kontaktierende Webserver steht in der Zone "Vertrauenswürdige Sites" (soweit komme ich aber ja gar nicht) - das Programm bringt nur als Domänenadmin das gewünschte Ergebnis, als lokaler Admin und erst recht als eingeschränkter Benutzer kommt Fehler 12007 bzw. 12029, je nachdem, ob ich den FQDN oder die IP angebe - im IE aufgerufen kommen weiterhin die bekannten Sicherheitswarnungen (siehe auch ![]() - der Server ist ein Win2003 SBS mit "erweiterten Sicherheitseinstellungen" des IE Ich habe fast den Verdacht, dass der letzte Punkt evtl. für mein Problem ausschlaggebend sein könnte, möchte dort aber vorläufig nicht einfach auf gut Glück "herumpfuschen". Falls jemand meinen Verdacht bestätigen kann oder niemand mehr andere Vorschläge hat, wird mir aber wohl nichts übrig bleiben. |
AW: InternetOpenURL funktioniert nicht aus Freigabe
Das Problem ist wohl laut MSDN der IE und der ist unter Windows Server 2003+ nicht wirklich zu gebrauchen.
Ich würde die Funktion vielleicht mit Indy oder so neu schreiben um den IE zu umgehen. |
AW: InternetOpenURL funktioniert nicht aus Freigabe
Na, das klingt ja nicht sehr ermutigend. Die Funktion ist nur ein kleiner Teil einer Komponente, das jetzt alles auf ICS/Synapse oder sonstwas umzustellen wäre ein nicht unerheblicher Aufwand. Dann überlege ich mir lieber, ob man nicht als Workaround ein kleines Tool lokal auf den Clients ablegt.
Danke Dir. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz