我做了一些改寫URL的快速沙盒測試(例如,從斯科特Guthrie的博客取)和窗體身份驗證/授權。使用窗體身份驗證/授權與重寫的URL
我有一個非常簡單的設置。
~/View/(\d{1,6}) => ~/Public/View.aspx?ContentID=$1
和
~/Buy/(\d{1,6}) => ~/Private/Purchase.aspx?ContentID=$1
我已確認該URL重寫是通過瀏覽到每個工作下列seperately
- 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
接下來,我去了,使我的窗體身份驗證/授權在Web.config的2個目錄。設置如下
<location path="Private">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="Public">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
這工作完全當我瀏覽到2頁原來的URL(在.aspx的) 但是當我瀏覽到URL重寫版本不火的。
我已經嘗試添加<location>
章節Buy
seperately但是這仍然無法使授權/認證模塊在踢。
據推測,這是因爲它不處理這些URL作爲ASPX資源..我可以通過將重寫規則找
<LookFor>~/Buy/(\d{1,6})\.aspx</LookFor>
即強制改寫的版本有一個ASPX末繞過它,但這似乎只是醜陋。 反正是有得到驗證處理程序,以火無論擴展名的URL類型(或缺乏存在的)
斯科特Guthrie的概述4種不同的方法,您使用的是哪一個? http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx – MyItchyChin 2009-07-18 08:35:13