我正在将安全性应用于我的.net 3.5 mvc2 web应用程序。我的网站不包含任何用户身份验证,由.js文件中的许多ajax调用组成。
在我的.aspx文件中我写了
<%= Html.AntiForgeryToken() %> 在我的.js文件函数中我写了
$(document).ready(function() {
var token = $('input[name=__RequestVerificationToken]').val();
$.ajax({
url: "/Home/getCurrentLanguage/" + Math.random(),
cache: false,
type: "POST",
async: false,
data: {"__RequestVerificationToken":token},
success: function(data) {
if (data == "mr") {
alert("its Marathi");
} else {
alert("its English huh !!!");
}
return false;
},
error: function(data) {
alert("some Error" + data);
}
});
});在我的控制器里我写道
[AcceptVerbs(HttpVerbs.Post), ValidateAntiForgeryToken]
public JsonResult getCurrentLanguage(string id)
{
return new JsonResult
{
Data = "mr"
};
}这对我来说很好,但我有两个问题
Q1。这是正确的做法吗?如果我看到页面源代码,我发现了以下代码
<input name="__RequestVerificationToken" type="hidden" value="WFd+q5Mz0K4RHP7zrz+gsloXpr8ju8taxPJmrLO7kbPVYST9zzJZenNHBZqgamPE1KESEj5R0PbNA2c64o83Ao8w8z5JzwCo3zJKOKEQQHg8qSzClLdbkSIkAbfCF5R6BnT8gA==" /> 但是,当我创建外部html文件并复制__RequestVerificationToken的值并传入ajax调用时,我将得到这个错误。
A所需的防伪令牌未提供或无效。然后是。
Q2。运行时如何知道此页面提供复制的__RequestVerificationToken?
https://stackoverflow.com/questions/11722137
复制相似问题