3
到目前为止,我发现了两种解决方案从ClaimsIdentity中获取WindowsIdentity对象。 首先我提取用户主体名称(upn)。什么是从ClaimsIdentity中检索WindowsIdentity的最佳方法
ClaimsIdentity ci = (ClaimsIdentity) Thread.CurrentPrincipal.Identity;
string upn = null;
foreach (Claim c in ci.Claims)
{
if (c.ClaimType == ClaimTypes.Upn)
{
upn = c.Value;
break;
}
}
只要打电话的WindowsIdentity的构造与UPN:
的WindowsIdentity winId =新的WindowsIdentity(UPN);
使用声明为Windows令牌服务(C2WTS):
的WindowsIdentity winId = S4UClient.UpnLogon(UPN);
解决方案1似乎对我来说更简单和更简单的解决方案,但后来我不明白c2WTS的目的?
有什么建议吗?
tnx!