실패 잘하지만, IE에 난이 얻을 :ASP.NET MVC 3 웹 사이트 위조 방지 토큰은 내가 그것을 작동 파이어 폭스 & 오페라에 MVC 3</p> <p>에 내장 된 위조 방지 로직을 사용하는 로그인 페이지가 내 MVC 3 프로젝트에서 유일한 IE
A required anti-forgery token was not supplied or was invalid.
내가 정말에만 IE는이 고통 이유에 난처한 해요를, 나는 쿠키 설정을 확인하고 다른 브라우저 그래서 난에있어 그들이 설정 동일 여기에서 길을 잃었 어.
위조 방지 코드를 사용할 때 SALT와 도메인 검사를 모두 사용합니다 (중요하지만 중요하지 않음).
@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 테스트 및 생산 사용 중 쉽게 설정에 대한 Web.config의의 값은 다음과 같습니다 여기
뷰 코드입니다.위장 방지 태그에서 도메인과 경로 부분을 제거하면 올바르게 작동합니다. 따라서이 두 가지 중 하나가 문제가되어야합니다.
당신이보기 코드를 게시 할 수 :
나는 그것을 해결하기 위해 관리하는 방법은 루트 디렉토리에 web.config 파일에서 "형식"요소에 쿠키 = "UseCookies"를 추가했다 ? –
안녕하세요, IE의 어떤 버전을 사용하고 있습니까? –
(IE의 개발 도구, Firebug Lite 또는 Fiddler를 사용하여)'POST' 요청이 AntiForgery 쿠키를 다시 보내고 있는지 확인할 수 있습니까? – isNaN1247