Назад | Перейти на главную страницу

Включить проверку подлинности Windows на веб-сайте, разрешить только некоторым пользователям

Я исследую эту проблему. У меня есть приложение CGI, которое я публикую через веб-сайт, опубликованный в IIS7.

РЕДАКТИРОВАТЬ: я изменил web.config, чтобы использовать авторизацию URL. Это web.config папки с именем secure, и это web.config этой конкретной папки.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" roles="MyDOMAIN\MyRole" />
                <add accessType="Deny" users="*" />
            </authorization>
        </security>
    </system.webServer>
</configuration>

С этой конфигурацией он не работает, но если я удалю Deny, он снова работает, возможно, порядок правил?

Я изменил конфигурацию веб-сайта, чтобы использовать проверку подлинности Windows, а затем отказал всем пользователям, кроме одного с текущим файлом web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers accessPolicy="Read, Execute, Script" />
        <directoryBrowse enabled="false" />
    </system.webServer>
    <system.web>
      <authentication mode="Windows">
      </authentication>
      <authorization>
        <allow users="MYDOMAIN\myname2"/>
        <deny users="?"/>
        <deny users="*"/>
        <deny users="MYDOMAIN\myname"/>
      </authorization>
   </system.web>
</configuration>

К сожалению, я могу получить доступ к приложению как с помощью myname, так и myname2 (как опубликованная cgi, так и страница приветствия IIS).

Любой намек на то, как его настроить? Спасибо!

РЕДАКТИРОВАТЬ: я нашел этот пост IIS7: как заблокировать доступ с помощью файла web.config? где он отмечает web.config как

>   <system.webServer>
>       <security>
>           <authorization>
>               <remove users="*" roles="" verbs="" />
>               <add accessType="Allow" roles="Administrators" />
>           </authorization>
>       </security>   </system.webServer>

но cgi продолжает выполняться

Материал System.Web применяется к ASP.Net и использует модель авторизации .Net. Судя по тому, как вы используете CGI, я не уверен, что здесь это полностью подходит.

Средства авторизации System.WebServer работают с собственным модулем авторизации URL-адресов IIS и должны применяться к CGI.

Однако предполагается, что он установлен - сначала убедитесь, что он установлен, и у вас также должен быть значок графического интерфейса для его настройки, который может помочь решить проблему.

Кроме того, вы можете использовать отслеживание неудачных запросов, чтобы выяснить, почему каждый элемент работает именно так - см. Эта статья для примера отслеживания кодов состояния 200–399 (например, трассировки без сбоев) с использованием FREB.

Подробнее об авторизации URL Вот.