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

Аутентификация Windows IIS Express

Я пытаюсь использовать IIS Express с VS2010 для размещения приложения silverlight. Я изменил свой файл applicationhost.config, чтобы разрешить изменение правильных параметров конфигурации. В моем web.config есть следующее:

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

Я не аутентифицирован, и мой вызов службы домена возвращает нулевую запись в качестве пользователя. Я смог заставить это работать после установки VS2010 SP1 BETA, но я пытаюсь заставить это работать только с IIS Express.

Как включить проверку подлинности Windows с IIS Express. Есть ли параметр конфигурации, который мне не хватает?

4b9b3361

Ответ 1

вариант-1

отредактируйте файл \My Documents\IISExpress\config\applicationhost.config и включите функцию windowsAuthentication, например:

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

параметр-2:

Разблокируйте раздел WindowsAuthentication в \My Documents\IISExpress\config\applicationhost.config следующим образом

<add name="WindowsAuthenticationModule" lockItem="false" />

Изменить параметры переопределения для требуемых типов проверки подлинности: "Разрешить"

<sectionGroup name="security">
    ...
    <sectionGroup name="system.webServer">
        ...
        <sectionGroup name="authentication">
            <section name="anonymousAuthentication" overrideModeDefault="Allow" />
            ...
            <section name="windowsAuthentication" overrideModeDefault="Allow" />
    </sectionGroup>
</sectionGroup>

Добавить в приложение web.config следующее

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
</configuration>

Ниже ссылка может помочь: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

После установки VS 2010 SP1 может потребоваться применение опции 1 + 2 для проверки подлинности Windows. Кроме того, вам может потребоваться установить анонимную аутентификацию в значение false в приложении IIS Express application.config:

<authentication>

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

для VS2015, конфигурационный файл приложения-приложения IIS Express может быть расположен здесь:

$(solutionDir)\.vs\config\applicationhost.config

и параметр <UseGlobalApplicationHostFile> в файле проекта выбирает конфигурационный файл по умолчанию или для решения.

Ответ 2

Visual Studio 2010 SP1 и 2012 добавили поддержку IIS Express, устраняя необходимость редактирования угловых скобок.

  • Если вы еще этого не сделали, щелкните правой кнопкой мыши проект, настроенный на веб-дизайн, и выберите "Использовать IIS Express...".
  • После завершения выберите веб-проект и нажмите F4, чтобы сфокусировать панель "Свойства".
  • Задайте для свойства "Аутентификация Windows" значение "Включено", а свойство "Анонимная аутентификация" - "Отключено".

enter image description here

Я считаю, что это решение превосходит опции vikomall.

  • Вариант №1 является глобальным изменением для всех сайтов IIS Express.
  • Вариант № 2 оставляет развитие cruft в web.config.
    • Кроме того, это, вероятно, приведет к ошибке при развертывании в IIS 7.5, если вы не выполните процедуру "разблокировки" на сервере IIS applicationHost.config.

В приведенном выше решении на основе пользовательского интерфейса используются элементы местоположения на сайте в приложении IIS Express applicationHost.config, оставляя приложение нетронутым.

Дополнительная информация здесь: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx

Ответ 3

Основываясь на ответе от booij boy, проверьте, проверяете ли вы функцию проверки подлинности Windows Панель управления → Программы → Включить функции Windows в или из → Информационные службы Интернета → Услуги World Wide Web → Безопасность

Кроме того, существует большая разница при использовании Firefox или Internet Explorer. После добавления "проверки подлинности Windows" он работает для меня, но только в IE.

Ответ 4

В дополнение к этим замечательным ответам в контексте среды IISExpress dev и для того, чтобы помешать печально известной ошибке "system.web/[email protected]", вы можете просто обеспечить, чтобы в вашем приложении .config.

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

Это позволит вам проявлять большую гибкость во время разработки и тестирования, хотя перед тем, как это сделать, убедитесь, что вы понимаете последствия использования этого параметра в рабочей среде.

Полезные сообщения:

Ответ 5

В диспетчере IIS нажмите на свой сайт. Вам нужно быть "в представлении объектов" (а не "просмотр содержимого" )

В разделе IIS "Feature view" выберите так называемую функцию "аутентификация", и doulbe щелкните по нему. Здесь вы можете включить проверку подлинности Windows. Это также возможно (я думаю, в одном из предложений в потоке) установкой в ​​файле web.config(...)

Но, возможно, у вас есть web.config, с которым вы не хотите слишком много обходить. Тогда этот поток не будет слишком полезен, поэтому я добавил этот ответ.

Ответ 6

Этот ответ может помочь, если: 1) ваш сайт использовался для проверки подлинности Windows перед обновлением до Visual Studio 2015 и 2), и ваш сайт пытается загрузить /login.aspx (даже если на вашем сайте нет такого файла).

Добавьте следующие две строки в раздел appSettings вашего сайта Web.config.

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

Ответ 7

В том же примечании - VS 2015,.vs\config\applicationhost.config не отображается или недоступно.

По умолчанию папка .vs скрыта (по крайней мере, в моем случае).

Если вы не можете найти папку .vs, выполните следующие шаги.

  • Щелкните правой кнопкой мыши папку Solution
  • выберите "Свойства"
  • В разделе Attributes установите флажок Hidden (по умолчанию не установлен),
  • затем нажмите кнопку "Применить"
  • Появится окно подтверждения "Применить изменения к этой папке, вложенной папке и файлам", нажмите "ОК".

    Повторите шаги с 1 по 5, за исключением step 3, на этот раз вам нужно uncheck параметр "Скрытый", который вы отметили ранее.

Теперь вы должны иметь возможность видеть папку .vs.

Ответ 8

Сделав все в приведенных выше ответах, я понял, что я не запускаю Visual Studio в качестве администратора. После запуска в качестве администратора проблема решена.

Ответ 9

Если ни один из ответов не поможет, вам может потребоваться настроить свойства проекта. Проверьте этот другой ответ Qaru о том, как это сделать:

fooobar.com/info/58355/...