我通过WCF从机器A向机器B发送请求。
两台计算机上的域和用户相同
在机器B中,使用给定的参数,我想为那个从机器A调用操作的用户创建一个WindowsIdentity
。
我知道有技术可以通过WCF基础设施实现这一目标 - 但我的项目中没有启用此技术
所以我需要从机器A发送OperationContext.Current.ServiceSecurityContext.WindowsIdentity.User.Value
到机器B.
我的问题是如何使用SID创建WindowsIdentity
?或者我需要发送不同的参数?
我正在尝试这个:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "My_Domain");
GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, "userSID");
使用正确的参数,然后迭代所有GRP.GetMembers(true)以寻找我的 - 但它不存在。
用户是:DOMAIN_NT/MyUser123
- >如果我将其更改为MyUser123@DOMAIN_NT
并创建WindowsIdentity
identity = new WindowsIdentitiy("MyUser123@DOMAIN_NT");
的实例 - 它会起作用,但这是一种丑陋的方式。