2017-01-18 9 views
0

Я прочитал много предложений за последние несколько дней о том, как получить текущего пользователя в моем asp-приложении (разработанном с использованием devexpress xaf), но до сих пор для меня ничего не работало , Возвратные значенияWindowsIdentity в asp-приложении всегда возвращает NT AUTHORITY SYSTEM

WindowsIdentity.GetCurrent().Name 

всегда NT AUTHORITY \ SYSTEM. Я пробовал такие предложения, как this и пару, найденную на форуме devexpress.

Что я думал должен работать в

  • установить Web.config моего приложения к

включают

<system.web> 
    <authentication mode="Windows" /> 
    <identity impersonate="true" /> 
    <authorization> 
     <deny users="?" /> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 

(я также попытался установить imporsonation выше false, но без изменений)

  • настройки моего сайта в IIS для использования проверки подлинности Windows enter image description here

    • настройки пула приложений, как этот

enter image description here

Но результат всегда остается NT AUTHORITY \ SYSTEM.

ответ

0

Поскольку «NT AUTHORITY \ SYSTEM» является членом «Встроенный \ Администратор», роль сервера SYSADMIN предоставляется по умолчанию. По умолчанию Локальная системная учетная запись является членом локальной группы администраторов и поэтому является членом группы sysadmin в SQL Server.

Чтобы включить олицетворение, установите идентификатор = "true" для элемента идентификации в web.config.

<system.web> 
    <identity impersonate="true" /> 
</system.web> 

Олицетворение также может быть включено или отключено от IIS.

  1. Выберите веб-приложение в IIS
  2. Двойной щелчок по иконке «Аутентификация»
  3. Выберите ASP.NET Олицетворение
  4. Нажмите «Отключить» или «Включить» ссылку под действия в правой боковой панели в ИИС.
  5. Это автоматически изменит файл web.config.

установить «Режим управляемого трубопровода» в DefaultAppPool на «Классический».

Запустите приложение и обратите внимание, что код приложения, теперь выполняются с использованием учетной записи «NT AUTHORITY \ IUSR», вместо «IIS AppPool \ DefaultAppPool»

+0

Спасибо, но, как видно на скриншотах выше У меня уже есть олицетворение. Я также отредактировал фрагмент кода, чтобы быть более понятным.Я попытался изменить режим управляемого конвейера на Classic, но я все равно получаю NT AUTHORITY \ SYSTEM. Где я могу проверить, используется ли учетная запись «NT AUTHORITY \ IUSR», как вы предложили? – yiannis

+0

просто обратитесь к этой ссылке.http: //csharp-video-tutorials.blogspot.in/2012/12/anonymous-authentication-and-aspnet.html –