ASP.NET MVC IIS 7 - Request.ServerVariables ["LOGON_USER"] возвращает пустую строку - PullRequest
0 голосов
/ 16 ноября 2011

Мое приложение имеет проверку подлинности формы, но я пропускаю форму, когда пользователь является администратором. Я делаю это, вытягивая имя пользователя с этим кодом:

Request.ServerVariables["LOGON_USER"];

После извлечения я использую возвращенное имя для аутентификации на LDAP. Это прекрасно работает при запуске внутри VS на моей локальной машине.

Когда я запускаю с IIS, это значение пустое. Причина этого в том, что для моего приложения включена анонимная аутентификация. Ссылка: http://support.microsoft.com/kb/306359

Насколько я знаю, мне требуется анонимная аутентификация для приложений с аутентификацией по формам.

Можно ли как-нибудь вытащить пользователя, который вошел в ПК?

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

HTTP Error 401.2 - Unauthorized
You are not authorized to view this page due to invalid authentication headers.

Ответы [ 3 ]

3 голосов
/ 26 июня 2013

Последний ответ - решение Microsoft, но я нашел реальную причину:

Очевидно, ServerVariables устарели для C #

Так что для C # вам нужно сделать это следующим образом:

string login = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

Я не хочу удалять последний ответ, потому что он может работать для людей, работающих на более старых версиях C #.

0 голосов
/ 21 июня 2013

Статья базы знаний PRB: Request.ServerVariables ("LOGON_USER") Возвращает пустую строку в ASP.NET никогда не говорит, куда идет <authentication mode="Windows" />.

<system.web>
  <authentication mode="Windows" />
</system.web>

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

0 голосов
/ 16 ноября 2011

Вы можете смешивать формы и аутентификацию Windows.Посмотрите на подобное решение здесь: http://www.pluralsight -training.net / community / blogs / craig / archive / 2004/07/24 / 1699.aspx

Возможно, у вас нетописанный флажок в форме входа в систему, но вы можете просто проверить LOGON_USER в заголовке HTTP.

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