Problème lors de la soumission d'un formulaire, erreur "Validation of viewstate MAC failed"
Bonsoir,
Je suis actuellement sous C#.Net 4.0, avec Visual Studio 2010 et SQL Server 2008.
J'ai une erreur qui est apparue du type:
Code:
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
Elle apparaît systématiquement dans la même page (en tout cas pour le moment):
J'ai un utilisateur qui s'authentifie à mon site
Lorsqu'il s'est authentifié, il est rédirigé vers une page et je lui demande d'insérer un code (j'utilise un Yubikey pour ça) qui va permettre de déchiffrer des informations.
Et c'est lorsqu'il entre le code, la clé USB qui emule un clavier fait "Enter", puis j'ai mon erreur qui arrive. J'ai également testé en tappant au clavier, rien n'y change.
Dans mon masterpage, j'ai le code suivant qui permet de savoir si un utilisateur est authentifié ou non:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| protected void Page_Init(object sender, EventArgs e)
{
try
{
HttpCookie myCookie = null;
try
{
myCookie = Request.Cookies["myCookie"];
}
catch
{
Response.Redirect("~/login.aspx", true);
}
if (!Cookies.isConnected(myCookie))
{
Response.Redirect("~/login.aspx", true);
}
}
catch
{
Response.Redirect("~/login.aspx", true);
}
} |
Et le code de ma page qui pose le problème est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <%@ Page Title="" Language="C#" MasterPageFile="~/View.Master" AutoEventWireup="true" CodeBehind="SetDevice.aspx.cs" Inherits="SetDevice" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="leftMenuNavPlaceHolder" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="mainContentPlaceHolder" Runat="Server">
<asp:Label ID="lblSetDevice" runat="server" Text="Label">
Please enter your Yubico :
</asp:Label>
<br /><br />
<form id="frmSetDevice" runat="server" method="post" action="Home.aspx">
<asp:TextBox ID="txtYubicoSecretKey" runat="server" TextMode="Password" Width="650"></asp:TextBox>
<asp:Button ID="btnSetDevice" runat="server" Text="Continue" OnClick="btn_Continue"/>
</form>
</asp:Content> |
Et dans mon code qui est appelé lorsque le bouton est soumit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| protected void btn_Continue(object sender, EventArgs e)
{
try
{
string Yubico = HttpUtility.HtmlDecode(Request.Form[@"ctl00$mainContentPlaceHolder$txtYubicoSecretKey"].ToString());
Login.PrepareEnvironment(Yubico);
Server.Transfer("./Home.aspx", false);
}
catch (Exception exc)
{
Server.Transfer("./Error.aspx", false);
}
} |
Apparemment beaucoup de monde à cette erreur, mais je n'ai trouvé aucune méthode qui permet de régler ce problème :(
Est-ce que quelqu'un aurait des idées ?
Merci beaucoup pour votre aide, je désespère :'(
L.