Ich habe eine Blog-Post-Seite mit Kommentaren. Jeder Benutzer (eingeloggt oder nicht) kann ein Formular unten auf der Seite sehen, um einen Kommentar zu schreiben. Wenn der Benutzer den Kommentar eingibt und sie nicht autorisiert ist, wird der Benutzer auf eine Anmelde-/Anmeldeseite umgeleitet. Nach der Anmeldung wird der Benutzer zurück zur Aktion umgeleitet, aber die POST-Daten mit dem Kommentartext sind verloren.ASP.NET MVC - erhalten POST-Daten nach Autorisieren Attribut Login Redirect
Ich benutze die ASP.NET MVC autorisieren Attribut für einige Aktionen Genehmigung erfordern:
[AcceptVerbs(HttpVerbs.Post), Authorize]
public ActionResult Create(int blogPostID, string commentBody) {
var comment = new Comment {
Body = commentBody,
BlogPostID = blogPostID,
UserName = User.Identity.Name
}
// persist the comment and redirect to a blog post page with recently added comment
}
Wie lösen Sie dieses Problem?
Die Benutzeranmeldung vor der Anzeige des Kommentarformulars ist eine schlechte Idee, denke ich.
Danke.
Danke, sieht brauchbar aus. Ich habe die Aktionsparameter von "siteId, Kommentar" zu "int blogPostID, string commentBody" in meiner ersten Frage geändert, aber die Idee ist klar. – Zelid
Ich entschied mich für diese Lösung. Es funktioniert gut wie jetzt. In einer Webfarm können Probleme auftreten, wenn die Sitzung nicht über alle Server hinweg gefüllt ist. In diesem Fall würde ich einen Kommentar in einer Datenbank ohne die UserId speichern und die CommentId dem Cookie des Besuchers hinzufügen, und nach der Autorisierung den Kommentar-Datensatz mit der autorisierten UserId aktualisieren. – Zelid