Претензии к сервису токенов Windows олицетворяют токен - PullRequest
1 голос
/ 12 января 2012

У меня есть веб-сайт SharePoint 2010 на основе утверждений, на котором мне нужно обратиться к внутренней системе, не поддерживающей утверждения (K2 blackpearl).

Итак, для достижения этой цели я пытаюсь использовать службу заявок на токены Windows, чтобы выдать себя за пользователя, как описано здесь

Теперь при вызове c2wts с использованием имени пользователя UPN для преобразования в заявку, используя следующий код:

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();
} 

Я думаю, что это является причиной проблемы, так как при попытке вызвать сервис, используя токен, он не работает. В статье, упомянутой выше, говорится о том, чтобы получить выданный имитированный токен, но я не могу этого сделать.

Кто-нибудь знает, что я могу делать не так?

Спасибо

1 Ответ

0 голосов
/ 30 ноября 2012

Чтобы получить уровень олицетворения, равный олицетворению, установите для олицетворения в вашем web.config значение false:

    <identity impersonate="false" />

Также старайтесь не выполнять олицетворение внутри "SPSecurity.RunWithElevatedPrivileges", так как таким образом вы выполняете олицетворение дважды- сначала как учетная запись пула веб-приложений (именно это и вызывает RunWithElevatedPriviliges), а затем с помощью ручного олицетворения с использованием токена c2wts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...