Я пытаюсь подобрать имя пользователя Windows при отладке в Visual Studio 2013. Я просто использую:
httpcontext.current.user.identity.name
Если я запускаю это на своем Dev Server, он работает нормально, если я запускаю его в режиме отладки в любой предыдущей версии Visual Studio, он также работает нормально.
Мои проблемы: если я запускаю это в Visual Studio 2013, я получаю пустую строку.
Моя веб-конфигурация выглядит следующим образом.
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
Изучая это, я нашел свой ответ, но не могу найти ответ в Интернете, поэтому решил поделиться этим:
Я исправил свою проблему, изменив файл applicationhost.config. Мой файл был сохранен в папке «\ Мои документы \ IISExpress \ config».
Кажется, что VS2013 игнорировал мой файл web.config и применял разные методы аутентификации.
Мне пришлось изменить эту часть файла, чтобы она выглядела так, как показано ниже. По правде говоря, я только изменил anonymousAuthentication на false, а режим windowsAuthentication на true.
источник
anonymousAuthentication
. Достаточно включитьwindowsAuthentication
. Эти параметры определяют, какие механизмы аутентификации разрешено использовать веб-сайтам.В Visual Studio 2013 И VS15 (но я предполагаю, что то же самое для всех других версий) просто нажмите F4 и измените эти два свойства: - Анонимная проверка подлинности: отключить - Проверка подлинности Windows: включить
источник
В VS2013 F4 в вашем проекте для просмотра окна свойств и отключения анонимного доступа и включения «проверки подлинности Windows»
Тогда все заработает. Больше ничего менять не нужно
источник
VS 2015 меняет это. Он добавил в мой веб-проект папку .vs и там был applicationhost.config. Я внес предложенные изменения (проверка подлинности окна = true, anon = false), и он начал выдавать имя пользователя вместо пустого.
источник
Откройте файл applicationHost.config, расположенный в папке C: \ Users [идентификатор пользователя] \ Documents \ IISExpress \ config. Внутри этого файла измените overrideModeDefault для anonymousAthentication и windowsAuthentication на «Разрешить».
Затем измените lockItem на «false» для AnonymousAuthenticationModule и WindowsAuthenticationModule.
Внесение этих изменений позволит существующим настройкам веб-конфигурации переопределить то, что находится в файле applicationHost для IIS Express.
источник
Вы также можете изменить свойства проекта для своего веб-проекта, выбрать «Интернет» на левой вкладке, а затем изменить раскрывающееся меню «Серверы» на «Локальный IIS». Создайте новый виртуальный каталог и используйте диспетчер IIS для настройки вашего сайта / пула приложений по своему усмотрению.
Я предпочитаю этот метод, так как у вас обычно есть локальный v-каталог (или сайт) IIS для локального тестирования. Вы также не повлияете на другие сайты.
источник
Похоже, что правильный ответ дает user3149240 выше. Однако, как указал Нил Уотсон, здесь играет роль файл applicationhost.config.
На самом деле изменения можно внести в панели свойств VS или в файле, хотя и в другом месте. Внизу файла applicationhost.config находится набор элементов местоположения. Кажется, что каждое приложение для IIS Express имеет один из них. Изменение настроек в пользовательском интерфейсе обновляет этот раздел файла. Итак, вы можете либо изменить настройки через пользовательский интерфейс, либо изменить этот файл.
Вот пример с выключенной анонимной аутентификацией и включенной аутентификацией Windows:
В пользовательском интерфейсе VS это эквивалентно:
источник
F4 не всегда приводит меня к этой панели. Кроме того, часто говорят, что картинка стоит тысячи слов.
источник