获取 windows 域用户名和唯一 token/password 以通过服务

Obtain windows domain username and unique token/password to pass through service

我有一个应用程序,用户可以在他们的桌面上本地 运行,它在外部调用我的服务器上的 API。

我可以通过WindowsIdentity API获取用户的Windows域名和名称。但我想在我们这边存储一个唯一的 identifier/token,我可以将后续登录与其进行比较,以确保它是同一域用户而不是冒充者。

我不能要求用户提供凭据,因为登录过程是针对初学者的,他们需要在打开应用程序时自动登录。我正在查看 WindowsIdentity API 以寻找一些唯一 ID,但不确定它如何在用户域上的密码更改后持续存在。

编辑:也许 WindowsIdentity.GetCurrent.Claims collection 的声明可能包含一些有用的东西。

以下声明足以在 AD 环境中唯一标识用户:

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid

从以下位置获取:

WindowsIdentity.GetCurrent.Claims