根据this post使用UserPrincipal SamAccountName将用户绑定到Windows帐户时(绑定保存在数据库中)。然后在进行登录时,我需要针对登录的Windows帐户检查此绑定用户(来自数据库),这是通过WindowsIdentity objeckt完成的。
问题是WindowsClient.Name会声明Group \ SamAccountName而不仅仅是SamAccount吗?使用该组会很好,但UserPrincipal似乎没有返回这个?
那么我应该如何匹配呢?我应该只删除WindowsClient.Name中的组,还是可以在UserPrincipal中添加它?
答案 0 :(得分:1)
这里有几个选项:
不要只使用SamAccountName
来比较主体,它们只在一个域中唯一,而是使用SID:UserPrincipal.Sid
和WindowsIdentity.User
请勿使用WindowsIdentity
来获取当前用户,而是使用UserPrincipal.Current
。