2016-07-19 6 views
0

Wenn ich @Html.AntiForgeryToken() in einer Form, Aktion, deren Verwendung im selben Projekt ist es perfekt funktioniert. Wenn sich der Aktionsplatz für das Formular jedoch in einem anderen Projekt innerhalb derselben Lösung befindet, wird der folgende Fehler angezeigt:AntiForgeryToken zwischen mehreren ASP.NET Teilprojekte verwenden

Das Anti-Fälschungs-Token konnte nicht entschlüsselt werden. Wenn diese Anwendung von einer Webfarm oder einem Cluster gehostet wird, stellen Sie sicher, dass auf allen Computern die gleiche Version von ASP.NET-Webseiten ausgeführt wird und dass die <machineKey>-Konfiguration explizite Verschlüsselungs- und Validierungsschlüssel angibt. AutoGenerate kann nicht in einem Cluster verwendet werden.

Gibt es eine Möglichkeit AntiForgeryToken zwischen verschiedenen Projekten zu benutzen?

+0

Haben Sie das getan, was die Fehlermeldung Sie tun erzählt? [Stellen Sie den 'machinekey' Eintrag in Ihrem' web.config'] (https://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_webfarmdeploymentconsiderations)? – spender

+0

Wofür stelle ich den Maschinenknopf ein? –

+0

Nevermind, ich wusste nicht, dass deine Antwort den Link hat. Vielen Dank! –

Antwort

0

Das Signieren/Verschlüsseln der Anti-Fälschungs-Token wird durch die Schlüssel im Bereich <machinekey> Ihrer Web-Konfiguration geregelt. Wenn dies nicht festgelegt ist, wird der Wert für jede App automatisch generiert. Das bedeutet, dass jede App einen anderen Computerschlüssel hat, sodass Token von einer App nicht von einer anderen App entschlüsselt werden können.

Glücklicherweise ist es möglich, eigene Werte zu generieren und speichern sie für jede App in Ihrem Web-Config. Der Prozess, dies zu tun ist gut hier beschrieben:

https://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_webfarmdeploymentconsiderations

Wenn die Sicherheit nicht Ihre größte Sorge ist, dann könnten Sie eine der vielen verfügbaren Online-Machinekey Generatoren betrachten. Da ich keine gesicherten mit TLS/SSL/HTTPS gefunden habe und die Betreiber dieser Seiten nicht kennen, denke ich, dass Vertrauen ein großes Problem ist.

+0

Ich erhalte jetzt diesen Fehler: ** Das Anti-Fälschungs-Cookie-Token und das Formularfeld-Token stimmen nicht überein. ** –

Verwandte Themen