Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Citrix User identifizieren (https://www.delphipraxis.net/138888-citrix-user-identifizieren.html)

erich.wanker 19. Aug 2009 10:59


Citrix User identifizieren
 
Hallo Leute,

meine Anwendung läuft auf einem CitrixServer 2008 ..

ich suche eine Möglichkeit, den User oder die ClientMaschine zu identifizieren

Die Software ermittelt im Moment via Computernamen den PC und sucht dann auf einem Netzlaufwerk die rechnername.ini
Alle Nicht Citrix user haben dadurch eine eigene Ini - nur die Citrix user teilen sich die "Citrix_server_name.ini"

P.S.: Link http://www.codeproject.com/KB/winsdk/citrixIP.aspx



Vielen Dank

Erich

mkinzler 19. Aug 2009 11:05

Re: Citrix User identifizieren
 
Und welchen Benutzer haben die User in Windows?

dataspider 19. Aug 2009 12:09

Re: Citrix User identifizieren
 
Hi,

das sollte über die Umgebungsvariablen herauszubekommen sein:

GetEnvironmentVariable('CLIENTNAME') // bzw. 'COMPUTERNAME'

Frank

erich.wanker 19. Aug 2009 12:30

Re: Citrix User identifizieren
 
Zitat:

Und welchen Benutzer haben die User in Windows?
verschieden: ... Eingeschränkte User hauptsächlich..

Werd mal folgendes probieren:
Delphi-Quellcode:
function GetMyClientName:String;
begin
  result := SysUtils.GetEnvironmentVariable('CLIENTNAME');
end;
vielen Dank einstweil.. ;-)

Erich

mkinzler 19. Aug 2009 12:38

Re: Citrix User identifizieren
 
Ich meinte ob dort verschiedenen Benutzer verwendet werden?

erich.wanker 19. Aug 2009 13:00

Re: Citrix User identifizieren
 
Zitat:

Zitat von mkinzler
Ich meinte ob dort verschiedenen Benutzer verwendet werden?

Ja

ich hab mal auf die schnelle was getestet:

Delphi-Quellcode:
// Mein Computer
function GetMyComputerName: string;
var
  c: array[0..127] of Char;
  i: dword;
begin
  i:= SizeOf(c);
  GetComputerName(c,i);
  result:=c;
end;

// Mein Client
function GetMyClientName:String;
begin
  result := SysUtils.GetEnvironmentVariable('CLIENTNAME');
end;


procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
showmessage('Programm läuft auf: '+GetMyComputerName);
showmessage('Sie befinden sich auf: '+GetMyClientName);
// kann sein "Console" oder empty
end;
wenn ich nun eine Anwendung auf - sagen wir mal Rechnername: Citrix leg:

Kann ich davon ausgehen, daß folgende Aussagen stimmen ?

Delphi-Quellcode:
if (GetMyComputerName = 'Citrix') AND (GetMyClientName = '') then \\ ich bin auf dem Citrix
if (GetMyComputerName = 'Citrix') AND (GetMyClientName = 'Console') then \\ ich bin auf dem Citrix
if (GetMyComputerName = 'Citrix') AND (GetMyClientName <> '') AND (GetMyClientName <> 'Console' )then \\ ich bin auf dem Citrix in einer Session
Vielen Dank

Erich


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 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