URL как параметр перехватывается - PullRequest
0 голосов
/ 15 октября 2008

В моем приложении asp.net mvc я хочу проверить, возвращает ли определенный URL верный ответ. Поэтому я отправляю URL-адрес методу, который тестирует HttpWebRequest.GetResponse ()

.

На моем dev-сервере (vs2008) он работает просто отлично. Однако при развертывании на рабочем сервере он возвращает неверный запрос. Этот метод никогда не используется, и мои пользовательские страницы ошибок asp.net не используются.

есть идеи?

Ответы [ 2 ]

1 голос
/ 16 октября 2008

Для тех, кто когда-либо читал это в будущем: Я удалил часть http: // и использовал HttpUtility.UrlPathEncode для кодирования пути и обозначил маршрут, который принимает последнюю часть как {* uri}. Это позволяет мне использовать / в параметре.

Затем checkUri. Я воссоздаю uri, добавив http: //, а затем проверим, является ли Host этого uri ожидаемым (в моем примере request.url.host).

Затем я делаю httpwebrequest с созданным мною Uri и проверяю запрос на ответ.

0 голосов
/ 15 октября 2008

Возможно, вы используете ValidateRequest функцию ASP.NET? Вы можете отключить это для рассматриваемой страницы, изменив первую строку в файле aspx, чтобы иметь параметр ValidateRequest = "false".

Пример:

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %>

Вы, вероятно, не хотите оставлять его в этом состоянии, поскольку проверка запросов помогает предотвратить атаки XSS. Возможно, стоит попробовать HttpUtility.UrlEncode, если вы этого еще не сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...