Почему Thread.CurrentPrincipal.Identity и WindowsIdentity.GetCurrent() различаются при включении олицетворения?

Я включил олицетворение и аутентификацию Windows.

<authentication mode="Windows" />
<identity impersonate="true" userName="name" password="passord"/>

Но Thread.CurrentPrincipal.Identity.Name возвращает имя аутентифицированного пользователя и WindowsIdentity.GetCurrent() возвращает олицетворенную личность.

Разве эти идентичности не должны быть одинаковыми?

И под какими учетными данными работает код в этом случае?

1 ответ

Решение

Насколько я могу понять Thread.CurrentPrincipal содержит информацию об условиях, с которыми был запущен поток, включая WindowsIdentity. Вот почему Thread.CurrentPrincipal.Identity.Name возвращает имя пользователя, который запустил тему. Напротив, WindowsIdentity.GetCurrent() Возвращает объект WindowsIdentity, который представляет текущего пользователя Windows, который был изменен посредством олицетворения. Я не уверен на 100%, но я думаю, что это работает.

Другие вопросы по тегам