![]() |
Benutzername/Passwort für eine Windowssession merken
Hallo,
ich habe mehrere Programme geschrieben, die von mehreren Leuten im Netzwerk verwendet werden und Daten zentral in eine SQL-DB ablegen. Um verschiedenen Benutzern unterschiedliche Rechte aber auch Einstellungen etc. bieten zu können, muß sich jeder Benutzer beim Programmstart mit Benutzername und Kennwort authentifizieren. Da ein Programmmodul relativ häufig gestartet und wieder geschlossen wird, ist das Ganze aber auf Dauer ziemlich umständlich. Deshalb möchte ich das Kennwort nur einmal innerhalb einer Windowsanmeldung abfragen. Aber wie stelle ich das am Besten an? Irgendwo verschlüsselt als Datei ablegen ist ungünstig, da ich dann nicht weiß ob das während dieser Anmeldung oder schon früher abgelegt wurde, außerdem braucht der Benutzer dann immer irgendwo lokale Schreibrechte. Ein zusätzliches Programm beim ersten Aufruf und erfolgreichen Einloggen starten und dort das Kennwort zwischenspeichern wäre möglich. Wenn ich das Ganze als Icon in der Systemtray anzeige, könnte der Benutzer auch die Funktion des automatischen Einloggens vorzeitig abschalten. Aber wie tausche ich auf sichere Art Daten zwischen dem Hilfsprogramm und den anderen Applikationen aus? Oder gibt es viel elegantere Varianten, an die ich noch gar nicht gedacht habe? Wie würdet Ihr sowas lösen? |
Re: Benutzername/Passwort für eine Windowssession merken
du prüfst das aktuelle datum - wenn es neu ist löscht du die vorhandene codierte datei und lasst neu eingeben sonst startet es ohen veränderungen?
edit ah sry windowsanmeldung .. hab da zu schnell drüber gelesen hmm vl im tray ein kleines programm das am system start eine zahl hochzählt - diese zahl abfragen und damit ermitteln ob ein neuer anmeldevorgang vorgegangen ist grüße Nico |
Re: Benutzername/Passwort für eine Windowssession merken
Bleibt das Problem der lokalen Schreibrechte...
|
Re: Benutzername/Passwort für eine Windowssession merken
etwas ungünstige variante wäre es zuerst (weiss jetzt nicht ob es geht aber kanns mir vorstellen) die schreibrechte zu erlauben und nach zählen des integerwertes beim autostart - die schreibrechte wieder zu entziehen
am besten zuerst schreibrechte verbieten - dein programm satarten im autostart - schreibrechte erlauben - der werte wurde hochgezählt - schreibrechte verbieten |
Re: Benutzername/Passwort für eine Windowssession merken
Hi,
Zuerst kannst du mir noch einige Infos über dein Netzwerk und der SQL Authentification geben!Wie greifst du auf die SQL DB zu ? mit ADO? sind die Client Computer Mitglied in einer Domäne? Welche Art von SQL Authentification hast du? Windows und SQL oder nur Windows? Möglichkeiten gibt es da sehr viele. Wenn du in einer Domäne bist ist es recht einfach. Dann kannst du einfach die SQL Authentification in der Connection dementsprechend als Connection String mitgeben,und der User muss sich nicht einloggen weil er mit der DB immer mit seinem Windows Login verbunden ist.(und die Rechte sind aufm SQL Server für den Domänen user hinterlegt ) Wenn du nicht in einer Domäne bist, musst du ja die USer auf den Clients und auf dem SQL Server lokal anlegen und auch das PA immer aktuell halten. Da würde sich dann die SQL Auth. anbieten. Es gibt von Luckie auch einige pas dateien wo mit User Handling und Impersonate Login zu tun haben aber weiß nciht ob das das richtige ist. ![]() mfg |
Re: Benutzername/Passwort für eine Windowssession merken
du könntest dir das Passwort in einem MemoryMappedFile merken welches sich nur im Speicher befindet. Allerdings muss dann immer mindestens 1 programm offen sein welches die Datei offen hat. Du könntest aber genau so gut eine Hintergrundanwendung starten bzw. ein Service welcher sich das Passwort merkt. Und dein Programm fragt dann den Service bzw. das Programm welches im Hintergrund läuft nach dem Passwort.
|
Re: Benutzername/Passwort für eine Windowssession merken
Speichere es doch im
![]() Okay, der Link ist für .NET, aber er funzt auch mit Delphi. Wenn du nochmal Hilfe dazu brauchst, kannst du mich auch per PN erreichen. |
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