我正在调查这个问题。 我有一个通过IIS7发布的网站发布的CGI应用程序。
编辑:我改变了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>
用这个configuration它不工作,但如果我删除拒绝它再次工作,也许是规则?
我改变了网站configuration,以使用Windows身份validation,然后拒绝所有用户,但与当前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欢迎页面)来访问应用程序。
任何提示如何configuration它? 谢谢!
编辑:我已经find这个职位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授权的东西与IIS的本地URL授权模块一起使用,并且应该适用于CGI。
但是,假设已经安装了它 – 确保它是第一个,并且还应该有一个用于configuration它的GUI图标,这可能有助于解决问题。
此外,您可以使用“失败的请求跟踪”来确定为什么每个项目都按原样工作 – 请参阅本文中有关使用FREB跟踪200-399状态代码(例如,未失败的跟踪)的示例。
更多有关URL授权的信息 。