我正在开发具有以下详细信息的客户端服务器应用程序:
Client(C++) -----------HTTPS--- Server (C#/WCF)
服务器:
- Windows Active Directory 域中的用户
- 在 IIS 中运行的 WCF 服务提供针对 Windows AD 的身份验证服务
- 提供基于 REST 的身份验证 API,该 API 使用 Windows API logonUser。
客户:
- 客户端使用 REST SDK(基于 Visual Studio 2013)连接服务器
- 客户端提供身份验证 API 用于使用 HTTPS 进行身份验证。
目前我正在努力验证在服务器客户端登录的 Windows 用户:
- AD用户登录客户端调用鉴权API
- 当前登录的用户详细信息必须使用 HTTPS 发送到服务器(当然只有用户名)
- 使用从客户端检索到的信息创建 WindowsIdentity 结构。
我试过以下:
- 从客户端机器获取 SID 并将其传递给服务器。从客户端登录的 SID 重新创建 WindowsIdentity。
- 我无法从传递的 SID 中获取 WindowsIdentity。
问题:
- 如何从客户端传递的登录 AD 用户的 SID 获取服务器(C#)中的 Windows 身份?
- 还有其他更好的方法来实现上述设置吗?