2015-09-01 64 views
1

我想知道是否可以限制只能访问ASPX页面的HTTP POST请求方法?这个受限制的页面将用于渲染一些复杂的内容。我想用它来进行ajax调用,这会将该内容返回到另一个页面上的div。是否可以禁用GET请求,以便用户无法通过浏览器中的URL无意中访问它?ASP.NET页面POST only only

回答

2

您不能阻止用户发出GET请求。你可以在服务器上选择你不会提供这些服务的人。例如像:

if (!string.Equals(Request.HttpMethod, "POST")) 
    { 
     Response.StatusCode = 405; 
     Response.End(); 
    } 

这可以Page_Load事件,甚至在HttpModule来实现(如果你需要它更多页面,等等)。

+0

更好地输出一个[405状态](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6)比抛出一个异常(我认为会返回一个500) 。 – Quentin

+0

@Quentin - 你是对的;更新。 –

+0

如果你使用的是WebForms,你也可以使用'Page.IsPostBack'而不是检查'Request.HttpMethod'。 – TryingToImprove