我是mvc的新手。所以我会阅读一些关于AntiForgeryToken用法的文章。 AntiForgeryToken在页面中发出加密值,当表单发布时,加密值& AntiForgeryToken的cookie进入服务器端,比较两个值来检查两者是否相同。如果没有,则抛出错误。
我对AntiForgeryToken的问题很少
1)服务器端如何进行比较。我是否需要编写任何代码来比较值,或者当动作方法具有[ValidateAntiForgeryToken()]等属性时自动完成?
[ValidateAntiForgeryToken()] public ActionResult Edit(ProductDetails productdetails) {
}
2)如果我想在页面显示时加密用户ID,那么可以编写像@Html.AntiForgeryToken(m=> m.userid)
这样的代码吗?如果有可能,那么当表单发布时,如何从服务器端获取用户标识值,因为用户标识将被加密。
AntiForgeryToken()
实现salt概念?
4)我可以将多个AntiForgeryToken()
以单一形式加密多个敏感数据吗?如果不可能那么请告诉我原因。
5)如何对密钥进行AntiForgeryToken()
加密......密钥将由我提供,每次都是动态的?
请明智地给出答案。感谢
关于动态盐
要生成随机字符串,请使用RNGCryptoServiceProvider。
public string GenerateSalt(int length)
{
var rng = new RNGCryptoServiceProvider();
var buffer = new byte[length];
rng.GetBytes(buffer);
return Convert.ToBase64String(buffer);
}
如果我调用GenerateSalt(),它将始终提供动态组合。它。
答案 0 :(得分:0)
[validateAntiForgeryToken]
属性(过滤器)的作用。ValidateMyAntiForgeryToken : ValidateAntiForgeryToken
)。