Ich habe gerade auf .NET 3.5 SP1 aktualisiert und meine einmal funktionierende ASP.NET MVC-Seite hat jetzt aufgehört zu arbeiten.Html.AntiForgeryToken() verursacht Fehler nach dem Upgrade auf .NET 3.5 SP1
Beim Versuch, eine Seite, die ich folgendes YSOD
[CryptographicException: Padding is invalid and cannot be removed.]
System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) +7596702
System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) +208
System.Security.Cryptography.CryptoStream.FlushFinalBlock() +33
System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo) +225
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +195
[ViewStateException: Invalid viewstate.
Client IP: 127.0.0.1
Port:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)
ViewState: hC6BC8KsuD/yoy2iG74bUZ8TYhGfuDDeIjh9fg/L18yr/E+1Nk/pjS5gyn9O+2jY
Referer: http://localhost:1092/admin/product
Path: /admin.aspx/product/edit/4193]
[HttpException (0x80004005): 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.]
System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +106
System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) +14
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +242
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4
System.Web.Mvc.AntiForgeryTokenSerializer.Deserialize(String serializedToken) +73
erhalten zu laden, wenn ich die Linie
<%= Html.AntiForgeryToken() %>
Alles funktioniert wieder entfernen, irgendwelche Ideen, was könnte die Ursache sein? Ich hätte mehr Glück bei der Suche nach einer Lösung erwartet, wenn es sich um ein MVC- oder .NET-Problem handelt, also nehme ich an, dass es etwas mit meiner Konfiguration zu tun hat.
Ich habe versucht, das MVC-Framework neu zu installieren, um zu sehen, ob es war, weil ich vor SP1 installiert habe, aber ich bekomme immer noch das gleiche Problem. Die Google- und SO-Suche hat zu keinen festen Schlussfolgerungen geführt.
Dank! Das hat mir wirklich geholfen, war verrückt geworden. – jesperlind
Sparte mir 2 Stunden Forschung. Danke –
Ebenso. Warum behebt dies das Problem? Und warum gab es überhaupt ein Problem? –