Trong dự án MVC 3 của tôi có một trang đăng nhập mà sử dụng logic chống giả mạo được xây dựng vào MVC 3.ASP.NET MVC trang 3 web chống giả mạo thẻ không chỉ trên IE
Trên Firefox & Opera nó hoạt động tốt, nhưng trên IE tôi có được điều này:
A required anti-forgery token was not supplied or was invalid.
tôi thực sự bối rối về việc tại sao chỉ IE bị này, tôi đã kiểm tra các thiết lập cookie và họ thiết lập tương tự như các trình duyệt khác vì vậy tôi đang ở một bị mất ở đây.
Khi tôi sử dụng mã chống giả mạo, tôi sử dụng cả SALT và kiểm tra miền (điều này không quan trọng nhưng đáng nói).
Đây là mã xem:
@model login.Models.LogOnModel
@{
ViewBag.Title = "Log On";
}
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
//focus on form.
$("#UserName").focus();
});
</script>
@using (Html.BeginForm("LogOn", "Account", FormMethod.Post, new { @class = "form login" })) {
@Html.AntiForgeryToken("[email protected]#Hq4(", ViewBag.AppDomain, "/")
<div id="box">
<h1>Login</h1>
Please enter your username and password. @Html.ActionLink("Register", "Register") if you don't have an account.
<div class="block" id="block-login">
<h2>
Login Form</h2>
<div class="content login">
@Html.ValidationSummary(true)
<div class="group buffer">
<div class="left">
<label class="label right">
@Html.LabelFor(m => m.UserName)</label>
</div>
<div class="right">
@Html.TextBoxFor(m => m.UserName, new { @class = "text_field" })
@Html.ValidationMessageFor(m => m.UserName)
</div>
</div>
<div class="group buffer">
<div class="left">
<label class="label right">
@Html.LabelFor(m => m.Password)</label>
</div>
<div class="right">
@Html.PasswordFor(m => m.Password, new { @class = "text_field" })
@Html.ValidationMessageFor(m => m.Password)
</div>
</div>
<div class="group buffer">
<div class="left">
<label class="label right">
@Html.LabelFor(m => m.RememberMe)</label>
</div>
<div class="right">
@Html.CheckBoxFor(m => m.RememberMe)
</div>
</div>
<div class="group navform buffer">
<div class="right">
<button class="button" type="submit">
<img src="@Url.Content("~/Content/images/icons/key.png")" alt="Save" />
Login
</button>
</div>
</div>
</div>
</div>
</div>
}
ViewBag.AppDomain là một giá trị từ web.config để cài đặt cho thời gian thử nghiệm và sản xuất sử dụng.
Nếu tôi xóa phần miền và phần đường dẫn khỏi thẻ chống đông, nó hoạt động tốt. Vì vậy, một trong hai điều đó phải là vấn đề.
Bạn có thể gửi mã xem của bạn ? –
Xin chào, bạn đang sử dụng phiên bản IE nào? –
Bạn có thể (hoặc sử dụng công cụ dev của IE, Firebug Lite hoặc Fiddler) tìm hiểu xem yêu cầu 'POST' của bạn có đang gửi cookie AntiForgery trở lại không? – isNaN1247