Beim Lesen über die Verhinderung von Cross-Site-Request-Fälschungen in Webformularen verwenden viele Autoren Aussagen wie diese:
Um die ViewStateUserKey-Eigenschaft innerhalb des ViewState zu verwenden, um sich gegen gefälschte Postbacks zu schützen. Fügen Sie Folgendes in der OnInit-Virtualmethode der von der Seite abgeleiteten Klasse hinzu (Diese Eigenschaft muss im Page.Init-Ereignis festgelegt werden).
protected override OnInit(EventArgs e) {
base.OnInit(e);
if (User.Identity.IsAuthenticated)
ViewStateUserKey = Session.SessionID; }
Das folgende Schlüssel gibt dem ViewState einen individuellen Wert, den Sie wählen können.
(Page.ViewStateUserKey)
Dies muss im Page_Init angewendet werden, da der Schlüssel ASP.NET bereitgestellt werden muss, bevor das ViewState geladen wird. Diese Option ist seit ASP.NET 1.1 verfügbar
Ich habe versucht, das oben genannte in die Basisklasse zu setzen, von der alle Seiten abgeleitet sind. Aber ich erhalte einen Fehler wie "OnInit muss Wert zurückgeben"
Das ist mein Code
public class BasePage : System.Web.UI.Page
{
protected override OnInit(EventArgs e) {
base.OnInit(e);
if (User.Identity.IsAuthenticated)
ViewStateUserKey = Session.SessionID; }
}
Vielen Dank im Voraus