FireFox 4 и <% = Html.AntiForgeryToken ()%> проблема
Когда я пытаюсь войти в систему с помощью FireFox4, у меня появляется сообщение об ошибке (нет ошибок в других браузерах):
Проверка состояния формы MAC не удалась. Если приложение представляет собой веб-ферму или кластер, убедитесь, что конфигурация указывает на один и тот же ключ проверки validationKey и алгоритм проверки. Автогенерация не может быть использована в кластере.
[ViewStateException:
Client IP: ::1
Port:
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0
ViewState: X+K7IAAB3XrqQMf0Ym7ZlHeMzvcISEek8a8NX07/uIQ1jEdwJp+/fisjPu64BgVKohucBKZxiX6vdxG+GNAS4qGMJbyCAfB6hwEKvpR9Df9o9gBj5MJTF2AHA6YO87XVvqbC3TNlTBSQ1OLakVvy7Q==
Referer: http://localhost:1062/
Path: /login]
Страница входа в систему проста:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" Inherits="ModelViewPage<Graphite.Web.Controllers.Login.LoginViewModel>" %>
<%@ Import Namespace="Graphite.Web.Controllers.Login" %>
<asp:Content ContentPlaceHolderID="main" runat="server" >
<%
using (Html.BeginForm("Authenticate","Login")) {%>
<div class="formInput">
<%= this.TextBox(x => x.Username).Label("Username: ")%>
</div>
<div class="formInput">
<%= this.Password(x => x.Password).Label("Password: ")%>
</div>
<%=Html.AntiForgeryToken()%>
<%=this.SubmitButton("Login")%>
<%
}%>
</asp:Content>
Я пытался отключить злые дополнения, такие как no-script, но это мне не помогло.
1 ответ
Проверьте, по какому адресу размещается страница при нажатии кнопки входа (для этого вы можете использовать firebug). Я подозреваю, что он отправляет обратно на страницу aspx - вместо того, чтобы отправлять на URL, который будет перенаправлен на правильный контроллер.
С другой стороны, я предлагаю вам отключить состояние просмотра на страницах ASP.NET в MVC, потому что вы используете их только для рендеринга вывода, а на самом деле не используете его модель управления и постбэк.