Specify more than one directory in Web.Config's Location Path element

前端 未结 4 1886
青春惊慌失措
青春惊慌失措 2020-12-03 20:54

In my ASP.NET\'s Web Config file I have the following location elements defined:

  
    
      

        
相关标签:
4条回答
  • 2020-12-03 21:08

    sorry, but path property doesn't allow to use "," so you must write tag for all path, Or you can create web.config in each directory.

    0 讨论(0)
  • 2020-12-03 21:10

    it is possible to set path to a specific folder. For example we have some aspx pages:

    • /data/pages/form1.aspx
    • /data/pages/form2.aspx
    • /data/pages/form3.aspx

    By creating this rule in web.config:

    <location path="data/pages">
        <system.webServer>
            <httpProtocol>
                <customHeaders>
                    <remove name="X-Frame-Options" />
                    <add name="X-Frame-Options" value="SAMEORIGIN" />
                </customHeaders>
            </httpProtocol>
        </system.webServer>
    </location>
    

    All resources in data/pages will be affected.

    0 讨论(0)
  • 2020-12-03 21:26

    I had a similar issue. so went with the normal way of creating separate tags, no other BETTER solution.

    0 讨论(0)
  • 2020-12-03 21:31

    You cannot specify multiple elements in the path attribute, but you can make use of the configSource attribute.

    For example, the following original web.config file:

    <?xml version="1.0"?>
    <configuration>
      <location path="form1.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="form2.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="form3.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="form4.aspx">
        <system.web>
          <authorization>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="form5.aspx">
        <system.web>
          <authorization>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="form6.aspx">
        <system.web>
          <authorization>
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
    </configuration>
    

    Can be replaced by the following equivalent web.config, allow.config, and deny.config files:

    web.config

    <?xml version="1.0"?>
    <configuration>
      <location path="form1.aspx">
        <system.web>
          <authorization configSource="allow.config" />
        </system.web>
      </location>
      <location path="form2.aspx">
        <system.web>
          <authorization configSource="allow.config" />
        </system.web>
      </location>
      <location path="form3.aspx">
        <system.web>
          <authorization configSource="allow.config" />
        </system.web>
      </location>
      <location path="form4.aspx">
        <system.web>
          <authorization configSource="deny.config" />
        </system.web>
      </location>
      <location path="form5.aspx">
        <system.web>
          <authorization configSource="deny.config" />
        </system.web>
      </location>
      <location path="form6.aspx">
        <system.web>
          <authorization configSource="deny.config" />
        </system.web>
      </location>
    </configuration>
    

    allow.config

    <?xml version="1.0"?>
    <authorization>
      <allow users="*"/>
    </authorization>
    

    deny.config

    <?xml version="1.0"?>
    <authorization>
      <deny users="*"/>
    </authorization>
    

    The usefulness of this approach increases as the number of allow/deny rules in each section increases.

    0 讨论(0)
提交回复
热议问题