如何将UserPrincipal与WindowsIdentity进行比较?

时间:2015-07-08 14:41:52

标签: c# .net active-directory windows-identity userprincipal

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

问题是WindowsClient.Name会声明Group \ SamAccountName而不仅仅是SamAccount吗?使用该组会很好,但UserPrincipal似乎没有返回这个?

那么我应该如何匹配呢?我应该只删除WindowsClient.Name中的组,还是可以在UserPrincipal中添加它?

1 个答案:

答案 0 :(得分:1)

这里有几个选项:

  1. 不要只使用SamAccountName来比较主体,它们只在一个域中唯一,而是使用SID:UserPrincipal.SidWindowsIdentity.User

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