河端善博 ログ

RSS 開発、セキュリティ、日記

)
Please read my disclaimer.

WebBrowserコントロールで、セキュリティゾーンを制御する

WebBrowserコントロールのセキュリティ設定

WebBrowser コントロールでセキュリティゾーンを制御する方法を GotDotNet Japanで
質問していたところ、MSMVP の青柳さんが、サンプルを開発してくれました。
参照: GotDotNet 「WebBrowser コンポーネントでのゾーン指定方法」
C# による実装となっています。
これと、「オリジナルプロトコルを定義する」を組み合わせる
ことにより、ダイナミックコンテンツを任意のセキュリティゾーンで実行させることが
できそうです。
みなさまのご協力に感謝します

09/17/2003 2:22 PM | Comments[6] | #MSMVP #.NET #Security

09/17/2003 4:49 PM

青柳さんのソースをすこし修正して、オリジナルプロトコルを定義して、
うまく連携させることができました。
※作業中、青柳さんにメッセンジャーでヘルプしていただいて...
セキュリティのほうは、GetSecurityId で値を設定しないと、MapUrlToZone が呼ばれない場合があることを確認しています。

河端善博

09/18/2003 6:21 AM

microsoft.public.dotnet.framework.windowsforms.controls
で質問をあげておいたところ、
Ying-Shen Yu[MSFT]さんと、Herfried K.Wagner[MVP]さんが
乗ってきてくれました。
セキュリティゾーンに関するレジストリをいじったあと、InternetSetOption API にINTERNET_OPTION_SETTINGS_CHANGEDオプションを指定して、呼び出したらどうだって。
こちらのほうが、進んでいるようですので、フィードバックしよう

河端善博

09/18/2003 9:50 AM

あ、楽しそうな事してる(^^;

 WebBrowserコントロールをホストするコントロールを作り、そのウインドウでCOMのIFを実装することでForm側の記述量を減らせませんかね?
 ドラッグ&ドロップでFormに置いて、プロパティで ZoneをInternetにするとかできると幸せ(^^;
#もちろんお手伝いいたします

菊池 和彦

09/19/2003 1:4 PM

菊池さんありがとうございます。
しばらく手をつけられそうにないので、どなたか、まとめていただけると幸いです
GotDotNet Samples にも公開したいと。

河端善博

09/22/2003 4:6 PM

 えと、とりあえず、青柳さんのコードをベースとして、UserControl内にWebBrowserをホストすることで、ISecurityManagerにたどり着くまでの手順はユーザコントロールを配置するだけで完了できるようにしてみました。
 ISecurityManagerの実装は当然として別に必要なのですが、delegateによってさらに外部に委譲する、delegateが設定されていなければ 何もせずにINET_E_DEFAULT_ACTIONを返すって所まではできそうです。
 ここまで行けば、MapUrlToZoneを置き換えたい場合の手順はコントロールを置き、コンポーネントを置き、MapUrlToZoneにdelegateをつなぐだけでできそうな気がします。
 ただし、SecurityManagerの置き換えは強力すぎる気が…
 InternetゾーンのURLを平気でMy Computerゾーンで表示できてしまったので諸刃の剣な気がします。
 コードアクセスセキュリティ等の仕掛けレベルでの安全性確保や、制限を強くする方向にしか適用できないようにする等の実行時セキュリティも検討必要ですね。

菊池


Subscribe to my RSS feed.

Powered by BlogX