2010-12-07 15 views
11

In meiner ASP.Net-Anwendung verwende ich URL-Routing.
Das URL-Format ist so etwas wie: http://site/{culture}/project/{id}.Web.config: Wildcards in Lage und Autorisierung

Benutzer die Login-und Recovery-Seite zu besuchen, um zu ermöglichen, habe ich die folgenden Einträge in meinem web.config hinzugefügt:

<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> 

Gibt es eine Form der Notation, so dass ich die de-DE überspringen Teil und ersetzen Sie es durch einen Platzhalter?
Ich möchte die Login und Recovery-Seite usw. unabhängig von der Kultur verfügbar sein.

Antwort

1

Mit Blick auf this Post, könnten Sie in der Lage sein, die Erweiterung Ihrer Login-Seite zu ändern und etwas tun, wie folgt aus:

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

Ich habe nicht versucht, aber es ist vielleicht etwas zu versuchen.

4

Ich glaube nicht, dass Sie relative Pfade in der Wurzel web.config platzieren können, aber das ist kein Problem. Sie können die Unterstützung von geschachtelten Web.Config-Dateien zu Ihrem Vorteil verwenden.

Sie können eine web.config-Datei ähnlich wie dies in jedem Ihrer Unterverzeichnisse setzen (Einstellung auf die Bedürfnisse dieser speziellen Verzeichnis entsprechen) und Sie werden die Unterstützung, die Sie suchen bekommen. Es ist auch viel einfacher zu pflegen, da die Einstellungen näher an den von ihnen gesteuerten Code-Dateien liegen.

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

Die Gesamtkonfiguration für Authentifizierungstypen, Rollen usw. würden in der web.config in Ihren Anwendungen Stammverzeichnis erfolgen. Daher können Sie für diese Methode keine separate Anmeldeseite pro Verzeichnis festlegen. Sie können jedoch eine Anmeldeseite verwenden, die bei Bedarf automatisch eine Weiterleitung behandelt (durch Analysieren des ReturnURL-Werts für QueryString).

+2

Leider sind diese nicht wirklich Verzeichnisse. Ich verwende URL-Routing. Es gibt keine en-GB oder nl-NL Ordner etc etc – Zyphrax

+0

So intern Sie die gleichen Dateien für alle Gebietsschemas verwenden, aber Anbringen Abfragezeichenfolgeflag Werte der locale zu bestimmen? –

+0

Ich verwende dieselbe Datei für alle Ländereinstellungen. Es gibt keine Querystring, es ist durch URL-Routing getan. – Zyphrax