如何在 Windows 窗体应用程序中获取 *** 用户的当前用户身份?

Posted

技术标签:

【中文标题】如何在 Windows 窗体应用程序中获取 *** 用户的当前用户身份?【英文标题】:How do I get the Current User identity for a *** user in a Windows forms app? 【发布时间】:2010-11-05 19:38:51 【问题描述】:

我们目前正在开发一个 Windows 智能客户端,该客户端需要使用其 AD 组成员身份对用户进行身份验证。

我们现在要求某些用户通过 *** 连接。有什么方法可以从 *** 登录中获取 AD 帐户身份和组?

WindowsIdentity.GetCurrent() 返回本地用户帐户,而不是他们的 *** 帐户信息。

本地帐户名称与用于 *** 连接的 AD 帐户不同。即用户在他们的家用电脑上,并使用他们的工作 AD 帐户连接到办公室。

【问题讨论】:

您能详细说明您的 *** 设置吗?在我们的系统(Windows 远程访问)中,*** 帐户与用户在本地登录时使用的帐户相同。 【参考方案1】:

如果他们的计算机在域中并且他们使用 AD 凭据登录,那么您很好。 WindowsIdentity.GetCurrent() 将正确返回。如果您 *** 进入网络但没有进入 AD,那么您就不走运了。尝试以 AD 帐户运行您的程序。如果您在“运行方式”对话框中正确验证,WindowsIdentity.GetCurrent() 应该是正确的。

【讨论】:

这是真的,但我遇到的问题是应用程序是使用 ClickOnce 部署的,您不能使用“运行方式”。我通过编写一个提示用户登录的自定义身份验证服务解决了我的问题,然后使用他们的用户名和密码查询 AD。这是一个奇怪的情况,因为用户帐户存在于我们的 AD 中,但他们的计算机不在域中。

以上是关于如何在 Windows 窗体应用程序中获取 *** 用户的当前用户身份?的主要内容,如果未能解决你的问题,请参考以下文章

在C# WinForm应用程序中如何获取当前窗体中被激发的控件名称?

Delphi如何获取其他程序窗体Left和Top

获取拖入 Windows 窗体窗体的文件的路径

c# windows 窗体 如何 设置菜单的权限

如何在C#Windows窗体中登录(从MySQL服务器/数据库获取数据)?

Windows窗体 - 如何获取列表框的垂直滚动条?