gpt4 book ai didi

c# - 在 asp.net 中重定向用户的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:20:14 25 4
gpt4 key购买 nike

我是 asp.net 开发的新手。我目前正在开发 asp.net web 应用程序。在解决问题时遇到异常“线程正在中止”。我浏览了几篇文章以深入了解异常。

我读了这篇很棒的文章 on codeprojectShivprasad koirala 向我解释了 Server.TransferResponse.Redirect 的使用。

然后我去了this post by Thomas Marquardt这让我得出结论 Respose.Redirect(url,false) 但更好用

Server.ClearError();
Response.Redirect(url, false);
Context.ApplicationInstance.CompleteRequest();

但又是this article通过 Imrambaloch 说使用 Response.Redirect(url, false) 存在安全问题,改为使用

Response.Redirect(url, false);
var context = HttpContext.Current;
if (context != null)
{
context.ApplicationInstance.CompleteRequest();
}

最后我有点困惑,因为哪种是推荐的重定向方式。

我的问题:重定向用户以消除安全问题和性能问题的最佳方法是什么?

Response.Redirect 相比,Server.Transfer 真的那么糟糕吗?

最佳答案

添加到@William 的回答:

Server.Transfer 方法不会更改浏览器中的 Url,而是将用户重定向到新页面。它在服务器上保留上一页的信息,而 Response.Redirect 完全重定向而不保留上一页的状态。

为了性能,Response.Redirect 有另一个参数 endResponse(bool)。在第二个参数中传递 true 可能会使您的应用程序变慢,因为不建议使用 EndResponse() 即使您手动完成响应也是如此。而是按照您列出的博客中的建议使用 Context.ApplicationInstance.CompleteRequest()。

关于c# - 在 asp.net 中重定向用户的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30356235/

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