Pode uma mudança URL no postback?
Pergunta
Eu só preciso Request.Querystrings URL de análise em GET, e não em postback, certo?
if(!IsPostBack)
{
Viewstate["magic_number"] = Parse(Request.Query);
}
O usuário não pode ser esperado para modificar o URL no Pedido de postbacks subseqüentes, ou podem?
A motivação para question-- eu não controlar o trecho de javascript que faz a postagem, por isso é uma espécie de caixa preta para mim.
Solução
A URL é não deverá mudar. Mas lembre-se que cada nova postagem é uma nova instância de sua classe de página. Então, se você não salvar os resultados em algum lugar na primeira vista você precisa estar preparado para fazê-lo novamente no próximo, e assim por diante. Neste caso, você salvou-lo para ViewState, e assim que deve ser fino.
No entanto, eu suspeito que você não estaria fazendo a pergunta a menos que você teve comportamento observado que o levou a suspeitar de outra forma. Então, vamos considerar por um momento que as coisas poderiam causar este para quebrar:
- É possível para modificar ViewState no cliente onde você salvou seus resultados (embora não trivial e definitivamente não recomendado).
- Você pode fingir uma nova postagem antes da exibição inicial página.
- Você pode usar javascript para alterar a url postada.
No entanto, para todas essas coisas que você certamente saber se tem escrito nada para fazer isso.
Outras dicas
Seu pressuposto é correto, o URL não é esperado para ser modificado de subequent post backs e você precisa analisar a string de consulta apenas no GET, o que acontece pela primeira vez a página é carregada.
O URL normalmente não mudar para uma nova postagem.
É claro que é possível usar uma ferramenta como o Firebug para editar o URL na marca de formulário antes do postback, mas então você provavelmente não quer que o valor que o usuário injetado qualquer maneira, mas o valor original.
Como já foi salientado, a URL não se espera que a mudança. Claro, se vivemos em um mundo perfeito você nunca iria receber spam de e-mail e ninguém jamais iria tentar fazer algo malicioso para o seu site.
No mundo real, você deve esperar que pessoas mal-intencionadas vão tentar sequestrar o seu site e necessidade de se preocupar com coisas como ataques de injeção
Você deve não fazer suposições de que os dados recebidos em uma postagem é válido.