2011-04-08 56 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頁面的視圖狀態,因爲你只用它來渲染輸出,而不是真正使用它的控制&回發模型。