Erlauben Sie mir, genauer zu erklären.Wie erkennt das Framework in ASP.NET MVC 5, dass eine POST-Anforderung von einer eigenen Webseite stammt?
Ich habe gelernt und testet um mit ASP.NET MVC 5 mit Visual Studio 2017. Von was ich verstehe, ein Controller "Aktionen" oder Methoden sind entsprechend einem Routenformat in "RouteConfig.cs" zugeordnet, so dass alle öffentlichen Methoden, auf die Webanfragen zugreifen können.
Im Fall einer einfachen GET-Methode, die eine Ansicht zurückgibt, wie diese:
// GET: Movies/Create
public ActionResult Create()
{
return View();
}
Ich würde nur die korrekte URL eingeben muß, und ich habe die Ansicht erhalten.
Aber im Falle von sinnvollen POST-Aktionen wie Löschen eines Dateneintrags, wie stellt der Controller sicher, dass die POST-Anfrage eine gültige ist, die von einer seiner eigenen Ansichten statt einer unbekannten Webseite kommt? Mit der Annahme, dass eine Aktion nur auf eine passende Route abgebildet werden muss, die aufgerufen werden soll.
einen Code stammt aus einer von Microsoft Tutorials als Beispiel:
public class MoviesController : Controller
{
private MovieDBContext db = new MovieDBContext();
/*
Bunch of Other GET Actions
*/
// POST: Movies/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Movie movie = db.Movies.Find(id);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
/*
Bunch of Other GET Actions
*/
}
Wie funktioniert diese Steuerung dieses Ziel zu erreichen? Wenn nicht, wie kann es erreicht werden?
Dies ist alles über 'ValidateAntiForgeryToken'. Sehen Sie sich das Microsoft-Tutorial an. –
@AlexKudryashev ok, vielen Dank, dass Sie darauf hingewiesen haben. – CodeIntern