IIS Express Windows Аутентификация - PullRequest
242 голосов
/ 21 января 2011

Я пытаюсь использовать 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.Есть ли параметр конфигурации, который мне не хватает?

Ответы [ 8 ]

398 голосов
/ 24 августа 2011

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

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

enter image description here

Я считаю, что это решение лучшек вариантам Викомолла.

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

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

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

272 голосов
/ 27 января 2011

опция-1 :

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

<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 applicationhost.config:

<authentication>

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

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

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

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

9 голосов
/ 21 апреля 2011

Опираясь на ответ от booij boy, проверьте, проверили ли вы функцию «Windows аутентификация» в Панель управления -> Программы -> Включить или отключить функции Windows -> Информационные службы Интернета -> Службы всемирной паутины -> Безопасность

Также, кажется, есть большая разница при использовании Firefox или Internet Explorer. После включения «аутентификации Windows» у меня все работает, но только в IE.

5 голосов
/ 20 августа 2013

В дополнение к этим замечательным ответам, в контексте среды разработки IISExpress и для предотвращения печально известной ошибки «system.web/identity@impersonate», вы можете просто убедиться, что на вашем хосте приложения установлена ​​следующая настройка .config файл.

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

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

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

2 голосов
/ 27 марта 2014

В IIS Manager нажмите на свой сайт.Вы должны быть «в представлении функции» (а не в «представлении содержимого»)

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

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

0 голосов
/ 19 июля 2016

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

0 голосов
/ 14 июля 2016

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

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

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

  1. Щелкните правой кнопкой мыши папку решения
  2. выберите «Свойства»
  3. В разделе Attributes установите флажок Hidden (по умолчанию не установлено),
  4. , затем нажмите кнопку «Применить»
  5. Появится окно подтверждения «Применить изменения к этой папке, подпапке».и опция «Файлы» выбрана, нажмите «ОК».

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

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

0 голосов
/ 22 февраля 2016

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

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

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...