Подтвердить что ты не робот

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

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

httpcontext.current.user.identity.name

Если я запустил это на своем Dev-сервере, он отлично работает, если я запустил его в режиме отладки в любой предыдущей версии 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>
4b9b3361

Ответ 1

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

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

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

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

<authentication>

            <anonymousAuthentication enabled="false" userName="" />

            <basicAuthentication enabled="false" />

            <clientCertificateMappingAuthentication enabled="false" />

            <digestAuthentication enabled="false" />

            <iisClientCertificateMappingAuthentication enabled="false">
            </iisClientCertificateMappingAuthentication>

            <windowsAuthentication enabled="true">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
            </windowsAuthentication>

</authentication>

Ответ 2

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

Я попробовал изменить IIS express applicationhost.config, без разницы.

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

Заменить анонимную аутентификацию и включить аутентификацию Windows.

Работает как соус:)

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

 <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
                <section name="applicationDependencies" overrideModeDefault="Deny" />
                <sectionGroup name="authentication">
                    <section name="anonymousAuthentication" overrideModeDefault="Allow" />
                    <section name="basicAuthentication" overrideModeDefault="Deny" />
                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="digestAuthentication" overrideModeDefault="Deny" />
                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="windowsAuthentication" overrideModeDefault="Allow" />
                </sectionGroup>

Следующее изменение lockItem должно быть "false" для AnonymousAuthenticationModule и WindowsAuthenticationModule

  <system.webServer>
            <modules>
                <!--
                <add name="HttpCacheModule" lockItem="true" />
-->
                <add name="DynamicCompressionModule" lockItem="true" />
                <add name="StaticCompressionModule" lockItem="true" />
                <add name="DefaultDocumentModule" lockItem="true" />
                <add name="DirectoryListingModule" lockItem="true" />
                <add name="IsapiFilterModule" lockItem="true" />
                <add name="ProtocolSupportModule" lockItem="true" />
                <add name="HttpRedirectionModule" lockItem="true" />
                <add name="ServerSideIncludeModule" lockItem="true" />
                <add name="StaticFileModule" lockItem="true" />
                <add name="AnonymousAuthenticationModule" lockItem="false" />
                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
                <add name="UrlAuthorizationModule" lockItem="true" />
                <add name="BasicAuthenticationModule" lockItem="true" />
                <add name="WindowsAuthenticationModule" lockItem="false" />

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

Ответ 7

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

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

Web Project Properties

Ответ 8

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

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

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

<location path="MyApp">
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

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

Anonymous Authentication: Disabled
Windows Authentication: Enabled