asp.net - 在 ASP.NET 4.6 WebForms 上实现 AntiForgery 令牌
问题描述
作为标题,我正在尝试在 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
是一个事件,我不能直接声明。
无论如何,我不明白这是解决问题的正确方法还是存在另一种方法。
解决方案
解决了。和
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.....
推荐阅读
- sql - 为什么这个 sql select 选择所有内容 3 次
- ffmpeg - ffmpeg 无法识别记录在案的 ffmpeg 命令
- javascript - 如何在使用 Typescript 进行渲染时剪切短长的字符串
- java - Android Studio 其他活动打不开
- docker - nexus 作为 docker 存储库
- facebook-opengraph - 我真的需要 xmlns 或前缀来使用 opengraph 元标记吗?
- php - 我的 PHP Mail() 函数不会发送电子邮件
- sql - 在 SQL Server 数据库的所有表中搜索特定的二进制列
- python - Kivy 标签的位置
- python - 从具有不同格式的不同来源中提取具有相似数据的 HTML 表 - Python