Skip to content

OTR_ScreenTransition

nishi_74322014 edited this page Nov 1, 2026 · 2 revisions

画面遷移制御

概要

Web Forms での画面遷移の方法と、不正な画面遷移を検出する画面遷移制御機能。ASP.NET Web Forms 専用(MVC・Windows Forms には無い)。

詳細

遷移の方法

方法 書き方 定義ファイル
イベント処理の戻り値 return "遷移先.aspx";(空文字ならポストバック) 不要
直接遷移 this.FxTransfer(url)(Server.Transfer)/this.FxRedirect(url)(Response.Redirect) 不要
論理名で遷移(+チェック) this.ScreenTransition("遷移ラベル") SCDefinition.xml が必要

Redirect と Transfer の使い分け

Redirect Transfer
URL 変わる(画面と URL が 1 対 1) 変わらない
リロード時 GET を再送 POST を再送(二重送信に注意)
情報の持ち回り Session HttpContext.Items・Hidden(同一リクエスト内)
性能 往復が 1 回増える 有利
  • 既定は Redirect が素直である。Transfer は性能では有利だが、URL のずれと二重送信のリスクがある。
  • 戻り値で遷移するときの方法(Transfer / Redirect)は、設定 ScreenTransitionMethod(1 = Transfer、2 = Redirect)で決まる。

Response.Redirect による画面遷移

Server.Transfer による画面遷移

  • 図の Redirect には 301 Moved Permanently とあるが、Response.Redirect の既定は 302 Found である。

画面遷移制御機能

定義に無い遷移や、直リンク禁止の画面への GET アクセスを FrameworkException で拒否する。
URL を直打ちして業務の途中から入る、といった操作を防ぐ。コードから呼ぶ API は無く、設定を ON にすれば自動でチェックする。

<add key="FxScreenTransitionMode"  value="T"/>   <!-- 主スイッチ:T / R / off -->
<add key="FxScreenTransitionCheck" value="on"/>  <!-- 不正遷移チェック:on / off -->
<add key="FxXMLSCDefinition"       value="...\SCDefinition.xml"/>
  • 主スイッチ FxScreenTransitionMode が off だと、FxScreenTransitionCheck の値に関わらずチェックは走らない。

SCDefinition.xml

<SCD>
  <Screen value="/Aspx/menu.aspx" directLink="allow">
    <Transition value="/Aspx/input.aspx" label="toInput" mode="R"/>
  </Screen>
  <Screen value="/Aspx/input.aspx" directLink="deny">
    <Transition value="/Aspx/confirm.aspx" label="toConfirm" mode="T"/>
  </Screen>
  <CmnTransition value="/Aspx/menu.aspx" label="toMenu" mode="R"/>
</SCD>
要素・属性 内容
Screen の directLink GET による直リンクを許可(allow)/拒否(deny)
Transition その画面から遷移できる先と、ラベル・方法(T = Transfer、R = Redirect)
CmnTransition どの画面からでも使える共通の遷移
  • 冒頭に DTD を埋め込む(Open 棟梁の XML 定義ファイルに共通の作法)。
  • CSRF 対策としても、GET 防止(directLink="deny")が使える(脆弱性対策のポイント)。

MVC の場合

Transfer は無い。RedirectToAction などで遷移し、不正遷移の防止は認可やルーティングで行う。

コーディング・エージェントに任せる場合

  • スキル opentouryo-screen-transition を使わせる。
  • 画面遷移制御・不正操作防止・キャッシュ無効化は三点セットで設計する(不正操作防止)。

参考


Tags: 再構築

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki
開発基盤部会 Wiki

移行管理: DONE / TODO

Clone this wiki locally