Je fais un test de bac à sable rapide avec des URL réécrites (exemple tiré du blog de Scott Guthrie) et l'authentification par formulaires/autorisation.Utilisation de l'authentification/autorisation des formulaires avec des URL réécrites
J'ai une configuration très simple.
~/View/(\d{1,6}) => ~/Public/View.aspx?ContentID=$1
ET
~/Buy/(\d{1,6}) => ~/Private/Purchase.aspx?ContentID=$1
J'ai confirmé l'URL Rewriting travaille en naviguant à chacun des éléments suivants séparement
- http://localhost/urltest/Public/View.aspx?contentID=123456
- http://localhost/urltest/View/123456
- http://localhost/urltest/Private/Purchase.aspx?contentID=123456
- http://localhost/urltest/Buy/123456
Ensuite je suis allé et a permis mon authentification par formulaire/Autorisation pour les 2 répertoires dans le web.config. Configuration comme suit
<location path="Private">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="Public">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Cela fonctionne parfaitement lorsque je passe en revue les 2 URL d'origine (les années .aspx) mais ne se déclenche pas du tout quand je passe en revue les versions d'URL réécrites.
J'ai essayé d'ajouter <location>
sections pour Buy
mais séparement parvient toujours pas à faire le module d'autorisation/authentification pour botter.
On peut supposer que c'est parce qu'il ne considère pas ces URL comme ASPX Ressources .. . Je peux contourner en faisant le regard des règles de rewriter pour
<LookFor>~/Buy/(\d{1,6})\.aspx</LookFor>
-à-dire la force la version réécrite pour avoir un ASPX à la fin, mais cela semble juste laid. Y at-il un moyen de déclencher les gestionnaires d'authentification pour n'importe quel type d'URL, quelle que soit l'extension (ou l'absence)
Scott Guthrie donne un aperçu 4 approches différentes, que l'on vous utilisez? http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx – MyItchyChin