Имя пользователя в asp.net - PullRequest
3 голосов
/ 27 мая 2011

Я попробовал это следующим образом:

Request.ServerVariables["LOGON_USER"]

или

HttpContext.Current.User.Identity.Name 

или

User.Identity.Name

- если я запускаю его по F5 из VS2010, он запускаетсяОК.

- Если я запускаю его на IIS (я пробовал на 5.1 и 6.0, другие IIS, которые я не могу использовать), есть пустые строки.

В web.config у меня есть:

<authentication mode="Windows"/>
<authorization>
  <allow users="*"/>
</authorization>

Итак, все пользователи должны пройти аттестацию.

Может быть, в web.config должно быть больше вещей.

Я попробовал это в IE, Firefox,и Chrome.

Я публиковал этот вопрос раньше, но была некоторая вводящая в заблуждение информация, поэтому я публикую ее снова.

Ответы [ 2 ]

0 голосов
/ 27 мая 2011

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

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
  <allow users="*" />
</authorization>

Обратите внимание, что порядок элементов в элементе авторизации важен - они похожи на любые правила доступа в том смысле, что они обрабатываются сверху вниз.

В этом случае? это анонимные пользователи и * все пользователи (в том числе анонимные), но, поскольку на первом месте стоит анонимный пользователь запрета - им будет отказано, и он никогда не увидит оператор allow, который позволяет всем остальным.

Кроме того, если это веб-приложение ASP.NET MVC 3, нужно учесть некоторые причуды - пожалуйста, исправьте меня, если я ошибаюсь, поскольку сейчас я не могу вспомнить все детали:

  <appSettings>
    <add key="autoFormsAuthentication" value="false" />
  </appSettings>  

autoFormsAuthentication необходимо отключить, чтобы включить проверку подлинности Windows в веб-приложении MVC 3 - или это было в любом случае, возможно, оно уже исправлено, но, поскольку для его выяснения потребовалось довольно много времени, я включил его здесь , Симптом, когда его не отключают, заключается в том, что каждый запрос на аутентификацию перенаправляется на URL-адрес форм учетной записи (который у вас может даже не быть).

0 голосов
/ 27 мая 2011

итак, все пользователи должны пройти аттестацию.

Точно. Все пользователи включают анонимных.

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