2012-06-01 11 views
28

Ich habe gerade ASP.Net MVC 4 RC installiert, um ASP.Net MVC 4 Beta zu ersetzen. Beim Versuch, eine vorhandene Anwendung auszuführen, erhalte ich eine Fehlermeldung, dass AntiForgeryToken nicht weiter unterstützt wird. Hier ist mein Code:AntiForgeryToken in ASP.Net veraltet MVC 4 RC

using (Html.BeginForm("", "", FormMethod.Post, new { id = "MonthElectionForm" })) 
{ 
    @Html.AntiForgeryToken("AddEditMonthElection") 
} 

---- --- UPDATE

ASP.Net MVC 4 RC hat das Salz Eigenschaft veraltet für ValidateAntiForgeryToken Attribut und AntiForgeryToken html Helfer. So, jetzt sieht mein Code wie folgt aus:

Controller:

 [HttpPost] 
     [ValidateAntiForgeryToken] 
     public JsonResult CreateCompany(CompanyDataEntryViewModel modelData) 
     {...} 

Form:

@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" })) 
{ 
    @Html.AntiForgeryToken() 
... 
} 

bei dynamisch erzeugten HTML-Suche, AntiForgeryToken erzeugt immer noch ein verstecktes Feld und stellt einen verschlüsselten Wert. Meine Aktion funktioniert immer noch. Aber ich habe die Fähigkeit verloren, einen Schlüssel für den Verschlüsselungsprozess zu bestimmen. Ich bin nicht sicher, wie der Prozess funktioniert, aber bevor ich sagen kann, habe ich den Salt-Wert auf die Aktion und auf das Formular gesetzt. Die Werte mussten übereinstimmen, damit die Aktion den Post akzeptierte. Wie stellst du jetzt den Salzwert ein? Ich denke, es hat etwas mit AntiForgeryConfig AdditionalDataProvider zu tun, aber ich kann nichts über die Verwendung von AntiForgerryConfig AdditionalDataProvider finden. Bitte helfen Sie.

Dank

+6

Erhalten Sie diese detaillierte Fehlermeldung? "Diese Methode ist veraltet. Verwenden Sie stattdessen die Methode AntiForgeryToken(). Verwenden Sie zum Angeben benutzerdefinierter Daten, die in das Token eingebettet werden sollen, die statische Eigenschaft AntiForgeryConfig.AdditionalDataProvider."? –

+0

Ja, ich habe diese detaillierte Fehlermeldung gesehen. Wie verwenden Sie die AntiForgeryConfig.AdditionalDataProvider-Eigenschaft? Können wir Attribute für eine Aktion nicht mehr wie bisher verwenden? Es wird nicht viel angezeigt, wenn die AntiForgerryConfig.AdditionalDataProvider-Eigenschaft googelt wird. –

Antwort

43

Einstellen des Salz Parameter ist nicht erforderlich, und bieten keinen zusätzlichen Schutz, so dass wir die Unterstützung für sie entfernt.

Bitte beachten Sie meine Antwort unter How to choose a salt value for ValidateAntiForgeryToken für weitere Informationen.

+1

Ahhh, macht jetzt Sinn. Ich nahm an, dass der Wert, den wir für den Salt-Wert verwendeten, im Verschlüsselungsprozess verwendet wurde. Danke für die Klärung. –

+1

Was machen Sie also, wenn Sie mehrere Anmeldeformulare (verschiedene Methoden) auf derselben Seite haben und jeder ein Token benötigt? Ich renne in das Problem, wo ich Fehler mit dem Token bekomme, weil ein Formular gestartet wird, aber dann das andere Formular ausgewählt und übergeben wird. (Wie interne Benutzeranmeldung vs. externe Benutzeranmeldung.) – Craig