使用ViewstateUserKey属性保护视图状态

时间:2014-12-12 04:53:12

标签: c# asp.net .net viewstate

在阅读有关防止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; }

 }

非常感谢提前

1 个答案:

答案 0 :(得分:3)

OnInit声明缺少返回类型void。

protected override void OnInit(EventArgs e)