In my MVC 3 project, I have a login page that uses the anti-fake logic built into MVC 3.
In Firefox and Opera everything works fine, but in IE I get the following:
A required anti-forgery token was not supplied or was invalid.
I'm really fixated on why only IE suffers from this, I checked the cookie settings and they are set in the same way as other browsers, so I got lost here.
When I use the anti-fake code, I use both SALT and domain verification (which does not matter, but itβs worth saying).
Here is the view code:
@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 () { </script> @using (Html.BeginForm("LogOn", "Account", FormMethod.Post, new { @class = "form login" })) { @Html.AntiForgeryToken(" !@ #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 is the value from web.config for easy customization during testing and use.
If I remove part of the domain and the path from the antiforgery tag, it works fine. Therefore, one of these two problems should be a problem.
Eman
source share