2015-08-26 8 views
5

Na przykład, jeśli ciąg zapytania ma 2 oczekiwane parametry, powiedz. param1 = "abc" & param2 = "def".Jak sprawdzić, czy parametr "nieznany" jest podany w ciągu zapytania zapytania?

Wiem, że Request.QuerySring["abc"] będzie sprawdzać "abc" w ciągu zapytania.

Ale czy istnieje sposób sprawdzenia, czy użytkownik wprowadza coś innego niż param1 lub param2?

Dzięki.

+0

Dlaczego cię to obchodzi? jeśli użytkownik wprowadzi wartość z identyfikatorem, którego nie używasz w swoim kodzie, to i tak nie ma to znaczenia. –

+8

http://stackoverflow.com/questions/2375372/is-there-a-way-to-get-all-the-querystring-name-value-pairs-into-a-collection – JleruOHeP

Odpowiedz

2

Tak, można użyć AllKeys:

Request.QueryString.AllKeys

Aby uzyskać listę parametrów stosowanych oprócz 'param1' i 'param2':

var expectedParams = new [] { "param1", "param2" }; 
var additionalParams = Request.QueryString.AllKeys.Where(k => !expectedParams.Contains(k)); 
0

Jeśli próbujesz odzyskać Request.QuerySring["param1"] otrzymasz wartość abc. Teraz, jeśli użytkownik zmieni KLAWISZE ciągu zapytania, nie będzie mógł go odebrać, ponieważ pobiera wartości ciągu zapytania przez KEY. Nie musisz więc weryfikować danych wejściowych użytkowników.

Powiązane problemy