[[Open棟梁>https://github.com/OpenTouryoProject]] wiki -[[戻る>FAQ - ASP.NET P層フレームワーク]] *目次 [#a33288fb] #contents *概要 [#kdaa5923] [[不正操作防止機能]]では以下を抑止します。 -二重送信 -リロード -バック・サブミット -キャッシュの参照 -Sessionタイムアウト発生後に残存画面からPOSTバック 上記に該当するような操作を行っていないか、~ [[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] -[[不正操作防止機能]]