Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Identfizerung auf entfernten Rechner (https://www.delphipraxis.net/104181-identfizerung-auf-entfernten-rechner.html)

xZise 28. Nov 2007 18:58


Identfizerung auf entfernten Rechner
 
Hallo DP,
ich habe das Problem, dass ich mit einem Programm, auf einen Ordner auf einen Server liegt.
Normalerweise kommt man darüber mit \\freewilly\.... ran. Problem dabei ist, dass auf diesen Ordner nur Admins Zugriff haben.
Wenn man sich nun als Admin anmeldet und den Pfad im Explorer öffnet fragt er nach einer Identifizierung (Benutzername und Passwort).

Soweit kein Problem, wenn ich jetzt aber von meinem Programm darauf zugreifen will, funktioniert das ganze nicht, sondern müsste mich erst identifizieren.
Kann ich das irgendwie automatisieren?

MfG
xZise

ste_ett 28. Nov 2007 19:12

Re: Identfizerung auf entfernten Rechner
 
[msdn]
LogonUser
[/msdn]

Luckie 28. Nov 2007 20:34

Re: Identfizerung auf entfernten Rechner
 
Du meist wohl autentifizieren. Erstell eine administrative Freigabe auf dem Remoterechner mit den Login des Administrators auf dem Rechner. So mache ich das mit meinem Usermanager auch.
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;

Muetze1 29. Nov 2007 09:04

Re: Identfizerung auf entfernten Rechner
 
Zitat:

Zitat von Luckie
Du meist wohl autentifizieren.

Nee, ich glaube eher authentifizieren. :drunken: :stupid:

xZise 29. Nov 2007 14:35

Re: Identfizerung auf entfernten Rechner
 
Zitat:

Zitat von Muetze1
Zitat:

Zitat von Luckie
Du meist wohl autentifizieren.

Nee, ich glaube eher authentifizieren. :drunken: :stupid:

Ich weiß schon, warum ich identifizieren geschrieben habe :stupid:

Zitat:

Zitat von Luckie
Delphi-Quellcode:
function ConnectToNetworkDriveW(LocalName: WideString; RemoteName: wideString; Username: WideString; Password: WideString;
  RestoreAtLogon: boolean): DWORD;
function DisconnectNetworkDrivew(Name: WideString): DWORD;

Zwei Frage:
Was soll ich bei "ConnectToNetworkDriveW" übergeben?
Wozu dient "DisconnectNetworkDriveW"?

MfG
xZise

PS: Kann ich einen Passwortabfragedialog mithilfe von Windows erstellen? Welches dann auch auf die Korrektheit prüft?

geofranz01 29. Nov 2007 15:32

Re: Identfizerung auf entfernten Rechner
 
Hier steht was dazu, sollte klappen.

"DisconnectNetworkDriveW" entfernt den Zugriff wahrscheinlich wieder.

mfg, geofranz


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz