gpt4 book ai didi

asp.net-mvc - 使用 ASP.NET MVC,有没有办法捕获所有 POST 请求,而不管主机的 URL 是什么?

转载 作者:行者123 更新时间:2023-12-05 01:10:12 27 4
gpt4 key购买 nike

我在调试一个 MVC 应用程序时遇到了问题,我希望它有一个依赖部分来发布。

有没有一种简单的方法来配置 MVC 4 应用程序以拦截所有 POST 请求,以便我可以看到它试图发布到哪个 URL 以及响应是什么?

最佳答案

通常,您需要一个全局过滤器。但是,由于在确定路线之前不会触发,因此在这种情况下它可能对您没有帮助。

您可以尝试的一件事是添加 Application_BeginRequest global.asax 中的方法。它甚至不需要做任何事情。只需在其中设置一个断点,然后检查 Request.AppRelativeCurrentExecutionFilePath (或 Request 的其他成员)查看入站路径是什么。

    protected void Application_BeginRequest()
{
if (Request.HttpMethod.Equals("post", StringComparison.InvariantCultureIgnoreCase))
{ // Breakpoint here

}
}

global filter”是将行为等注入(inject)管道的首选方法。 MVC 已经实现了其中的一些,您也可以扩展或实现自己的。

我去年实现的一个具体示例:客户端站点具有使密码过期的功能。伟大的;工作正常,当用户被告知立即更改它时。但他们发现他们可以导航到网站的另一部分,直到他们下次登录时才会再次提示。所以我们添加了一个全局过滤器来检查密码是否过期(以及我们是否已经检查过在此 session 中),如果是,则重定向到“更改密码”屏幕。改变之后,他们可以回到原来的地方。

但是,在找出路由或绑定(bind)问题时,这样做的缺点是:路由引擎在全局过滤器获取请求之前已经评估了请求。如果它无法识别目标操作,您的过滤器甚至不会被命中。所以在这种情况下,像 Application_BeginRequest 这样的低级特征是您唯一现实的选择。

关于asp.net-mvc - 使用 ASP.NET MVC,有没有办法捕获所有 POST 请求,而不管主机的 URL 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com