[英]Using ASP.NET MVC3 AntiForgery token from CCW
我有一些遗留应用程序,目前正在向MVC3表单发布基本信息。 我想将其分离为GET并传递查询字符串中的值。 很容易。 但是,我想在请求中添加一个防伪标记。 首先,这看起来是一个不错的选择吗? 其次,是否有从非MVC3模块到MVC3表单实现此类功能的任何示例?
我的另一种选择是加密查询字符串。
ASP.NET实现的Anti-Forgery Token是一种防止CSRF(corss-site-request-forgery)并且只能用于HTTP POST
。
由于您正在实现基于GET
的“API”,因此该令牌将不起作用(请注意限制,例如查询字符串的长度)。
我不确定你的目标是什么......根据你的目标,解决方案是加密或签署查询字符串或两者。
您可以在每个帖子中使用此mvc3操作。 您只需要确保您的postdata与serverside对象匹配。 是的,你必须使用防伪标记来确保安全。
在javascript中你可以使用jQuery制作一个这样的帖子。 正如您所看到的,我不使用表单,只是一些javascript代码。 Mvc可以完美地处理这个问题。
$.ajax({
type: 'POST',
url: urlToYourMvcAction,
data: {
name: 'John Doe',
age: 25
},
success: successCalback,
error: errorCallback);
public class Person
{
public int Id { get; set; }
public string Name { get; ;set }
public int Age { get; set; }
}
public class PersonController : Controller
{
[HttpPost]
public ActionResult Add(Person person)
{
//Your code
}
}
您可以使用旧应用程序中的c#WebClient对象轻松发出相同的发布请求。 您可以使用fiddler或开发人员工具检查请求并传递发布所需的正确参数。
哦,使用get请求可以在请求变大时给您带来麻烦。 帖子用于将数据发送到服务器。 获取用于从服务器获取数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.