HttpContext, WindowsIdentity, поток на анонимном IIS - PullRequest
1 голос
/ 03 августа 2011

Я немного поработал над этим, но, похоже, не могу найти хорошего решения.

У меня есть приложение ASP.NET (.Net 3.5) с IIS, которое извлекает имя пользователя и имя пользователя из учетной записи. Это работает на моем локальном компьютере, но при загрузке с использованием IIS он дает null или IIS APPPOOL / appname. В IIS у меня установлены «Интегрированная проверка подлинности Windows» и «Аноним», а в моем файле Web.config

<authentication mode="Windows"/>
<identity impersonate="true"/>

И я пытаюсь получить доступ к информации о пользователях несколькими способами, некоторые из них:

HttpContext.Current.User.Identity.Name
System.Threading.Thread.CurrentPrincipal.Identity.Name
System.Security.Principal.WindowsIdentity.GetCurrent().Name
Environment.UserName

Каждый из них работает на моем локальном компьютере, но при загрузке на сервер IIS все дает неверную информацию. Приложение является внутренним, но мне все еще нужно, чтобы оно захватывало имя пользователя без экрана входа в систему. Идеи?

Обновление: я изменил IIS на анонимную аутентификацию отключена и аутентификация Windows включена. И мой файл web.config я попробовал следующее

<authentication mode="Windows"/>
<!-- <identity impersonate="true"/> -->

<authorization>
  <deny users="?"/>
  <allow users="*"/>
</authorization>

Извините за обновление, но есть ли идеи?

Для тех, кто следит за этим и нуждается в ответе, проблема заключается в IIS. В области Аутентификация в IIS включены только олицетворение ASP.NET и Аутентификация Windows, остальные должны быть отключены. И в Аутентификации Windows, перейдите к Расширенным настройкам и ОТКЛЮЧИТЕ Включить аутентификацию в режиме ядра. В области «Правила авторизации» должны быть разрешены все пользователи (обратите внимание, что это делается в IIS, а не в файле конфигурации). Необходим следующий код в конфигурации.

<system.web><authentication mode="Windows"/><identity impersonate="true"/></system.web>

Надеюсь, это кому-нибудь поможет, вот пара ссылок, которые мне помогли. Удачи!

http://msdn.microsoft.com/en-us/library/aa302377.aspx

http://www.eggheadcafe.com/tutorials/aspnet/1f12cd61-6bb3-4ffd-bac1-124d40837006/aspnet-request-identity--an-analysis.aspx

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