Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Zugriff auf Pfad im Netzwerk mit Benutzername und Passwort? (https://www.delphipraxis.net/83211-zugriff-auf-pfad-im-netzwerk-mit-benutzername-und-passwort.html)

hitzi 29. Dez 2006 10:08


Zugriff auf Pfad im Netzwerk mit Benutzername und Passwort?
 
Hallo,

kann man irgendwie die Befehle FindFirst, DeleteFile, RemoveDirectory und SHFileOperation mit einem Netzwerkpfad, für den ein Login benötigt wird, verwenden? Vielleicht wie bei den FTP URLs mit Benutzername und Passwort in der URL?

Die einzige Lösung, welche mir bis eingefallen ist (und die ich auch schon verwendet habe), ist die Verwendung eines temporären Netzlaufwerkes. Diesen "Umweg" würde ich mir aber gern ersparen, wenn's eine einfachere Lösung geben würde.

Habt ihr noch eine Idee?

Viele Grüße

[EDIT]Es reicht ja eine Anmeldung an dem Rechner mit dem Benutzer/Password, das merkt sich Windows ja dann. Also kann man sich irgendwie bei einem Computer im LAN "bekannt" machen?

hitzi 3. Jan 2007 06:15

Re: Zugriff auf Pfad im Netzwerk mit Benutzername und Passwo
 
Gibt es keinen Weg die oben genannten Befehle in Verbindung mit einen Benutzernamen/Kennwort (sind bekannt) zu verwenden?

Luckie 3. Jan 2007 06:29

Re: Zugriff auf Pfad im Netzwerk mit Benutzername und Passwo
 
Damit:
Delphi-Quellcode:
uses
  Windows;

function ConnectToNetworkDriveW(LocalName: WideString; RemoteName: wideString; Username: WideString; Password: WideString;
  RestoreAtLogon: boolean): DWORD;
function DisconnectNetworkDrivew(Name: WideString): DWORD;

implementation

function ConnectToNetworkDriveW(LocalName: WideString; RemoteName: wideString; Username: WideString; Password: WideString;
  RestoreAtLogon: boolean): DWORD;
var
  NetResource      : TNetResourceW;
  dwFlags          : DWORD;
begin
  dwFlags := 0;
  ZeroMemory(@NetResource, sizeof(TNetResource));
  with NetResource do
  begin
    dwType := RESOURCETYPE_ANY;
    lpLocalName := PWideChar(LocalName);
    lpRemoteName := PwideChar(RemoteName);
    lpProvider := nil;
  end;

  if (RestoreAtLogon) then
    dwFlags := dwFlags or CONNECT_UPDATE_PROFILE;

  Result := WNetAddConnection2W(NetResource, PWideChar(Password), PWideChar(Username), dwFlags);
end;

function DisconnectNetworkDrivew(Name: WideString): DWORD;
begin
  result := WNetCancelConnection2W(PWideChar(Name), CONNECT_UPDATE_PROFILE, True);
end;
Autentifiziere ich mich mit meinem Usermanager an einem anderen PC.

hitzi 3. Jan 2007 06:38

Re: Zugriff auf Pfad im Netzwerk mit Benutzername und Passwo
 
Also doch über ein Netzlaufwerk/Freigabe. Oder nutzt du diese Funktionen irgendwie anders? Wollte eigentlich das temporäre Einbinden eines Netzlaufwerkes umgehen.

Luckie 3. Jan 2007 06:43

Re: Zugriff auf Pfad im Netzwerk mit Benutzername und Passwo
 
Da wird nichts temporär eingebunden. Du gibst einfach die Admnistrative Freigabe an: \\hal9000\IPC$

hitzi 3. Jan 2007 06:48

Re: Zugriff auf Pfad im Netzwerk mit Benutzername und Passwo
 
Ok, danke für deine Hilfe. Probier das gleich aus.

hitzi 3. Jan 2007 10:31

Re: Zugriff auf Pfad im Netzwerk mit Benutzername und Passwo
 
Irgendwas scheine ich noch falsch zu machen. Ich nutze deinen Code in der Art:

Delphi-Quellcode:
ConnectToNetworkDriveW('', PChar(PathDelim + PathDelim + Computer + PathDelim + 'IPC$'), PChar(UserName), PChar(Password), False);
Nutze ich das irgendwie falsch? Trotz richtigen Username/Password (Benutzername aus der Domain - Anmeldung über den Explorer funktioniert mit diesen Daten ohne Probleme) komme ich nicht auf den XP Pro Rechner (Domainrechner).

Nach der Anmeldung nutze ich dann Pfade wie zum Beispiel "\\laptop\public".

Von XP Pro -> XP Home funktioniert es soweit, aber umgedreht leider nicht. Das einzige was bei XP Pro -> Home noch nicht funktioniert, sind die adminstrativen Freigaben. Kann man bei XP Home Version nicht die Administrativen Freigaben, wie "c$" ansprechen? Ist das evt. eine Home-Einschränkung?

[EDIT/ADD]
Ich nehm alles zurück. Das Problem lag an der Reihenfolge in meinen Code. XP Home -> Pro funktioniert jetzt auch. Unter XP Home gibt es leider keine administrative Freigaben, wie "c$". Macht aber nichts, dann synchroniziere ich eben vom Laptop aus ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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