Open棟梁 wiki

[[戻る>FAQ - ASP.NET P層フレームワーク]]

*目次 [#a33288fb]
#contents

*概要 [#kdaa5923]
不正操作では以下を抑止します。
-二重送信
-リロード
-バック・サブミット
-キャッシュの参照

上記に該当するような操作を行っていないか、~
[[fiddler - http debugging proxy>http://www.telerik.com/fiddler]]等を使用して分析してみてください。

また、Sessionにブラウザ・ウィンドウ毎のRequestチケットを格納しているので、~
セッション消去(FxSessionAbandon)によって、不正操作が誤検知されることがあります。

*不正操作防止機能の局所化 [#d6aa249d]
他の処理と干渉し合う場合、不正操作防止機能を部分的にOFFに設定できます。

不正操作防止機能を画面レベルでOFFにするには、Page_Initで
 this.CanCheckIllegalOperation = false;
とCanCheckIllegalOperationフラグをfalseに設定します。

-.NET用アプリケーション フレームワーク ”棟梁” 利用ガイド(ベターユース、FAQ編)~
https://github.com/OpenTouryoProject/OpenTouryoDocuments/blob/master/documents/1_User_Guide/ja-JP/7_User_Guide(BetterUse_and_FAQ).doc

ボタン単位等の局所化が必要な場合は、以下の方法に従ってください。

--2.3節:不正操作防止機能の局所化~
CanCheckIllegalOperationフラグにより、~
不正操作防止機能のボタン単位で局所化が可能である。
---一部のボタンだけ不正操作防止機能を無効にする方法、ポストバックのダウンロード処理などで有効
---一部のボタンだけ不正操作防止機能を有効にする方法、更新ボタンだけに適用したい場合などに有効

余談ですが、当該アプリケーション上で不正操作防止機能をOFFにする場合、以下の設定を行います。

-app.config の appSettingsセクションで、~
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/app.config#L41
 <!-- 不正操作防止機能のon・off(操作履歴の最大数) --> 
 <add key="FxRequestTicketGuidMaxQueueLength" value="0"/> 

"MaxQueueLength=0"(0以下の値)を設定して、=機能OFFになります。

この状態で、
 this.CanCheckIllegalOperation = true;
と設定することで、

当該画面だけ、不正操作防止機能をONに設定することも可能です。

*ASP.NET AJAXの場合 [#u15ee0a3]
-ASP.NET AJAXではHTTPリクエストの内容から、~
AJAXの要求であることを識別して、不正操作防止機能を動作させない造りをしています。

--BaseController.Page_Load()~
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Framework/Presentation/BaseController.cs#L725

-しかし、SPREAD等のASPXに対してAJAX通信を行う~
サードパーティ製UIコンポーネントを使用する場合、不正操作防止機能と干渉し合うことがあります。

-ASPXではなく、WCFやWebAPIのモジュールとAJAX通信を行う場合、干渉は起こりません。

*参考 [#y06a9488]
-[[不正操作防止機能]]


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