我有一个基于声明的 SharePoint 2010 网站,我需要调用后端非声明感知系统 (K2 blackpearl)。
因此,为了实现这一点,我尝试使用对 Windows 令牌服务的声明来模拟用户,如此处所述
现在,当使用用户 UPN 调用 c2wts 以使用以下代码转换为声明时:
WindowsIdentity windowsIdentity = null;
SPSecurity.RunWithElevatedPrivileges(
delegate()
{
windowsIdentity = S4UClient.UpnLogon("user@domain.com");
});
现在,当我模仿 windowsIdentity.ImpersonationLevel 是识别而不是模仿
using (WindowsImpersonationContext c = windowsIdentity.Impersonate())
{
Debug.WriteLine(WindowsIdentity.GetCurrent().ImpersonationLevel); // returns Identification
ConnectToK2();
c.Undo();
}
我认为这是导致问题的原因,因为当尝试使用失败的令牌调用服务时。上面提到的文章谈到了取回模拟令牌,但我无法做到这一点。
有谁知道我可能做错了什么?
谢谢