2011-04-08 52 views
0

当我试图用FireFox4登陆,我有错误消息(与其他浏览器没有错误):火狐4和<%= Html.AntiForgeryToken()%>麻烦

检查的状态表格MAC失败。如果应用程序是Web Farm或群集,请确保配置指向相同的验证密钥validationKey和验证算法。 AutoGenerate不能在群集中使用。

[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> 

我试图禁用一样,没有脚本生气增加,但它并没有帮助我。

回答

2

检查页面在登录按钮上发布的URL是什么(您可以使用firebug)。我怀疑它是回发到aspx页面 - 而不是张贴到将被路由到正确控制器的url。

在不同的说明中,我会建议你禁用MVC中ASP.NET页面的视图状态,因为你只用它来渲染输出,而不是真正使用它的控制&回发模型。