环境:IIS 6.0,ASP.NET 3.5
我需要使用Windows身份验证只保护一个文件,并且只是想确保我正确理解我的选项。
有没有办法设置Web配置来控制对单个文件的访问?是否有任何安全属性可以帮助我锁定单个文件?
提前致谢 凯文
答案 0 :(得分:3)
将文件放在自己的目录中,并在其中放置一个web.config文件,该文件具有该目录的授权配置设置,以要求进行Windows身份验证
您无法将身份验证提供商与单个应用混合使用。因此,例如,您不能为〜/ Secure提供〜/和Windows身份验证的表单身份验证。您可能能够通过在IIS中安装〜/ Secure另一个应用程序来解决它 - 但这极大地使部署和测试IMO变得复杂。
我尝试使用域中的基本身份验证来保护ASMX服务时遇到此问题,但与Forms Authenticated页面位于同一个应用程序中。我最终在ASMX服务中攻击了一个基本的auth挑战,以提示凭证。
答案 1 :(得分:2)
这应该可以使用<location>
标记。
http://support.microsoft.com/kb/316871
我知道在过去我做了相反的事情,并使用它来启用对单个资源的访问,并将所有其他资源拒绝给未经身份验证的用户。应该反向工作。
答案 2 :(得分:0)
如果要应用web.config,则需要确保放置它的目录是IIS虚拟目录。这应该是诀窍,因为web.config的安全限制将管理该目录中的所有文件。