ASP LinkBut​​ton是否总是触发POST?

时间:2011-11-30 06:46:13

标签: c# asp.net

我在页面上有一个“删除文件”链接:

<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:“按钮只是将网页发回服务器。”。

我读到这个吗?非人类用户是否有机会跟踪此删除链接?

2 个答案:

答案 0 :(得分:1)

任何ASP.NET事件都是通过POST发生的,它被广泛称为PostBack。虽然,可以使用JavaScript使用__doPostBack方法模拟这些PostBack,但这是不寻常的。

Google Bots不会抓取PostBack链接,而且这方面有好的和坏的部分。

如果您正在考虑安全问题,那么在实际执行删除代码之前,您应该在会话中或在某处确定已登录用户的登录标记。

答案 1 :(得分:0)

解决问题的简单方法是,如果您希望仅向已登录用户访问该页面,则可以在web.config上指定。所以未经过身份验证的用户无法访问该页面。所以不会发表任何帖子。