【问题标题】:Is it possible to get the user identity in a Citrix Client from .net application?是否可以从 .net 应用程序获取 Citrix 客户端中的用户身份?
【发布时间】:2014-08-21 07:16:13
【问题描述】:

我有一个在 Citrix 环境中运行的 .Net 应用程序,我需要一种方法来识别使用表单身份验证登录到 citrix 客户端的用户。这可能吗?我看过一些关于 Citrix SDK 的帖子,但不确定是否能解决我的问题...

【问题讨论】:

    标签: asp.net forms-authentication citrix


    【解决方案1】:

    我会先说我对 ASP.NET 和表单身份验证几乎一无所知(从简短的谷歌搜索来看,这似乎是在 ASP.NET 中实现自定义身份验证的一种方式)。

    任何运行 Citrix 会话的应用程序都可以访问用户的身份。它将已经作为用户的身份运行,因此您可以查询当前的安全主体以查看当前用户是谁。您不需要使用任何特殊的 Citrix SDK。开发人员的一个普遍假设是,一旦他们的应用在 Citrix 下运行,他们就需要做一些特殊的事情。但是,在大多数情况下,您可以像在用户的本地桌面上运行一样开发应用程序,而只需将其部署在 Citrix 服务器上即可。

    因此,对于常规的 .NET 桌面应用程序,您可以使用以下属性:Environment.UserDomainName 和 Environment.UserName 来获取有关当前用户的详细信息。其他有趣的东西是 System.Security.Principal.WindowsIdentity,您可以使用 GetCurrent() 静态方法来获取当前用户的身份。

    现在,正如我最初所说的,这可能对您的情况有所不同,因为听起来表单身份验证是某种自定义身份验证机制,所以我所说的可能不适用。但希望我给了你一些有用的建议。

    【讨论】:

    • 如果有 20 个人共享 10 个虚拟桌面(白班、夜班)怎么办?身份是否与虚拟桌面或使用它的人相关联?
    • 你告诉我,用户如何登录桌面?他们是否都获得了自己的 Windows 登录名以供使用?如果是这样,您可以使用我在帖子中建议的技术,Citrix 没有什么需要特别担心的。您可以只查询当前登录的 Windows 身份。
    • 我们刚刚收到一份提案,还没有安装 Citrix。用户都被分配了单独的登录名,他们使用普通的 Windows10 桌面身份验证对话框登录到 Windows 域。目前我还不清楚他们将如何登录 Citrix,但我想他们会打开浏览器并转到一个 URL,那里会有另一个登录对话框,因为其中一个要求是用户必须能够在办公室外工作。从提案中不清楚它们是在单独的域上,还是 Citrix 域是本地域的扩展。
    • 通常您会使用相同的域,Citrix 登录将只是 Windows 登录。因此,在编写您的应用程序方面,Citrix 真的没有什么可担心的。就像编写本地 Windows 应用一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多