ASP.Net не распознает параметры строки запроса - PullRequest
0 голосов
/ 13 июля 2009

У меня проблема с ASP.Net при загадочной потере одного из моих параметров QueryString. У меня есть следующие URL-адреса (вставленные из адресной строки моего браузера):

//Short example
http://localhost/AllAboutThatWeb/SPARQL?partialResults=True&query=SELECT%20*%20WHERE%20{%3Fs%20%3Fp%20%3Fo}&timeout=1000

//Long example
http://localhost/AllAboutThatWeb/SPARQL?query=PREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX%20xsd%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0D%0APREFIX%20aat%3A%20%3Chttp%3A%2F%2Fwww.dotnetrdf.org%2FAllAboutThat%2F%3E%0D%0ASELECT%20*%20WHERE%20{%3Fs%20%3Fp%20%3Fo}&timeout=1000&partialResults=True

НО параметрmalResults всегда пропадает, если я отлаживаю приложение, то обнаруживаю, что массив Request.QueryString.AllKeys даже не содержит ключа "partalResults", он содержит ключ "query" и "timeout". Это происходит независимо от порядка аргументов, размещение аргументов в другом порядке по-прежнему приводит к исчезновению параметра partResults.

URL-адреса предназначены для общего обработчика ASP.Net в моем приложении и генерируются другой страницей в моем приложении с использованием URL-кодирования для кодирования значений данных для каждого параметра перед тем, как Response.Redirect используется для передачи запроса в обработчик.

Есть идеи, почему параметр пропадает?

Ответы [ 2 ]

2 голосов
/ 13 июля 2009

Попробуйте использовать partialResultz или что-то подобное вместо partialResults и отметьте Request.QueryString.AllKeys. Если оно появляется при использовании другого имени, некоторая часть приложения извлекает параметр.

Кроме того, никогда не размещайте необработанный SQL в местах, где он может редактироваться пользователем, даже если он доступен только небольшому количеству людей. Единственное исключение, которое я вижу, это если у вас есть приложение, в котором пользователь должен писать свой собственный SQL, или вы просто пишете тестовое приложение только для вас.

0 голосов
/ 14 сентября 2010

"Время ожидания по умолчанию = 4;" запишите его в строку подключения (в секундах)

...