AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eindeutige Identifikation Domäne

Eindeutige Identifikation Domäne

Ein Thema von Bernhard Geyer · begonnen am 5. Aug 2015 · letzter Beitrag vom 5. Aug 2015
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.100 Beiträge
 
Delphi 10.4 Sydney
 
#1

Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 09:53
Ich habe die Anforderung das eine Option/Einstellung nur dann wirken soll wenn der user in einer bestimmten Domäne eingeloggt ist.

Da ja Firma X den Domänennamen "Herbert" verwenden kann als auch Firma Y bräuchte ich die Unique ID der Domäne umd "Herbert" von Firma X von "Herbert" Firma Y unterscheiden kann.
Mit welcher WinAPI-Funktion könnte ich diese GUID bekommen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 10:10
Ich würde der Anwendung da eher einen Eintrag in einem Ini-File verpassen, als im Programm eine Domäne fix zu kodieren. Ich nehme einmal an, dass die Feature nur für einen bestimmten Kunden gedacht ist. An der Domäne könnte irgendwann ein Systemadministrator etwas ändern, dann musst du dein Programm anpassen.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
789 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 10:11
Hilft dir das weiter?
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.627 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 10:12
Meinst Du sowas?
http://www.experts-exchange.com/Prog..._20731989.html

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#5

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 10:21
Mit welcher WinAPI-Funktion könnte ich diese GUID bekommen?
GetAccountSid()
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.627 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 10:24
Merke gerade, daß man die Antwort nicht sieht, wenn man nicht von google kommt
Darum

Zitat:
by:Ferruccio AccalaiPosted on 2003-09-08 at 06:35:43ID: 9309353

From http://www.thedelphimagazine.com/samples/1577/1577.htm

» Listing 1: Using LookupAccountName and LookupAccountSid.
Delphi-Quellcode:
// GetAccountName. Looks up the account name of the security
// principal specified by SID
function GetAccountName(const System: string; Sid: PSID;
  var Name: string): Boolean;
var
  DomainSize, NameSize: Longword;
  R: LongBool;
  Domain: string;
  Use: TSidNameUse;
begin
  Result := False;
  NameSize := 0;
  DomainSize := 0;
  R := LookupAccountSid(PChar(System), Sid, nil, NameSize,
    nil, DomainSize, Use);
  if (not R) and (GetLastError = ERROR_INSUFFICIENT_BUFFER)
    then begin
    SetLength(Domain, DomainSize);
    SetLength(Name, NameSize);
    Result := LookupAccountSid(PChar(System), Sid, PChar(
      Name), NameSize, PChar(Domain), DomainSize, Use);
  end else
    RaiseLastOSError;
end;
// GetAccountSid. Looks up the Sid of the specified security
// principal. Caller must free Sid using FreeMem.
function GetAccountSid(const System, AccountName: string;
  var Sid: PSID): Boolean;
var
  DomainSize, SidSize: Longword;
  R: LongBool;
  Domain: string;
  Use: TSidNameUse;
begin
  Result := False;
  SidSize := 0;
  DomainSize := 0;
  R := LookupAccountName(PChar(System), PChar(AccountName),
    nil, SidSize, nil, DomainSize, Use);
  if (not R) and (GetLastError = ERROR_INSUFFICIENT_BUFFER)
    then begin
    SetLength(Domain, DomainSize);
    Sid := AllocMem(SidSize);
    Result := LookupAccountName(PChar(System),
      PChar(AccountName), Sid, SidSize, PChar(Domain),
      DomainSize, Use);
    if not Result then begin
      FreeMem(Sid);
      Sid := nil;
    end;
  end else
    RaiseLastOSError;
end;
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.100 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 11:39
Ich würde der Anwendung da eher einen Eintrag in einem Ini-File verpassen, als im Programm eine Domäne fix zu kodieren. Ich nehme einmal an, dass die Feature nur für einen bestimmten Kunden gedacht ist. An der Domäne könnte irgendwann ein Systemadministrator etwas ändern, dann musst du dein Programm anpassen.
Wollte das in ein Konfiguration eintragen lassen (bzw. wäre nicht so schlimm da das in einem Plugin liegen würde).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.100 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 11:40
» Listing 1: Using LookupAccountName and LookupAccountSid.[/DELPHI]
Schaut gut aus. Jetzt noch mit einem ConvertSidToStringSid verschönert und schon kann man es einfach verwenden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 12:17
Ist das nicht die Benutzer SSID?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Eindeutige Identifikation Domäne

  Alt 5. Aug 2015, 12:28
Das sind aber lustige TriState-Funktionen

Entweder liefern die ein True oder False (ACHTUNG: da wird direkt der LongBool -Wert in den Result geschrieben!) oder eine Exception!

Diese Routinen sollten vor dem produktiven Einsatz dringenst überarbeitet werden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf