![]() |
Informationen eines Netzlaufwerks speichern
Hallo,
ich habe folgendes Problem: - Ein Anwender wählt ein gemapptes Netzlaufwerk aus ( X:\ = \\server\share\ ). X:\ wird von meinem Prog gespeichert. - Der Anwender beendet mein Prog und trennt das gemappte LW - Beim nächsten Start des Prog wird erkannt, dass das LW X:\ nicht da ist, es soll jetzt automatisch wieder hergestellt werden ( ohne den Anwender zu belästigen ) !!!!! So und hier liegt das Problem !!! Ich kann mir zwar den UNC-Pfad merken, doch woher soll ich den username bzw. das Passwort erhalten wenn der Anwender das Netzlaufwerk auswählt!! Um die Verbindung wieder herzustellen benötige ich schließlich diese Informationen. Kann man vielleicht aus der vorherigen Session etwas speichern??? Bitte um Hilfe ....Danke Baeuerle **PUSH** |
Re: Informationen eines Netzlaufwerks speichern
**PUSH**
|
Re: Informationen eines Netzlaufwerks speichern
So einfach wird das nicht sein, ich wüsste jetzt auf jeden Fall nicht, wie es OHNE Benutzerinvention gehen könnte. Warum arbeitest du nicht einfach mit dem UNC-Pfad? Normalerweise kannst du alle Dateioperationen auch damit ausführen.
|
Re: Informationen eines Netzlaufwerks speichern
Hi Flocke,
danke erstmal, dass sich jemand um das Thema bemüht! Das mit dem UNC-Pfad ist nicht das Problem. Dieser wird schon gespeichert! Der UNC-Pfad reicht allerdings nicht um das Laufwerk wieder herzustellen! Ich benötige zusätzlich die Benutzerinformationen bzw. Sessioninfos, und diese müssen doch bei einer aktiven Verbindung auslesbar sein, denn wenn weitere Netzlaufwerke in Windows hergestellt werden, muss der Benutzername und das Passwort ja auch nicht nochmal angegeben werden! Greats Baeuerle |
Re: Informationen eines Netzlaufwerks speichern
Hai Flocke,
dann müsste man dem Admin aber feste auf die Finger klopfen. Wenn er für die Verbindung mit der Freigabe ein Kennwort verlangt aber nicht für das schreiben/lesen auf Verzeichniss hat er ein riesen Problem weil er nämlich genau die Möglichkeit des Zugriffes über den UNC-Pfad nicht berücksichtigt hat. Wenn die Authentifizierung notwendig ist sollte sie auch vom Anwender verlangt werden. @Baeuerle: So wie sich das liest sind die Clientrechner ja nicht in eine Domäne bzw. haben local andere Benutzerkennungen als auf dem Server. Habe ich das richtig verstanden? |
Re: Informationen eines Netzlaufwerks speichern
@Sharky
Ja genau so ist es, die Benutzer melden sich lokal an, und dann nocheinmal getrennt an der Domain. |
Re: Informationen eines Netzlaufwerks speichern
Zitat:
Ich wollte nur ausdrücken, dass ich einfach den UNC-Pfad benutzen würde - die Passwortabfrage erledigt dann das System. Wozu braucht man den Laufwerksbuchstaben? |
Re: Informationen eines Netzlaufwerks speichern
@Flocke
Ok, der LW-Buchstabe wird nicht unbedingt benötigt, jedoch benötige ich immernoch die Anmeldeinformationen für die Domain, die ich irgendwie aus einer bestehenden Verbindung auslesen möchte! |
Re: Informationen eines Netzlaufwerks speichern
Vergiss das mit dem Auslesen, es existiert nur noch ein token. Du musst die credentials vorher selbst abfragen und die Verbindung dann vom Programm aus herstellen. Die credentials musst du dann im protected storage speichern.
Grüße vom marabu |
Re: Informationen eines Netzlaufwerks speichern
Hiermit funktioniert das Mounten eines Netzwerklaufwerkes ohne Benutzer / Passwort. Stand gestern vor dem gleichen Problem und hab hier im Forum die Lösung gefunden.
Delphi-Quellcode:
{*** Netzlaufwerk verbinden (ohne Passwort) ***}
function ConnectNetDrive(_locDrive, _netPath: string; RestoreAtLogon: Boolean): DWORD; var nRes: TNetResource; dwFlags: DWORD; begin { NetRessource mit #0 füllen => Keine unitialisierte Werte } FillChar(NRes, SizeOf(NRes), #0); nRes.dwType := RESOURCETYPE_DISK; { Laufwerkbuchstabe und Netzwerkpfad setzen } nRes.lpLocalName := PChar(_locDrive); nRes.lpRemoteName := PChar(_netPath); { Example: \\Test\C } { Überprüfung, ob gespeichert werden soll } if RestoreAtLogon then dwFlags := CONNECT_UPDATE_PROFILE and CONNECT_INTERACTIVE else dwFlags := CONNECT_INTERACTIVE; Result := WNetAddConnection3(Application.Handle, nRes, nil, nil, dwFlags); end; |
Re: Informationen eines Netzlaufwerks speichern
Hi ringli,
ohne credentials funktioniert das nur dann, wenn keine sichere Umgebung vorliegt, wie bei XP Home oder Freigaben mit Berechtigung "Jeder darf Alles" - keine typischen Bedingungen am Arbeitsplatz... marabu |
Re: Informationen eines Netzlaufwerks speichern
@marabu
Ok, was mache ich aber bei folgender Situation: - Ein Admin hat hat bei einem Client eine Netzwerkberbindung eingerichtet - Der Client richtet seine persöniche Sicherung auf den Server ein, und wählt hierbei seine Netzwerkverbindung aus, nach Deiner Meinung muss ich den Client jetzt nach den credentials Fragen, der weiß diese aber nicht ... protected storage = verschlüsselt abspeichern ??? Oder gibt es da was icm cache was ich nicht kenne ? Thanks Baeuerle |
Re: Informationen eines Netzlaufwerks speichern
Hai Baeuerle,
warum wird vom Client eigentlich die Netzwerkverbindung getrennt? |
Re: Informationen eines Netzlaufwerks speichern
Zitat:
Deine Aussage stimmt so nicht. Die bewusste Freigabe bei mir befindet sich in einer Domäne und auf diese habe nur ich und der Admin Zugriffsrechte. Und trotzdem bekomme ich mit dem o.g. Code die Zuweisung des Netzwerklaufwerkes hin (natürlich nur wenn ich entsprechend an der Domäne angemeldet bin). Allerdings will ich nicht ausschliessen das es trotzdem Ausnahmen gibt die bei mir nicht greifen. |
Re: Informationen eines Netzlaufwerks speichern
Hi,
es gibt da eine klare Regel: wer die Ressource bereit stellt ist auch für sie verantwortlich. Du musst das nicht auf den Kopf stellen. Wenn der Admin eine Resource bereit stellt, dann muss er auch für deren Verlässlichkeit sorgen, nicht dein Programm. Wenn dein Programm die Ressource bereit stellen soll, dann muss dir der Admin die credentials geben. protected storage ist ein Dienst und bietet dir die Möglichkeit der sicheren Ablage von Daten. marabu |
Re: Informationen eines Netzlaufwerks speichern
Hi ringli,
du musst auf die Feinheiten achten: Baeuerles user sind mit ihren clients nicht in einer domain. Bei dir werden die credentials schon bei der Anmeldung an der domain ausgetauscht - du hast dann dein access token für den Zugriff auf das share. Hier liegt der Fall etwas anders. Lese den thread mal von Anfang an. Freundliche Grüße vom marabu |
Re: Informationen eines Netzlaufwerks speichern
@ringli
ist klar, wenn ich bereits angemeldet bin ist das ganze kein Problem! Das Problem ist wenn ein Client nicht angemeldet ist!!! @sharky Dummheit des Clients, der die Verbindung trennt. Ich weiß nicht genau aber ich versuche alle Ursachen auszuschließen die mein Prog an der Ausführung hindern könnten. Und leider ist dies so ein Punkt den ich beseitigen möchte. @marabu ok danke, das hat schon mal viel weitergeholfen. protected storage ist aber erst seit XP vorhanden, denke ich. das Prog soll aber unter allen Win32 funktionieren, daher nicht anwendbar. Ich danke euch allen für eure Bemühungen. |
Re: Informationen eines Netzlaufwerks speichern
Protected Storage war auch schon auf meinem NT4...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 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