2011-11-30 57 views
1

我有一個「刪除文件」頁面上的鏈接:ASP LinkBut​​ton是否總是觸發POST?

<form id="myForm" runat="server"> 
<asp:LinkButton 
    ID="deleteFileLink" 
    runat="server" 
    OnClientClick="javascript:return confirm('Are you sure?');" 
    OnClick="deleteFileLink_Clicked"> 
     (delete) 
</asp:LinkButton> 
</form> 

我想鏈接到觸發POST,從來沒有一個GET - 網頁(應該)只能是登錄的用戶訪問,但顯然我希望GoogleBot等不可能刪除文件。

doc強烈建議LinkBut​​ton總是觸發一個POST:「該按鈕只是將網頁發回服務器。」

我看完這個吧?這個刪除鏈接是否有可能被非人類用戶使用?

回答

1

任何ASP.NET事件都是通過POST發生的,它被廣泛稱爲PostBack。雖然,這些PostBack可以使用使用JavaScript的__doPostBack方法來模擬,但那是不尋常的。

谷歌機器人不會通過回發鏈接爬行,這有好的和壞的部分。

如果您正在考慮安全問題,則應在您的會話或某處標識登錄用戶的登錄標誌,然後才能實際執行刪除代碼

+0

該頁面只能被登錄用戶訪問,我只是想確認一下。感謝您的放心。 – George

0

簡單的解決問題的方法是,如果您希望該頁面只能被登錄用戶訪問,則可以在web.config上指定。所以未經認證的用戶無法訪問該頁面。所以不會有任何表演。

+1

這仍然是一個動作而不是一個外觀,所以它仍然覆蓋了GET永遠不會改變服務器狀態的規則,即客戶端通常可以觀察到的狀態(即除了日誌記錄,「最後訪問的站點」等),無論身份驗證細節。 –

相關問題