Почему 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%, но я думаю, что это работает.