Ошибка аутентификации при отладке VS2013 – iis express

Я пытаюсь забрать имя пользователя Windows при отладке в Visual Studio 2013. Я просто использую:

httpcontext.current.user.identity.name 

Если я запустил это на своем Dev-сервере, он отлично работает, если я запустил его в режиме отладки в любой предыдущей версии Visual Studio, он также отлично работает.

Мои проблемы – если я запускаю это на visual studio 2013, я получаю пустую строку.

Моя веб-конфигурация выглядит следующим образом.

          

Я только что обновился до VS 2013 с VS 2012, и текущая идентификация пользователя (HttpContext.User.Identity) прошла анонимно.

Я попытался изменить IIS express applicationhost.config, никакой разницы.

Решение состояло в том, чтобы посмотреть на свойства веб-проекта, нажать F4, чтобы получить свойства проекта, когда у вас есть верхний уровень выбранного проекта. Не щелкните правой кнопкой мыши по проекту и выберите свойства, это совсем другое.

Измените анонимную аутентификацию и отключите аутентификацию Windows.

Работает как соус 🙂

Поскольку я изучал это, я нашел свой ответ, но не могу найти ответ в Интернете, поэтому я решил поделиться этим:

Я исправил свою проблему, изменив файл applicationhost.config. Мой файл был сохранен в папке «\ Мои документы \ IISExpress \ config».

Похоже, VS2013 игнорировал мой файл web.config и применял разные методы проверки подлинности.

Мне пришлось изменить эту часть файла, чтобы выглядеть следующим образом. По правде говоря, я только изменил anonymousAuthentication как false, а режим WindowsAuthentication – true.

               

В Visual Studio 2013 И VS15 (но я предполагаю, что то же самое для любой другой версии) просто нажмите F4 и измените эти два свойства: – Анонимная аутентификация: ОтключитьАутентификация Windows: Включить

В VS2013 F4 вашего проекта, чтобы просмотреть окно свойств и отключить Анонимный доступ и включить «Аутентификация Windows»,

Тогда это сработает. Не нужно ничего менять

VS 2015 меняет это. Он добавил папку .vs в мой веб-проект и там был apphost.config. Я внес изменения (window authentication = true, anon = false), и он начал предоставлять имя пользователя вместо пробела.

Откройте файл applicationHost.config, расположенный в папке C: \ Users [userid] \ Documents \ IISExpress \ config. Внутри этого файла измените overrideModeDefault anonymousAthentication и windowsAuthentication на «Разрешить»,

   

Следующее изменение lockItem будет «false» для AnonymousAuthenticationModule и WindowsAuthenticationModule

                   

Выполнение этих изменений позволит существующим настройкам веб-конфигурации переопределить то, что находится в файле applicationHost для IIS Express.

Вы также можете изменить свойства проекта для своего веб-проекта, выбрать «Веб» с левых вкладок, а затем изменить раскрывающийся список «Серверы» на «Локальный IIS». Создайте новый виртуальный каталог и используйте диспетчер IIS для настройки вашего сайта / пула приложений по своему усмотрению.

Я предпочитаю этот метод, так как обычно у вас есть локальный каталог (или сайт) IIS для локального тестирования. Вы также не будете влиять на другие сайты.

Свойства веб-проекта

Похоже, что правильный ответ предоставляется пользователем3149240 выше. Однако, как указал Нил Уотсон, здесь воспроизводится файл applicationhost.config.

Изменения могут быть сделаны на панели свойств VS или в файле, хотя и в другом месте. В нижней части файла applicationhost.config находится набор элементов местоположения. У каждого приложения для IIS Express есть один из них. Изменение настроек в пользовательском интерфейсе обновляет этот раздел файла. Таким образом, вы можете либо изменить настройки с помощью пользовательского интерфейса, либо изменить этот файл.

Вот пример с анонимным auth off и Windows auth on:

           

Это эквивалентно в пользовательском интерфейсе VS:

 Anonymous Authentication: Disabled Windows Authentication: Enabled 
Давайте будем гением компьютера.