[[Open棟梁>https://github.com/OpenTouryoProject]] wiki
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Session管理機能]]
-戻る
--[[Session管理機能]]
--[[Webアプリケーションの不正操作]]

* 目次 [#h170136f]
#contents

*概要 [#i1f5d24a]
ブラウザのウィンドウ(タブ)毎にSessionスコープを生成する。~
正確には、画面遷移のリダイレクト要求を除くGet要求に対してSessionスコープを生成する。~
-ブラウザのウィンドウ(タブ)毎にSessionスコープを生成する。~

これにより、複数のブラウザ・ウィンドウを立ち上げる~
-これにより、複数のブラウザ・ウィンドウを立ち上げる~
SessionステートフルなWebアプリケーションの開発が可能になる。

-BaseController~
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Framework/Presentation/BaseController.cs#L3173
--protected void SetDataToBrowserWindow(string name, object value) method
--protected object GetDataFromBrowserWindow(string name) method
--protected void DeleteDataFromBrowserWindow(string name) method
--protected void DeleteDataFromBrowserWindow() method
**処理方式概要 [#pfb46961]
-画面遷移のリダイレクト要求を除くGet要求時に「ブラウザ・ウィンドウGUID」を生成する。

*仕組み [#pfb46961]
-画面生成(=GET)時にGUIDを生成する。
-GUIDを使用してブラウザ・ウィンドウ別Sessionスコープを生成する。
-ブラウザ・ウィンドウ上で、このGUIDをHidden項目やURLで持ち回る。
-この「ブラウザ・ウィンドウGUID」を使用してブラウザ・ウィンドウ別Sessionスコープを生成する。
-ブラウザ・ウィンドウ上で、この「ブラウザ・ウィンドウGUID」をHidden項目やQuery Stringで持ち回る。
-「ブラウザ・ウィンドウ別Session領域」は、LRUで削除される。世代数は、FxWindowGuidMaxQueueLengthに設定できる。

*MVC対応 [#e35288e5]
-WebFormの場合持ち回りをブラックボックス化できる。
-これに対し、MVCはルール化でしか実現できない。
-破線が当該Sessionスコープを表す。~
同一ブラウザ ウィンドウの「親画面~子画面」も同一のスコープ内に含める。
--外側の破線:ブラウザ・ウィンドウ別Session領域
--内側の破線:[[親画面別Session領域]]

このため、現時点でMVC版の機能提供の予定はありません。
#ref(SessionAreaPerBrowserWindow.png,left,nowrap,ブラウザ・ウィンドウ別Session領域)

**操作メソッド [#lcf9afef]
-BaseController~
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Framework/Presentation/BaseController.cs#L3168

|#|メソッド名|メソッド説明|h
|1|SetDataToBrowserWindowSessionメソッド|データの設定|
|2|GetDataFromBrowserWindowSessionメソッド|データの取得|
|3|DeleteDataFromBrowserWindowSessionメソッド|データの削除(キー毎)|
|4|DeleteDataFromBrowserWindowSessionメソッド|データの削除(全て)|


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS