2015-08-26 21 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.