【问题标题】:Implementing AntiForgery Token on ASP.NET 4.6 WebForms在 ASP.NET 4.6 WebForms 上实现 AntiForgery 令牌
【发布时间】:2020-05-01 16:23:00
【问题描述】:

作为标题,我正在尝试在 Asp.net 4.6 框架中实现 AntiForgery 令牌。 我有一个 Site.Master 页面,我正在研究这篇文章以适应我的网站 How To Fix Cross-Site Request Forgery (CSRF) using Microsoft .Net ViewStateUserKey and Double Submit Cookie

现在我已从 c# 转换为 vb.net,并将代码放在我的母版页中。

编译器告诉我

Page.PreLoad += AddressOf master_Page_PreLoad

是一个事件,我不能直接声明。

无论如何我不明白这是解决问题的正确方法还是存在另一种方法。

【问题讨论】:

标签: asp.net vb.net webforms antiforgerytoken


【解决方案1】:

解决了。与

AddHandler Page.PreLoad, AddressOf master_Page_PreLoad

而不是

Page.PreLoad += AddressOf master_Page_PreLoad

关于目标“在 ASP.NET 4.6 WebForm 上实现 AntiForgery 令牌”的另一件事是我不得不使用的 webmethod

HttpContext.Current.Session("CookieName") 验证在 Page_Init 上生成的令牌,因为在 webmethos 中您不能使用 ViewState。

要在 web 方法中使用 Sessione,在 web 方法的声明中你必须将 EnableSession 定义为

 <WebMethod(EnableSession:=True), ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=False)> _
Public Function GetFunction(myjson As String) As String.....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2012-04-10
    相关资源
    最近更新 更多