危险的查询字符串,但它没有改变?

时间:2014-06-11 23:02:29

标签: c# asp.net webforms query-string code-behind

通过对某些代码进行简单更改来解决问题 - 错误表明查询字符串可能很危险。查询字符串保持不变,我所改变的是查询字符串调用的模式背后的代码

更改前的代码(有效):

protected void Page_Load(object sender, EventArgs e)
    {
        Check();

        if (!Page.IsPostBack)
        {
            //Bunch of methods
        }

        Set();
    }

之后(不工作):

 protected void Page_Load(object sender, EventArgs e)
    {
        Check();

        if (!Page.IsPostBack)
        {
            if (UserInfo.Promotion != string.Empty && Request.QueryString["modal"].ToString() == "changeplan")
            {
                SetPageContentWithPromotion();
            }
            else
            {
                //Bunch of method
            }
        }

        Set();
    }
}

private void SetPageContentWithPromotion()
    {
        //bunch of logic to set up page
    }

我设置了断点,但他们甚至没有被击中。页面只显示错误,并且永远不会触及模态背后的代码。我很难过

1 个答案:

答案 0 :(得分:0)

如果不存在,请将此行添加到您的web.config中:

 <system.web>
   <httpRuntime requestValidationMode="2.0" />
 </system.web>

然后在该特定的aspx页面上,在页面标记中设置此属性,如下所示:

<%@ Page ValidateRequest="false"

然而这违反了您网页的安全性。