2011-01-10 4 views
0

http://msdn.microsoft.com/en-us/library/ff823993%28v=VS.85%29.aspxによれば、このイベント中にWebフィルタは一致ルールのGUIDを要求できます。私はそれが他の容易に識別可能な手段を見つけることができないので、SELECTED_RULE_GUIDのタイプでGetServerVariableを実行することによって行われると仮定しています。TMG SF_NOTIFY_POLICY_CHECK_COMPLETEDイベント

私の問題は、ルールが要求を許可しているかブロックしているかどうかを確認したいという問題から来ています。それがブロックされている場合、私のフィルタは何もする必要はありませんが、許可されている場合、私はいくつかの作業を行う必要があります。 SF_NOTIFY_POLICY_CHECK_COMPLETEDは、認証とさまざまなms_authトラフィックが処理された直前に発生するため、要求がキャッシュからルーティングまたは取得される直前に発生するため、監視するには最適なイベントのようです。

おそらく、ルールの詳細を取得するために、COMとIFPCインターフェイス(TMGにWebフィルタを登録するサンプルコードに従う)を使用する必要があると私は考えていました。しかし、FPC - > FPCArray - > FPCArrayPolicy - > FPCPolicyRulesを経由すると、要素を返す関数はインデックスまたは名前のいずれかを取るだけです。

私はGUIDしか持っていないので問題があります。

FPCPolicyRuleオブジェクト(単数)には、GUIDに関連するフィールドもありません。そのため、コレクションの反復処理が不要になります。

だから私の質問は、要求が許可または拒否された場合、Webフィルタを決定する方法を、SF_NOTIFY_POLICY_CHECK_COMPLETEDイベントから、つまるところ?

答えて

0

詳細な調査とテストの後、GUIDにはFPCPolicyRuleオブジェクトのPersistentNameを使用してアクセスできます。 FPCPolicyRules-> ItemメンバはNameまたはIndexのどちらかでしか動作しないので、各PersistentNameとGUIDを比較して項目を反復しなければならなかった。

これが明白だった場合は、私にはうまくいってくれました:)