如何比较 UserPrincipal 与 WindowsIdentity?

How do I compare UserPrincipal with WindowsIdentity?

当根据 (绑定保存在数据库中)使用 UserPrincipal SamAccountName 将用户绑定到 Windows 帐户时。然后在进行登录时,我需要根据登录的 Windows 帐户检查此绑定用户(来自数据库),这是通过 WindowsIdentity objeckt 完成的。

问题是 WindowsClient.Name 会声明 Group\SamAccountName 而不仅仅是 SamAccount?使用组就好了,但是UserPrincipal好像没有return这个?

那我应该怎么匹配呢?我应该只删除 WindowsClient.Name 中的组还是有办法将其添加到 UserPrincipal 中?

这里有几个选项:

  1. 不要仅使用 SamAccountName 比较主体,它们仅在单个域中是唯一的,请改用 SID:UserPrincipal.SidWindowsIdentity.User

  2. 不要使用WindowsIdentity来获取当前用户,而是使用UserPrincipal.Current