Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Windows Session neu aufbauen (https://www.delphipraxis.net/49429-windows-session-neu-aufbauen.html)

Gruber_Hans_12345 11. Jul 2005 12:18


Windows Session neu aufbauen
 
Hallo, ich habe folgende Anforderung :

Der PC hat eine Netzlaufwerk verbunden auf P: -> \\SERVER\Daten1

Nun möchste ich die Sitzung zu dem Server abbrechen, mich autoamtisch mit einem anderem Username anmelden (Username und PAsswort sind dabei in einem externen File) und dann autoatisch das Netzlaufwerk auf P: -> \\SERVER\Daten2 umändern

Das mit den Netzlaufwerken ist ja kein Problem,
Aber wie kann ich den User ab und anschließend anmelden ?
Kann ich das Passwort übergeben ?

Ware toll, wenn mich wer auf die Richtige Spur bringen kann.

Olli 11. Jul 2005 12:55

Re: Windows Session neu aufbauen
 
Alles was du brauchst steht im PSDK ;)

WNetAddConnection2
WNetAddConnection3
WNetCancelConnection <-------- KUCKUCK
WNetCancelConnection2 <-------- KUCKUCK
WNetCloseEnum
WNetConnectionDialog
WNetConnectionDialog1
WNetDisconnectDialog
WNetDisconnectDialog1
WNetEnumResource
WNetGetConnection
WNetGetLastError
WNetGetNetworkInformation
WNetGetProviderName
WNetGetResourceInformation
WNetGetResourceParent
WNetGetUniversalName
WNetGetUser
WNetOpenEnum
WNetRestoreConnectionW
WNetUseConnection


:mrgreen:

shmia 11. Jul 2005 12:56

Re: Windows Session neu aufbauen
 
Zitat:

Zitat von Gruber_Hans_12345
Das mit den Netzlaufwerken ist ja kein Problem,
Aber wie kann ich den User ab und anschließend anmelden ?
Kann ich das Passwort übergeben ?

Die API Funktion lautet: Hier im Forum suchenWNetAddConnection2

Gruber_Hans_12345 11. Jul 2005 13:32

Re: Windows Session neu aufbauen
 
Hm... bin gespannt, ob das mit dem WNetCancelConnection funktioniert, denn wenn ich von Windows aus manuell das Netzlaufwerk trenne und anschließend versuche das Netzlaufwerk mit neuem Benutzername/Passwort wiederherzustellen, dann bekomme ich immer Fehlermeldungen wie :

"Dieser Netzwerkordner ist zurzeit unter Verwendung eines anderen Namens und Kennwort verbunden.
Trennen Sie zuerst jede bestehende Verbindung auf diese Netzwerkfreigabe, um unter Verwendung eines anderen Namens und Kennwortes verbunden zu werden."

Und dann :

"Das Netzlaufwerk konnte nicht verbunden werden, da der folgende Fehler aufgetreten ist :

Mehrfache Verbindungen zu einem Server oder einer freigegebenen Ressource vom denselben Benutzer unter Verwendung mehrerer Benutzernamen sind nicht zulässig. Trennen Sie alle früheren Verbindungen zu dem Server bzw. freigegebenen Ressource, und versuchen Sie es erneut."

Obwohl ich aber sonst keine "Sichtbaren" Verbindungen mehr habe.


Und ich glaube, das WNetCancelConnection nur das selbe macht wie Windows mit Netzlaufwerk trennen .... aber ich werds auf jeden Fall mal probieren ...

shmia 11. Jul 2005 13:37

Re: Windows Session neu aufbauen
 
Zitat:

Zitat von Gruber_Hans_12345
Hm... bin gespannt, ob das mit dem WNetCancelConnection funktioniert, denn wenn ich von Windows aus manuell das Netzlaufwerk trenne und anschließend versuche das Netzlaufwerk mit neuem Benutzername/Passwort wiederherzustellen, dann bekomme ich immer Fehlermeldungen wie :

"Dieser Netzwerkordner ist zurzeit unter Verwendung eines anderen Namens und Kennwort verbunden.
Trennen Sie zuerst jede bestehende Verbindung auf diese Netzwerkfreigabe, um unter Verwendung eines anderen Namens und Kennwortes verbunden zu werden."

Dann nimm WNetCancelConnection2.
Code:
DWORD WNetCancelConnection2(
  LPCTSTR lpName,
  DWORD dwFlags,
  BOOL fForce
);
fForce sollte auf True gesetzt werden.

Gruber_Hans_12345 11. Jul 2005 14:14

Re: Windows Session neu aufbauen
 
Ok,danke mal, werds probieren, und bin schon gespannt, obs (und wie's) funktioniert

Gruber_Hans_12345 11. Jul 2005 15:44

Re: Windows Session neu aufbauen
 
Funktioniert einwandfrei !

Danke an alle nocheinmal !

Gruber_Hans_12345 12. Jul 2005 07:52

Re: Windows Session neu aufbauen
 
Zu früh gefreut, funktioniert doch nicht.

Ich bekomme jetzt auf einmal immer Fehler 1219 ERROR_SESSION_CREDENTIAL_CONFLICT (The credentials supplied conflict with an existing set of credentials.)

Ich lasse mir mit
err := WNetOpenEnum(RESOURCE_CONNECTED, RESOURCETYPE_ANY, RESOURCEUSAGE_CONNECTABLE, temp, hand);
....

alle Verbindungen anzeigen, und Disconnecte dann alle die zu dem Server gehen.

Doch beim Add bekomme ich immer wieder den selben Fehler

shmia 12. Jul 2005 09:19

Re: Windows Session neu aufbauen
 
Zitat:

Zitat von Gruber_Hans_12345
alle Verbindungen anzeigen, und Disconnecte dann alle die zu dem Server gehen.

Beim Disconnecten kann man ein gemapptes Laufwerk oder auch eine Netzwerkresource (Freigabe) abklemmen.

DWORD WNetCancelConnection2(
LPCTSTR lpName,
DWORD dwFlags,
BOOL fForce
);
lpName
[in] Pointer to a constant null-terminated string that specifies the name of either the redirected local device or the remote network resource to disconnect from.
If this parameter specifies a redirected local device, the function cancels only the specified device redirection. If the parameter specifies a remote network resource, all connections without devices are canceled.

Also ich würde mal versuchen, nicht nur die Laufwerke, sondern auch die Freigaben des Servers zu canceln.

Olli 12. Jul 2005 09:39

Re: Windows Session neu aufbauen
 
Hast du in der Hand wie die erste Verbindung aufgebaut wird? Wenn ja, dann verbinde dich, statt zu *irgendwelchen* Netzfreigaben mal zu \\Server\IPC$ ... dann bist du komplett gegen den Rechner authentifiziert und kannst alles machen was remote geht (inkl. Laufwerke verbinden ;) ).


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 Uhr.
Seite 1 von 2  1 2      

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