c# - 隐藏一个QueryString参数,怎么办?

标签 c# asp.net-mvc-4 asp.net-mvc-routing

我有一个网址:像这样:http://www.example/about/49
我希望它被视为 http://www.example/about/,但我必须将此参数作为 传递QueryString 参数。

这可能吗?

最佳答案

小心 session 变量;打开多个页面很容易,这些页面都使用相同的 session 并最终混合值。

最好使用 TempData,它只允许使用一次值(在第一次访问时删除)。但是,这意味着该值将几乎立即使用。

您还可以编写一个具有所需值的 cookie,拦截请求(ASP.Net 提供了多种方法,例如 BeginRequest 事件),并在内部将 URL 处理为尽管它包含值。

当然,您随后必须清除 cookie(这与基于 session 的解决方案存在相同的问题)。请记住,cookie 更容易在客户端被篡改。

就我个人而言,我认为这些方法中的任何一种都比它们的值(value)更麻烦。 “Hackable URLs ”(例如包含可能有意义的 ID 的那些)通常是的东西。

关于c# - 隐藏一个QueryString参数,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16686057/

相关文章:

c# - 从动态创建的类中调用构造函数和方法

c# - 向 WPF 窗口实例添加资源

asp.net-mvc - 包含 System.Web.Mvc 库时 HttpGet 属性不可用

c# - ASP.Net MVC - 如何在并发请求期间以安全的方式在 MVC Controller 中存储值?

c# - MV4 路由 来自 MySQL 数据库的动态路由

c# - 如何在 MVC 应用程序中处理多种语言?

c# - 如何将工作分配给计算机池

c# - 将各种数据一起发布的最佳方式(Web API)

asp.net-mvc-4 - 捆绑已关闭,但我仍然想要版本控制

asp.net-mvc - 处理 MVC 中的无效 URL