2015-08-26 8 views
5

Ad esempio, se una stringa di query presenta 2 parametri previsti, ad esempio. param1 = "abc" & param2 = "def".Come verificare se un parametro 'sconosciuto' viene fornito nella stringa di query di una richiesta?

So che Request.QuerySring["abc"] controllerà "abc" nella stringa di query.

Ma c'è un modo per convalidare se l'utente inserisce qualcos'altro oltre a param1 o param2?

Grazie.

+0

Perché ti importa? se l'utente inserisce un valore con un identificatore che non si utilizza nel codice, non ha comunque senso. –

+8

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

risposta

2

Sì, è possibile utilizzare AllKeys:

Request.QueryString.AllKeys

Per ottenere l'elenco dei parametri utilizzati a parte 'param1' e 'param2':

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

Se si tenta di recuperare Request.QuerySring["param1"] otterrete il valore abc. Ora, se l'utente modifica i KEY della stringa di query, non sarà in grado di riceverli mentre recuperi i valori della stringa di query da KEYS. Quindi non è necessario convalidare gli input degli utenti.

Problemi correlati