我需要使用 IIS7 上的 web.config 文件对服务器上的“dev”子域进行密码保护。除了文件和 web.config 之外,我无法访问任何其他内容,因此很遗憾我无法安装模块或其他类似的东西。我检查了大约 6 个其他答案,但它们似乎都不能满足我的需要,或者根本不能满足我的需要。
子域名不是根域名的子文件夹,包含子域名的文件夹是根域名的兄弟文件夹,因此就像“account/domain.com”和“account/dev.domain.com”。
我不在乎它是否使用密码、IP 地址、cookie 或其他什么,我只想保护域名,以便只有我在开发时才能查看它。
答案1
我能够通过在子域的 Web 根目录中创建一个单独的 web.config 文件来保护子域(该文件在物理上作为根域内的子目录存在)。我认为此解决方案适用于子域以及域的基本子目录。
在 web.config 文件中,我添加了以下内容。为了清晰起见,我删除了无关的指令,但我想显示 web.config 文件的完整 xml 结构:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<basicAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
重要的部分是在身份验证部分(位于配置> system.webServer>安全内)添加两个身份验证指令。
请注意,此方法要求我使用托管服务提供的主“服务器”登录,并且我无法手动指定要使用的用户名和密码。
但是,如果您需要快速保护 IIS7 服务器上的子目录或子域,这应该可以解决问题。我相信您需要使用的凭据是您用于访问 FTP 服务器的凭据,但我不确定这些凭据是否与所有人的“托管控制面板”凭据相同,还是仅适用于我的主机。