2010-12-07 11 views
11

En mi aplicación ASP.Net estoy usando enrutamiento de URL.
El formato de la url es algo así como: http://site/{culture}/project/{id}.Web.config: comodines en la ubicación y la autorización

Para permitir a los usuarios a visitar la página de registro y recuperación, he añadido las siguientes entradas a mi 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> 

¿Existe una forma de notación para que pueda saltar la es-ES parte y reemplazarlo con un comodín?
Quiero que la página de inicio de sesión y de recuperación esté disponible independientemente de la cultura.

Respuesta

1

En cuanto a this posterior, es posible que pueda cambiar la extensión de la página de inicio de sesión y hacer algo como lo siguiente:

<system.webServer> 
    <security> 
    <requestFiltering> 
     <fileExtensions> 
     <add fileExtension=".login" allowed="true" /> 
     </fileExtensions> 
    </requestFiltering> 
    </security> 
</system.webServer> 

No he probado esto, pero es tal vez algo a intentar.

4

No creo que pueda colocar rutas relativas en la raíz web.config, pero eso no es una preocupación. Puede utilizar la compatibilidad de archivos Web.Config anidados para su ventaja.

Puede colocar un archivo web.config similar a este en cualquiera de sus directorios secundarios (ajustándose a las necesidades de ese directorio específico) y obtendrá el soporte que busca. También es mucho más fácil de mantener ya que la configuración está más cerca de los archivos de código que controlan.

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

La configuración general de los tipos de autenticación, roles, etc. se llevaría a cabo en el web.config en el directorio de aplicaciones raíz. Como resultado, no puede establecer una página de inicio de sesión separada por directorio desde este método, pero podría tener una página de inicio de sesión que manejara automáticamente una redirección cuando sea necesario (mediante el análisis del valor ReturnURL QueryString).

+2

Desafortunadamente estos no son directorios reales. Estoy usando el enrutamiento url. No hay ninguna carpeta en-GB o nl-NL, etc. – Zyphrax

+0

¿Está internamente utilizando los mismos archivos para todas las configuraciones regionales, pero adjuntando valores de cadena de consulta para determinar la configuración regional? –

+0

Estoy usando el mismo archivo para todas las configuraciones regionales. No hay querystring, se hace por enrutamiento url. – Zyphrax

Cuestiones relacionadas