在阅读有关防止webforms中跨站点请求伪造的内容时,许多作者使用如下语句:
使用Viewstate中的ViewStateUserKey属性来防止欺骗性的回发。在Page派生类的OnInit虚方法中添加以下内容(必须在Page.Init事件中设置此属性)。
protected override OnInit(EventArgs e) {
base.OnInit(e);
if (User.Identity.IsAuthenticated)
ViewStateUserKey = Session.SessionID; }
以下使用您选择的唯一值将Viewstate键入个人。
(Page.ViewStateUserKey)
这必须在Page_Init中应用,因为在加载Viewstate之前必须将密钥提供给ASP.NET。自ASP.NET 1.1
以来,此选项已可用我试图将上面的一个放在Base页面中,其中所有页面都是从该页面派生的但是我得到的错误就像OnInit必须返回值
这是我的代码
public class BasePage : System.Web.UI.Page
{
protected override OnInit(EventArgs e) {
base.OnInit(e);
if (User.Identity.IsAuthenticated)
ViewStateUserKey = Session.SessionID; }
}
非常感谢提前
答案 0 :(得分:3)
OnInit声明缺少返回类型void。
protected override void OnInit(EventArgs e)