AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

User eindeutig identifizieren

Ein Thema von Ghostwalker · begonnen am 13. Jan 2018 · letzter Beitrag vom 14. Jan 2018
Antwort Antwort
Seite 1 von 2  1 2      
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#1

User eindeutig identifizieren

  Alt 13. Jan 2018, 09:36
Moinsen,

ich bin grad über einem Projekt, bei dem bestimmte Daten pro User gespeichert werden müssen (DB).

Dabei gibt es folgende Szenarien die ich gerne abdecken würde:

a) Pro PC ein User, Daten lokal
b) Pro PC mehrere User, Daten lokal
c) Pro PC ein User, Daten im Netzwerk (also mehre PC's)
d) Pro PC mehrere User, Daten im Netzwerk (mehrere PC's)


Dazu muss ich natürlich den User und den PC eindeutig identifizieren.

Angedacht hab ich bisher den Benutzername (Windows-User), seine SID und die SID des Systems dazu benutzen.

Allerdings weiß ich nicht, wie eindeutig die SID's sind. Außerdem funzt das ganze nur mit Windows. Sollte
ich das Programm doch ein mal z.B. für Linux bauen, kann ich hier nicht mit den SID's arbeiten.

Was gibts sonst noch für Möglichkeiten ?
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
677 Beiträge
 
Delphi 12 Athens
 
#2

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 09:50
Wie wäre es mit der IP-Adresse, MAC-Adresse oder sonst einer (einmaligen) Seriennummer (Festplatte, Prozessor,...) ?
Roland
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 10:21
Wie wäre es mit der IP-Adresse, MAC-Adresse oder sonst einer (einmaligen) Seriennummer (Festplatte, Prozessor,...) ?
IP-Adresse ist häufig dynamisch zugewiesen. Bei den Seriennummern (insbesondere HD) ists durchaus auch das gleiche.

MAC-Addresse ist eine Idee. Hab grad mal ein kleines Testprogi gemacht....ich hab geschl. 5 Stück im Rechner

Welche nehme ich denn da ?
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 10:31
Ich würde <Domain>\Username nehmen.

ist es ein lokaler User (Als keine Anmeldung an der Domain) dann bekommst du <Rechnername>\<Lokaler username>
Ist es ein Domain-User, so bekommst du <Domain>\<Domain-Username>


Zitat:
Sollte ich das Programm doch ein mal z.B. für Linux bauen, kann ich hier nicht mit den SID's arbeiten.
Was gibts sonst noch für Möglichkeiten ?
Hast du schon eine FMX-Programm? Falls nein, denke nicht so weit in die Zukunft.
Wer weiß ob du in 5 Jahren nicht eine Weblösung hast statt lauter Anwendung für Linux/MacOX/Android/...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 11:18
Ich würde <Domain>\Username nehmen.

ist es ein lokaler User (Als keine Anmeldung an der Domain) dann bekommst du <Rechnername>\<Lokaler username>
Ist es ein Domain-User, so bekommst du <Domain>\<Domain-Username>


Zitat:
Sollte ich das Programm doch ein mal z.B. für Linux bauen, kann ich hier nicht mit den SID's arbeiten.
Was gibts sonst noch für Möglichkeiten ?
Hast du schon eine FMX-Programm? Falls nein, denke nicht so weit in die Zukunft.
Wer weiß ob du in 5 Jahren nicht eine Weblösung hast statt lauter Anwendung für Linux/MacOX/Android/...
Eine Weblösung (mehr oder weniger) gibts schon. Da gibts den Klassiker mit Anmeldung via Username/Passwort

Das würd ich aber gerne in einer Desktoplösung vermeiden.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 12:41
HardwareIDs (CPU, HDD, System-Partition, MAC) bringen ja nichts, wenn man mehrere User pro PC hat,
und wenn sich die Hardware ändert, dann ändert sich auch diese ID. (Reparatur oder Upgrade)

Ja, du kannst die GUID/SID des Windows-Benutzers auslesen.

Oder du generierst eine ID und speicherst sie in den lokalen Userdateien oder der Registry. (wenn dort noch keine ID existiert).
Vorteil einer eigenen ID:
* die überlebt auch ein Backup oder Systemupgrade, also den Umzug auf ein neues System.
* und du kannst die selber ändern/setzen (siehe nachfolgend)

Gleicher Nutzer auf mehreren PCs?
* mehrere IDs zu jedem User bei dir hinterlegen (PC, Schlepptop, Handy)
* oder nur eine ID und den Zweitusern die selbe ID gezielt zuweisen und nach einem Crash kannst du dem nagelneuen User seine alte ID geben und er hat gleich wieder Zugriff
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 13:42
Die SID des Benutzers setz sich zusammen aus der SID der Windows Installation und einer fortlaufenden Nummer. 123456789-500 ist zum Beispiel der Standardadmin. Und 123456789-1 wäre der erste angelegte Benutzer.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#8

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 13:52
Zitat:
a) Pro PC ein User, Daten lokal
b) Pro PC mehrere User, Daten lokal
Hier würde ich die Daten ganz einfach in einem geeigneten User-Verzeichnis (z.B. %APPDATA%) ablegen.

Zitat:
c) Pro PC ein User, Daten im Netzwerk (also mehre PC's)
d) Pro PC mehrere User, Daten im Netzwerk (mehrere PC's)
Da bietet sich ein User-spezifisches Netzlaufwerk an, wobei ich auch hier nach den User-Namen zuordnen würde. Wenn ein User auf verschiedenen PCs unterschiedliche Anmeldenamen verwendet, ist das sowieso nicht mehr implizit zuzuordnen. SIDs würde ich in jedem Fall vermeiden.

Ist die Netzwerkumgebung für Roaming Profiles eingerichtet ist, könnte man auch alle vier Szenarien mit %APPDATA% abhandeln.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#9

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 15:42
Hmm..


Macht die Verknüpfung von PC und User überhaupt sinn?

Generell gibt es PC bezogene Parameter, unabhängig welcher User angemeldet ist.
Dann gibt es User-Spezifische Parameter, welche wiederum unabhängig davon sind, an welchem PC er angemeldet ist..

Gibt es Parameter, welche sinnvoll verknüpft sein sollten?

Die Verwendung von MAC/IP/SID (auch ein PC hat eine SID) ist nicht wirklich für die Identifizierung brauchbar, da alles 3 geändert werden kann, bzw. mehrfach (verschieden) vorkommen kann (OK die SID nicht, jedoch ist dies keine globale SID und könnte mehrfach bei verschiedenen Usern vorkommen).

Um einen PC eindeutiger zu identifizieren musst Du dir nur die Parameter anschauen, welche bei MS zur Registrierung verwendet werden.

Dann kommt aber das Problem, wenn deine Anwendung auf einem TerminalServer oder XenDesktop läuft, da die Hardware Bestandteile dann für mehere Clients die selben sind (wenn sie auf dem gleichen Server laufen)..

Deshalb stellt sich hier die Frage: Wie kann der Cleint eindeutig identifiziert werden, wenn die Hardware dafür nicht verwendbar ist?

Es bleibt dann nur der (weiche) Parameter 'Clientname'.... Nicht gerade sicher....



Bei den User sieht es ähnlich aus.

Eine SID ist bei Domain-Servern nur innerhalb der Domaine eindeutig, oder wenn der Rechner ohne Domaine betrieben wird, sogar nur auf dem PC selber.

Auch kann es bei der Verwendung von TerminalServer/XenDesktop dazu kommen, das verschiedene User-Logins verwendet werden.

Somit bliebe dann nur, dass sich der User bei deiner App einen eigenen Name zur Anmeldung (z.B. wie im Internet üblich die EMail).
Und dieser unabhängig von Windows ist. Gerade, da in Firmen für bestimmte Rechner ein fixer Gruppenlogin (Autologin mit festem Usern) verwendet werden, somit für alle an diesem Rechner der gleiche ist.


Alles zusammengefasst ist eine Identifizierung des PCs oder User immer nur schwammig zu betrachten, oder zu verallgemeinern.
Wenn spezielle (wichtige) Dinge über eine Identität gesteuert werden soll, dann besser eine eigene User-Anmeldung in dein Applikation implementieren.

(Nur mal eine grobe, unvollständige Zusammenfassung, ohne ANspruch auf 100% richtigkeit )
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#10

AW: User eindeutig identifizieren

  Alt 13. Jan 2018, 16:15
Zitat:
a) Pro PC ein User, Daten lokal
b) Pro PC mehrere User, Daten lokal
Hier würde ich die Daten ganz einfach in einem geeigneten User-Verzeichnis (z.B. %APPDATA%) ablegen.

Zitat:
c) Pro PC ein User, Daten im Netzwerk (also mehre PC's)
d) Pro PC mehrere User, Daten im Netzwerk (mehrere PC's)
Da bietet sich ein User-spezifisches Netzlaufwerk an, wobei ich auch hier nach den User-Namen zuordnen würde. Wenn ein User auf verschiedenen PCs unterschiedliche Anmeldenamen verwendet, ist das sowieso nicht mehr implizit zuzuordnen. SIDs würde ich in jedem Fall vermeiden.

Ist die Netzwerkumgebung für Roaming Profiles eingerichtet ist, könnte man auch alle vier Szenarien mit %APPDATA% abhandeln.
Ohne explizite Anmeldung wird es hier nicht gehen.
Prinzipiell ist Uwes Vorschlag zu folgen.
Hier könnte man dem Anwender jedoch noch die Möglichkeit bieten, sich automatisch einzuloggen. Dazu müsste man dann nach der Anmeldung auch noch die Anmeldedaten in %APPDATA% ablegen. Beim Programmstart prüft das Programm, ob die Anmeldedaten vorliegen und übernimmt sie von dort und übergeht den Anmeldedialog.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 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