私は自分のページのURLを次のように持っています:
http://www.ab.com/test.aspx?invitationID=XXXX
招待状が本当に有効かどうかを Page_Load で確認します。
if(!IsPostback)
{
//login for validation. If not valid invitationID do a server.Transfer to 404 page
}
これはうまくいきます。ただし、ユーザーが登録ページの送信ボタンをクリックすると。彼は RegistrationSuccessful ページにリダイレクトされます。ここまではうまくいきます。しかし今、キャッシュのためにブラウザの戻るボタンを押すと、再びページが表示され、再度登録できます。これはバグです。
私は追加しました:
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
私のPage_Loadで、それはうまくいくようです。しかし、このアプローチにセキュリティ上の脅威はありませんか? 招待の検証ロジックは!IsPostback
正しいですか、それともポストバックかどうかに関係なく行う必要がありますか?