gpt4 book ai didi

C# 应用程序需要在 Citrix 环境中引用远程工作站

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:56 24 4
gpt4 key购买 nike

我有一个 C# 独立 Windows 窗体应用程序。它连接到需要工作站名称作为识别过程一部分的后台办公系统。我正在使用 Environment.MachineName 来获取它。然而,使用此应用程序的客户偶尔会在 Citrix 环境下运行它,当他们这样做时,他们希望它引用远程机器名称,而不是安装它的机器。我以前从未编写过这样的代码,而且我不熟悉 Citrix(所以我有一个良好的开端)。如何获取远程机器名称?非常感谢任何想法。

非常感谢。

最佳答案

在 Citrix 系统上,有一个名为 CLIENTNAME 的环境变量,其中包含用户连接到 Citrix 的计算机的名称。它只是一个常规的 Windows 环境变量,因此您可以使用 Environment.GetEnvironmentVariable 来读取它。

你可以像这样快速而肮脏地做一些事情:

var workstationName = Environment.GetEnvironmentVariable("CLIENTNAME") ?? Environment.MachineName;

对于更强大的东西,Citrix 环境还有一个 SESSIONNAME 变量来标识 Citrix session 。这两个变量同时存在可能是在 Citrix session 中运行的更好测试。

所以你可以这样做:

public bool IsCitrixSession() {
return Environment.GetEnvironmentVariable("CLIENTNAME") != null
&& Environment.GetEnvironmentVariable("SESSIONNAME") != null;
}

public string GetWorkstationName()
{
return IsCitrixSession() ? Environment.GetEnvironmentVariable("CLIENTNAME")
: Environment.MachineName;
}

关于C# 应用程序需要在 Citrix 环境中引用远程工作站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com