2010-12-07 43 views
11

Dans mon application ASP.Net, j'utilise le routage d'URL.
Le format de l'URL est un peu comme: http://site/{culture}/project/{id}.Web.config: caractères génériques dans l'emplacement et l'autorisation

Pour permettre aux utilisateurs de visiter la page de connexion et de récupération, j'ai ajouté les entrées suivantes à mon 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> 

Y at-il une forme de notation pour que je puisse ignorer l'en-GB partie et le remplacer par un caractère générique?
Je veux que la page de connexion et de récupération, etc., soit disponible quelle que soit la culture.

Répondre

1

regardant this poste, vous pourriez être en mesure de changer l'extension de votre page de connexion et faire quelque chose comme ce qui suit:

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

Je ne l'ai pas essayé, mais il est peut-être quelque chose à tenter.

4

Je ne crois pas que vous puissiez placer des chemins relatifs dans la racine web.config, mais ce n'est pas un problème. Vous pouvez utiliser le support des fichiers Web.Config imbriqués à votre avantage.

Vous pouvez placer un fichier web.config similaire à celui-ci dans l'un de vos sous-répertoires (en l'adaptant aux besoins de ce répertoire spécifique) et vous obtiendrez le support que vous recherchez. Il est également beaucoup plus facile à maintenir car les paramètres sont plus proches des fichiers de code qu'ils contrôlent. La configuration générale pour les types d'authentification, les rôles, etc. sera effectuée dans le fichier web.config du répertoire racine de votre application. Par conséquent, vous ne pouvez pas définir une page de connexion distincte par répertoire à partir de cette méthode, mais vous pouvez avoir une page de connexion qui gère automatiquement une redirection si nécessaire (en analysant la valeur ReturnURL QueryString).

+2

Malheureusement ce ne sont pas de vrais répertoires. J'utilise le routage d'URL. Il n'y a pas de dossier en-GB ou nl-NL etc etc – Zyphrax

+0

Donc, en interne, vous utilisez les mêmes fichiers pour tous les paramètres régionaux, mais en associant des valeurs de chaîne de requête pour déterminer les paramètres régionaux? –

+0

J'utilise le même fichier pour tous les paramètres régionaux. Il n'y a pas de chaîne de requête, c'est fait par routage d'URL. – Zyphrax