2011-03-25 40 views
4

我最近一直在用webforms進行黑客攻擊,看看是否可以使用我的(路由)項目之一。到目前爲止,這只是麻煩,但我幾乎到了它的「作品」即使Request.HttpMethod是「POST」,IsPostback = false?

我做了一個頁面「Test.aspx」。在Global.asax,我做到了,它的服務地址是/test而不是/Test.aspx。這完全可以工作。它來自我的自定義頁面類。自定義類在頁面中找到HtmlForms,並用適當的值重寫它們的Action屬性:/test

現在我點擊了標題爲Viewstate和ASP.Net的偉大磚牆。我用一個OnClick處理程序向Test.aspx添加了一個按鈕。我可以點擊按鈕,頁面將回發等,但OnClick事件不會發生。我並不瞭解簡單的URL更改如何破壞視圖狀態,因爲我並不認爲Viewstate會跟蹤這種情況。此外,即使HttpMethod ==爲true,IsPostback也將爲false。這對我沒有任何意義。

此外,我已禁用EventValidation,因爲我覺得那會很麻煩,但是這個問題依然存在。

如何在重寫URL時像往常一樣使視圖狀態和回發工作?

(注意,我的URL重寫的形式做內部所有重寫,從來就沒有向用戶發送一個HTTP重定向)

回答

0

您可能需要告訴的HttpContext該URL改寫爲好。

嘗試做這樣的事情:

HttpContext.Current.RewritePath("/test"); 
+1

不幸的是,這沒有做什麼。儘管如此,我相信這會讓我的表單重寫代碼變得毫無意義,所以這是件好事。 – Earlz 2011-03-25 02:01:41

+0

這顯然只會替換我的表單重寫代碼,如果在page_load之後完成 – Earlz 2011-03-25 02:41:11

0

的的IsPostBack用於覈查請求是否是從頁面本身的控制。

而HttpMethod用於檢查請求類型。

相關問題