Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Benutzername/Passwort für eine Windowssession merken (https://www.delphipraxis.net/68164-benutzername-passwort-fuer-eine-windowssession-merken.html)

PeterRettig 25. Apr 2006 15:48


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?

Nicodius 25. Apr 2006 16:32

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

PeterRettig 25. Apr 2006 16:54

Re: Benutzername/Passwort für eine Windowssession merken
 
Bleibt das Problem der lokalen Schreibrechte...

Nicodius 25. Apr 2006 20:31

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

renekr 20. Mai 2006 11:02

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.

Luckies HP


mfg

SirThornberry 20. Mai 2006 11:22

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.

Olli 20. Mai 2006 12:06

Re: Benutzername/Passwort für eine Windowssession merken
 
Speichere es doch im Password Stash von Windows ab ;)

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 11:13 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