【发布时间】:2014-10-02 21:28:32
【问题描述】:
我有一个 WindowsIdentity,它对应于经过身份验证的用户。如何确定身份对应的是机器上的本地用户、已添加到机器的域用户还是未添加到机器的域?
假设我有 3 个用户帐户:
- DomainUser(域用户组的成员,未添加到任何本地组)
- LocalUser(在机器上创建的本地用户)
- MappedDomainUser(已添加到本机组的域用户)
如何区分
- DomainUser 和 LocalUsers
- LocalUser 和 MappedDomainUser
- DomainUser 和 MappedDomainUser
到目前为止,我依赖于用户名并检查它是否以机器名开头。然后,我通过检查用户所属的组(如果它是所有域用户的一部分)来进一步区分。我确定这不是最好的方法。
由于我有来自 WindowsIdentity.User 属性的用户 sid,我可以以某种方式使用它吗?
【问题讨论】:
-
检查用户名是否以机器名开头是好的,并且有效。您还可以检查该用户是否存在于域中并比较 sid 以查看它是否是同一用户。
-
我想知道是否可以使用众所周知的 sid 类型并查看该用户也属于哪些 sid,但是 WindowsIdentity.User 似乎与任何众所周知的 sid 都不匹配。
-
目前还不清楚您要在这里实现什么。首先,如果域中的帐户不是域用户组的成员,你还想把它算作域帐户吗?其次,为什么要区分属于任何本地组成员的域帐户和不属于任何本地组成员的域帐户? (通常您只需要检查某个特定组的成员资格。)第三,您要包括嵌套组成员资格吗?