Web.config: Wildcards in location and authorization

asp.net, url-routing, web-config

Solution

I don't believe you can place relative paths in the root web.config, but that isn't a concern. You can use the support of nested Web.Config files to your advantage.

You can place a web.config file similar to this in any of your sub directories (adjusting to suit the needs of that specific directory) and you'll get the support you seek. It is also a lot easier to maintain as the settings are closer to the code files they control.

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
</configuration>

The overall configuration for authentication types, roles, etc. would be done in the web.config in your applications root directory. As a result, you can't set a separate login page per directory from this method, but you could have a login page that automatically handled a redirect when needed (by analyzing the ReturnURL QueryString value).

Problem

In my ASP.Net application I'm using URL routing. The url format is somewhat like: `http://site/{culture}/project/{id}`. To allow users to visit the login and recovery page, I've added the following entries to my web.config: ``` <location path="en-GB/login"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="nl-NL/login"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="login"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> ``` Is there a form of notation so that I can skip the en-GB part and replace it with a wildcard? I want the login and recovery page etc. to be available regardless of the culture.

Original source

Related problems