在网站上启用 Windows 身份验证,仅允许部分用户

在网站上启用 Windows 身份验证,仅允许部分用户

我正在调查这个问题。我有一个 CGI 应用程序,我通过 IIS7 中发布的网站发布。

编辑:我更改了 web.config 以使用 url 授权。这是名为 secure 的文件夹的 web.config,这是该特定文件夹的 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>

使用该配置它不起作用但如果我删除拒绝它就会再次起作用,也许是规则顺序?

我更改了网站配置以使用 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 仍在继续执行

答案1

System.Web 内容适用于 ASP.Net,并使用 .Net 授权模型。根据您对 CGI 的使用,我不确定这是否完全适合此处。

System.WebServer 授权功能与 IIS 的本机 URL 授权模块配合使用,并且应该适用于 CGI。

但是,这假设它已经安装 - 确保它首先安装,并且您还应该有一个用于配置它的 GUI 图标,这可能有助于解决问题。

此外,您可以使用失败请求跟踪来找出每个项目正常运行的原因 - 请参阅本文例如,使用 FREB 跟踪 200-399 状态代码(例如,未失败的跟踪)。

有关 URL 授权的更多信息这里

相关内容