web.config <location>中带点的路径

时间:2016-09-07 09:04:06

标签: iis web-config basic-authentication

我需要在web.config文件中添加一个location元素,但是路径以点开头(我认为我不能改变那条路径,它是letsencrypt自动化的。)

如果我让点,就像<location path=".well-known/acme-challenge"></location>一样,该网站根本没有启动(我认为web.config文件根本没有被解析,因为我得到的页面要求我配置customErrors,但是它已经配置好了,通常工作正常)

如果我删除了点,就像在<location path="well-known/acme-challenge"></location>中一样,web.config文件已正确加载,但当然这对我配置任何我想要的位置没有帮助。

最终目标是仅在此路径上禁用基本身份验证(我需要其他网站);我甚至不知道我是否能够在<location>元素中进行设置。

2 个答案:

答案 0 :(得分:11)

我有一个类似的问题,我有一个ASP.NET Forms网站,强制所有页面上的身份验证。

要扩展已接受的答案,这里是我放在/.well-known文件夹(不是/.well-known/acme-challenge文件夹)中的确切web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <!-- This will stop any redirects you have at the higher level -->
    <httpRedirect enabled="false" />

    <!-- This will stop any integrated mode settings you have at the higher level -->
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>

  <!-- This will allow unauthenticated users to acme-challenge subfolder -->
  <location path="acme-challenge">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

添加此文件后,我可以使用EcdsaAcmeNet对IIS中的网站使用Lets Encrypt。

答案 1 :(得分:3)

正如Ondrej Svedjdar在评论中所建议的,解决方案非常简单,我没有考虑过。

只需在您需要的文件夹中添加另一个web.config文件。

相关问题