【发布时间】:2012-10-15 17:18:43
【问题描述】:
我有一些遗留应用程序当前正在将基本信息发布到 MVC3 表单。我想将其分离到 GET 并传递查询字符串中的值。很容易。但是,我想在请求中添加一个防伪令牌。首先,这似乎是一个不错的选择吗?其次,有没有从非 MVC3 模块到 MVC3 表单实现这种功能的例子?
我的另一种选择是加密查询字符串。
【问题讨论】:
-
如果您的 new GET 操作将在您的应用程序中执行更改(这是有道理的,因为它们曾经是 POST),您将违反定义的 HTTP-GET 规范W3C,它说 GET 请求必须是安全的和只读的。如果您不遵循这种方法...如果 Google 的抓取工具将您的网站编入索引,您迟早会发现您的应用程序中存在不一致
-
我同意 Jupaol 的观点,它违反了 http 规范。为什么不在 MVC 中保留作为发布请求?但是,您的非 mvc3 模块将无法拥有 mVC3 使用的适当防伪令牌,因此您将被困在试图找出其他东西的过程中。如果没有状态被改变,那么你不需要防伪,只需要身份验证。
-
他们没有进行任何修改,这就是我们想要将 POST 移至 get 的原因。 POST 用于隐藏正在传递的值。
标签: c# asp.net asp.net-mvc asp.net-mvc-3 c#-4.0