gpt4 book ai didi

c# - 如何获取远程登录用户的 WindowsIdentity?

转载 作者:行者123 更新时间:2023-11-28 00:37:25 27 4
gpt4 key购买 nike

我正在开发具有以下详细信息的客户端服务器应用程序:

Client(C++) -----------HTTPS---     Server (C#/WCF)

服务器:

  • 与 Windows Active Directory 域中的用户
  • 在 IIS 中运行的 WCF 服务提供针对 Windows AD 的身份验证服务
  • 提供基于 REST 的身份验证 API,它使用 Windows API logonUser。

客户:

  • 客户端使用 REST SDK(基于 Visual Studio 2013)连接服务器
  • 客户端提供身份验证 API 以使用 HTTPS 进行身份验证。

目前我正在努力验证在服务器上登录客户端的 Windows 用户:

  • AD用户登录客户端调用认证API
  • 必须使用 HTTPS 将当前登录的用户详细信息发送到服务器(当然只有用户名)
  • 使用从客户端检索到的信息创建 WindowsIdentity 结构。

我试过以下方法:

  • 从客户端获取 SID 并将其传递给服务器。从客户端登录的 SID 重新创建 WindowsIdentity。
    • 我无法从传递的 SID 中获取 WindowsIdentity。

问题:

  1. 如何从客户端传递的已登录 AD 用户的 SID 中获取服务器 (C#) 中的 Windows 身份?
  2. 是否有其他更好的方法来实现上述设置?

最佳答案

你试过吗

ServiceSecurityContext.Current.WindowsIdentity.Name

但如果不涉及对 Active Directory 的查询,就无法转换用户名格式。由于是这种情况,因此无需创建 WindowsPrincipal 来检查组成员身份,因为这可能需要与 AD 的另一个连接。 尝试使用 this link 中提供的解决方案

关于c# - 如何获取远程登录用户的 WindowsIdentity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351565/

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