投稿数 - 437, コメント - 52896, トラックバック - 156

ASP.NET - 状態管理のジレンマ(3)

前回のつづき

簡単な事だ。単純に、ビュー状態が最新でなければポストバック扱いではなく、初期ロード扱いにすればよい。例えば以下のように書きたい(Default.aspx.cs に書かれているコードとする)。

protected void Page_Load(object sender, EventArgs e)
{
    if(IsPostBack && !IsValidViewState)
    {
        Response.Redirect("Default.aspx");
    }
}

IsValidViewState の実装は以下の様になる。

private bool IsValidViewState
{
    get
    {
        return
            (long)(ViewState["_Default_ViewState"]) ==
            (long)(Session["_Default_ViewState"]);
    }
}

ViewState と Session に同一値を入れておく。例えば以下の様に。

private void SetValidViewState()
{
    long ticks = DateTime.Now.Ticks;
    ViewState["_Default_ViewState"] = ticks;
    Session["_Default_ViewState"] = ticks;
}

SetValidViewState() はパイプラインの最後の方のどこかに呼び出しておくと良いだろう。Page_Load() の最後でも良いと思う。

ここまで話を引張って、これは拍子抜けだと思うかもしれないが、要は「そのポストバックは期待しているものか」の判断をユーザーコードに仕込んでおく。自分自身にリダイレクトしている理由は、完全に初期ロード扱いしたいからだ。こうしておかないと、ポストバックを発生させたボタンクリックイベント等、各イベントハンドラが実行されてしまう。

もう一度言うが、クライアント処理は一切信頼してはいけない。状態管理はサーバー側だけで行う。

最後に、全てにこのような処理は入れないようにしてほしい。どのような状況にも対応できる完璧なセオリーなど存在しない。

投稿日時 : 2006年11月12日 18:04

フィードバック

# thanks for the postmishertAtroro

this post is very usefull thx!
2010/11/09 1:25 | auto approve blog

# ルイ.ヴィトンバッグコピー品

2017年人気貴族エルメス コピー安心専門店、
一流ブランドショップ、シャネル コピー、
財布コピー、ベルト信用第一、良い品質、
低価格は私達のち残りの切り札です。
当社の商品は絶対の自信が御座います。
おすすめ人気N品質シリアル付きも有り
付属品完備!送料は無料です(日本全国)!
ご注文を期待しています!100%品質保証 
満足保。※日本國送料無料、信用第一、
2017/08/04 17:16 | mwhuxufna@icloud.com

# パネライ最高品質時計

本日お品物が到着いたしました。
大変ご丁寧な梱包、貴店からのまめな御連絡に安心して到着を待つことができました。
ありがとうございました。
梱包テープをはがしやすいように折り目をつけてくださる等、ちょっとした御心遣いが嬉しかったです。(実ははがずのが苦手です・笑)
手書きのお手紙も同梱されており、他店にはないお気遣いだなと思いました。
小傷は全く気にならず、ピカピカにクリーニングされており、
まるで新品のような美しさです!
時間合わせもきちんとしてくださり、助かりました。
早速、愛用させていただきます。
ずっと欲しかったSEIKO・LUKIAでした。
サイズは少し緩めでしたが、問題ございません。
大切にします。
またご縁をいただけましたら、よろしくお願いいたします。
セイコー 時計 ルキア 5Y89-0B70 SS シルバー文字盤 クォーツ レディース 新品 女性 レディス 婦人 SEIKO LUKIAセイコー 時計 ルキア 5Y89-0B70 SS シルバー文字盤 クォーツ レディース 新品 女性 レディス 婦人 SEIKO LUKIA
ずっと欲しかったルキアです!
小傷は全く気にならず、ピカピカにクリーニングされており、
まるで新品のような美しさです!
時間合わせもきちんとしてくださり、助かりました。
早速、愛用させていただきます。
ずっと欲しかったSEIKO・LUKIAでした。
サイズは少し緩めでしたが、問題ございません。
大切にします。
またご縁をいただけましたら、よろしくお願いいたします。
パネライ最高品質時計 http://www.kopii.net/products/p3/3/index.htm
2017/09/18 10:52 | hthudhmyt@hotmail.co.jp

# A品ルイヴィトン

もう何度、お世話になっているのでしょう。
安心してお買い物ができるってこの上ない幸せです。
ブシュロン ネックレスをセール価格で販売中♪ブシュロン ネックレス キャトル クラシック YG WG PG フォーカラー 新品 ミニ ペンダント チョーカー ペンダントトップ
可愛ぃぃ(^^♪
予想していたより小さかったけど、可愛かったので、満足してます。
A品ルイヴィトン http://www.nawane111.com/panerai.htm
2017/09/18 10:54 | jhvkoefhbzx@ybb.ne.jp

# 偽ブランド

迅速な対応で気持ちいい取り引きが出来ました。また機会があったら、こちらで買い物をしたいと思います。手書きのメッセージが同封されていてスタッフの方の温かみを感じました。ありがとうございました。
偽ブランド http://www.bagtojapan.com
2017/10/13 0:47 | vdpwwyqzecb@hotmail.co.jp

# gagaコピー

弊社は「信用第一」をモットーにお客様にご満足頂けるよう、

発送前には厳しい検査を通じて製品の品質を保証してあげますとともに、
配送の費用も無料とし、品質による返送、交換、さらに返金までも実際 にさせていただきます。
また、従業員一同、親切、丁寧、迅速に対応 させて頂き、ご安心になってお買い物を楽しんでくださるよう精一杯力 を尽くしていくつもりです。

送料は無料です(日本全国)! ご注文を期待しています!
下記の連絡先までお問い合わせください。

是非ご覧ください!
gagaコピー http://www.newkokoku.com
2017/11/03 4:41 | csoigahdvac@excite.co.jp

# バッグ,財布&小物専門店,

時計,バッグ,財布,ルイヴィトンコピー,エルメスコピー
弊店に主要な販売する商品は時計,バッグ,財布,ルイヴィトンコピー,エルメスコピー,
シャネルコピー,グッチコピー,プラダコピー,ロレックスコピー,カルティエコピー,オメガコピー,
ウブロ コピーなどの世界にプランド商品です。2006年に弊社が設立された、
弊社は自社製品を世界中に販売して、高品質な製品と優れたアフターサービスで、
過半数の消費者からの良い評判を獲得していた。我々自身の生産拠点と生産設備を持って、
製品の質を保証すると消費者にサポートするために、製品も工場で厳格な人工的なテストを受けました。
消費者の継続的なサポートに感謝するために、そして、企業が低コスト、高品質な製品を提供してあげます。
弊店に望ましい製品を見つけることを願って。ここで、弊社が皆の仕事でも幸せな人生でも成功することを望んてあげます。

誠にありがとうございます。
バッグ,財布&小物専門店, http://www.cocoejp.com/ProductList1.aspx?TypeId=741724312753501
2019/09/04 19:50 | cnhthg@live.com

# 25 mg prednisone https://prednisonesnw.com/#
prednisone 50mg cost

25 mg prednisone https://prednisonesnw.com/#
prednisone 50mg cost
2021/11/13 9:42 | Prednisone

# baricitinib https://baricitinibrx.com
covid treatment baricitinib

baricitinib https://baricitinibrx.com
covid treatment baricitinib
2021/12/12 16:29 | Buksdldj

# clomid treats https://clomidt.com
clomid tablet

clomid treats https://clomidt.com
clomid tablet
2022/01/03 19:22 | Clomid

# clomid alcohol http://clomidfast.site/

clomid alcohol http://clomidfast.site/
2022/04/12 20:29 | Clomids

# ロレックス レディース デイトジャスト 中古

迅速に対応していただき、また包装もキレイでとても良かったです。
また、何かの機会がありましたら、利用させていただきます。
【送料無料】グッチ パスケースをセール価格で販売中♪グッチ パスケース グッチスウィング トレインパスケース 354500 ライトブルー レザー 新品 未使用 カードケース トレードマーク グッチ
通勤用
同じ商品の定期入れを落としてしまいました。定期券・いろんなカードが入っていて、気に入って使用していたのですが、落とし物でどこにも届いておらず、残念です(><@)
また、色違いで購入しました。
色は迷いましたが、キレイなブルーに決めました。
これで一気進展、愛用し頑張りたいと思います。
2022/07/14 7:15 | kfozorc@hotmail.co.jp

# ed pill https://ed-pills.xyz/
male erection pills

ed pill https://ed-pills.xyz/
male erection pills
2022/09/16 14:53 | EdPills

# Long-Term Effects. All trends of medicament.
https://canadianfast.com/
Cautions. Cautions.

Long-Term Effects. All trends of medicament.
https://canadianfast.com/
Cautions. Cautions.
2023/02/20 0:24 | CanadaBest

# canadian pharmaceutical ordering https://pillswithoutprescription.pro/#

canadian pharmaceutical ordering https://pillswithoutprescription.pro/#
2023/05/15 5:18 | PillsPresc

# where to buy prednisone in australia https://prednisonepills.pro/# - prednisone prescription online

where to buy prednisone in australia https://prednisonepills.pro/# - prednisone prescription online
2023/06/05 1:37 | Prednisone

# men's ed pills https://edpill.pro/# - ed treatment review

men's ed pills https://edpill.pro/# - ed treatment review
2023/06/27 16:04 | EdPills

# Abortion pills online https://cytotec.ink/# - purchase cytotec

Abortion pills online https://cytotec.ink/# - purchase cytotec
2023/07/26 20:32 | PillsFree

# plavix best price https://plavix.guru/ clopidogrel bisulfate 75 mg

plavix best price https://plavix.guru/ clopidogrel bisulfate 75 mg
2023/10/24 1:58 | Plavixxx

# paxlovid cost without insurance https://paxlovid.bid/ paxlovid india

paxlovid cost without insurance https://paxlovid.bid/ paxlovid india
2023/10/26 0:37 | Paxlovid

# can you buy prednisone without a prescription https://prednisone.bid/ prednisone for sale in canada

can you buy prednisone without a prescription https://prednisone.bid/ prednisone for sale in canada
2023/12/27 11:30 | Prednisone

# prednisone 15 mg daily https://prednisonepharm.store/ can you buy prednisone over the counter in usa

prednisone 15 mg daily https://prednisonepharm.store/ can you buy prednisone over the counter in usa
2024/01/20 18:05 | Prednisone

# mens erection pills https://edpill.cheap/ pills for ed

mens erection pills https://edpill.cheap/ pills for ed
2024/02/10 1:01 | EdPills

# abella danger video https://abelladanger.online/ abella danger filmleri

abella danger video https://abelladanger.online/ abella danger filmleri
2024/03/06 11:18 | Adella

# jogar aviator https://aviatormocambique.site aviator bet

jogar aviator https://aviatormocambique.site aviator bet
2024/03/12 1:39 | AviatorMaz

# pin-up bonanza: https://pinupgiris.fun/ pin-up giri&#351;

pin-up bonanza: https://pinupgiris.fun/ pin-up giri&#351;
2024/03/28 9:39 | GirisUp

コメントの投稿

タイトル
名前
URL
コメント