Как пройти проверку запроса - PullRequest
1 голос
/ 02 января 2011

У меня есть GridView, и мне нужно обновить некоторые данные, вставив HTML-код;Мне нужно, чтобы эти данные хранились в зашифрованном виде и декодировались по запросу.

Я не могу никоим образом отключить глобальное «Проверка запроса», даже на уровне страницы, поэтому мне нужно решение для отключения «Проверка запроса» вУровень управления.

В настоящее время я использую скрипт, который должен Html.Encode каждое обновляемое значение, но кажется, что «Проверка запроса» начинает свою работу до события RowUpdating, поэтому я получаю страницу «Ошибка» потенциальноОпасный Request.Form ... ".

Есть идеи, как это решить?

Спасибо

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        foreach (DictionaryEntry entry in e.NewValues)
        {

            e.NewValues[entry.Key] = Server.HtmlEncode(entry.Value.ToString());

        }

PS Я ИСПОЛЬЗУЮ Wweb Controls, а не MVC

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Для простых текстовых полей или элементов управления скрытыми полями, если идентификатор элемента управления начинается с __ (два подчеркивания), тогда проверка запроса для этих элементов управления пропускается.Я использовал это, чтобы защитить всю мою страницу и сайт, но обойти это для одного элемента управления.Однако это не официальный способ, поэтому он может быть изменен в будущих версиях .net.

1 голос
/ 02 января 2011

Используйте метод RegisterOnSubmitStatement для регистрации скрипта, который будет кодировать значения всех полей ввода перед отправкой и декодировать значения этих полей на стороне сервера.

string script = String.Format("var inputs = $get('{0}').getElementsByTagName('input');" + 
  "for(var i = 0; i < inputs.length; i++) " + 
    "inputs[i].value = encodeURIComponent(inputs[i].value);", this.ClientID);
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "onsubmit", script);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...