2010-10-04 47 views
0

我想通過指定一個字符串數組並檢查當前URL是否符合自定義HttpModule中的某個條件來強制在站點周圍的某些頁面上使用SSL,例如登錄,註冊等。 它運作良好,只要網址能正確反映網頁,但我使用路由表,所以有些請求我指向登錄頁面,如果一個頁面需要登錄,我最終會在屏幕上顯示一個登錄頁面,並且成員區域的URL。 有沒有辦法找到頁面的實際文件名?如何獲取任何頁面的文件名而不管URL?

實施例:
http://www.mysite.com/login - 文件名是login.aspx的,這是不通過鏈接反射。 http://www.mysite.com/members - 文件名仍然爲Login.aspx如果用戶沒有登錄

回答

2

而不是使用網址,你可以使用類名。?

If TypeOf(Page) Is LoginPage Then 

End If 
+0

是的,我可以。但是,如果我已經在頁面上,我不妨獲取文件名(或masterpage,所以我不必複製代碼)。我想在HttpModule中這樣做,以加快處理速度,因爲我可以在頁面生命週期的早期階段觸發重定向。此外,目前所有這些頁面都使用相同的主頁面,但這不一定會保持不變。 – Shagglez 2010-10-04 13:20:13

+0

我會把代碼放在一個繼承的基本頁面中,並以這種方式共享代碼,而不是將它放在母版頁中。 – adam0101 2010-10-04 13:26:28

+1

Basepage是一個更好的主意,謝謝。標記爲已接受。我最終使用Page.AppRelativeVirtualPath來獲取文件名,因爲否則我需要以不同的方式繼承頁面。 – Shagglez 2010-10-04 14:16:26

0
System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath); 
+0

不,因爲我是路由表,這隻能返回路徑,而不是實際的文件名 – Shagglez 2010-10-04 13:07:36

相關問題