Domanda

Sto usando Request.Form per tutto il mio codice. E se ho bisogno di querystring, lo colpisco anche esplicitamente. In una recensione di codice è emerso che probabilmente avrei dovuto usare invece la raccolta Params.

Ho pensato che fosse una buona pratica colpire direttamente la collezione appropriata. Sto cercando un rinforzo da una parte o dall'altra dell'argomento.

È stato utile?

Soluzione

È più sicuro usare Request.Form. Ciò impedirà agli utenti di " sperimentare " con i parametri dei moduli pubblicati semplicemente modificando l'URL. L'uso di Request.Form non lo rende sicuro per "veri hacker", ma IMHO è meglio usare la raccolta Form.

Altri suggerimenti

Usando le proprietà sotto la richiesta stai restringendo il tuo recupero alla raccolta corretta (che è una buona cosa per leggibilità e prestazioni). Ritengo che il tuo approccio sia una buona pratica e lo seguo io.

L'ho sempre usato     Request.Form (" param ") o     Request.QueryString (" param ")

Questo è puramente dovuto a una sintassi che è più facile da leggere. Dubito seriamente che ci sia un impatto sulle prestazioni.

L'unica volta che utilizzo Request.Params invece di Form o Querystring è se non so se il metodo con cui il i parametri verranno passati.

Per metterlo nel contesto, in 10 anni ho usato Request.Params con rabbia solo una volta :)

La gentilezza,

D

Penso che sia meglio usare le raccolte Form e QueryString in modo esplicito a meno che tu non stia esplicitamente cercando di definire un comportamento flessibile nella tua applicazione come in un modulo di ricerca in cui potresti voler avere i parametri di ricerca definibili in un URL o salvati nei cookie come le preferenze di impaginazione.

Vorrei utilizzare Request.Form e Request.QueryString in modo esplicito. Il motivo è che i due non sono intercambiabili. La stringa di query viene utilizzata per le richieste HTTP Get e le variabili FORM per le richieste post HTTP.

Ottieni richieste sono generalmente applicabili dove richiedi dati, ad es. fai una ricerca su google, le parole di ricerca sono nella stringa della query. I post sono quando si inviano dati al server Web per l'elaborazione o l'archiviazione. Quindi, quando dico che i due non sono intercambiabili, intendo che non è possibile cambiare la pagina dall'uso di GET a POST senza interrompere la funzionalità.

Quindi, IMHO, l'implementazione della pagina può riflettere chiaramente il fatto che intendi che venga chiamato da una richiesta GET o POST.

/ Pete

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top