http://www.divakk.co.jp/aoyagi/csharp_tips_wbzone.html
http://www.divakk.co.jp/aoyagi/csharp_tips_wbzone.html
C# Tips
-AxWebBrowserのIInternetSecurityManager-
[トップ] [目次]
WebBrowserコントロールのセキュリティ設定
VisualStudio.NETにあるMicrosoft Web Browserコントロール(AxWebBrowser)のセキュリティ関係を調整する方法です。
ちなみに、Microsoft Web Browserコントロールはshdocvw.dll(ActiveXコントロール)をラップしているだけです。なので、AxWebBrowserの細かい制御はCOMを使う必要があります。
COM.cs
以下で使うCOMのインターフェースやら#defineやらをC#で使えるようにしたソースです。長いのでファイルを置いておきます。
COM.cs
Formにインターフェースを実装する
まずは、VisualStudio.NETでFormを作って、そのFormにMicrosoft Web Browserコントロールを貼り付けてください。あとは、以下のようにインターフェースを継承するようにして、中身を実装してください。
|
Form1のコード
ちょっとした解説
まずはFormにIServiceProviderとIInternetSecurityManagerを実装するように、これらを継承元として追加します。もちろん、Formに実装しなくてはいけないわけではないので別クラスにわけても構いません。
ここでちょっと注意。
IServiceProvider.QueryServiceメソッドは、ほんとうなら
|
としたいんです。けど、3番目の引数がobjectだとどうしてもうまく動きませんでした。そこで、仕方ないので3番目の引数の型をIInternetSecurityManagerにしたIServiceProviderForIInternetSecurityManagerも定義しています(COM.cs参照)。そして、FormにはIServiceProviderではなく、IServiceProviderForIInternetSecurityManagerのほうを継承元としています。
(QueryInterfaceしてくれるんならobjectでも良さそうなものだけど、それだとどうしてもIInternetSecurityManagerだと認識してくれなかった)
続いて、Form_LoadイベントでIServiceProviderをFormに問い合わせにくるように登録してやります。
あとは、IServiceProviderForIInternetSecurityManagerとIInternetSecurityManagerを実装するだけです。
IServiceProviderForIInternetSecurityManagerにはQueryServiceメソッドしかありませんし、中身も上記のまんまで十分でしょう。
IInternetSecurityManagerにはいろいろとメソッドがありますが、重要なのはMapUrlToZoneとProcessUrlActionの各メソッドでしょう。
MapUrlToZoneメソッドでは、URLがどのゾーンなのかを返してやります。URLZONE列挙体はCOM.csに入ってます。
ProcessUrlActionメソッドでは、各Actionを許可するか拒否するかを返します。Actionは "URLACTION_" で始まるint値です。これも一通りCOM.csに入ってます。許可するかどうかはpPolicyにURLPOLICY_ALLOW、URLPOLICY_DISALLOWのいずれかをセットしてやります。 URLPOLICY_QUERYとかもありますが、どういう挙動になるのかは試してません。
ちなみに、これらの値はurlmon.hからコピーしてきてC#の文法にあわせただけです(コメントとかもそのまんま)。
[トップ] [目次]
青柳 臣一
2003/09/17
http://www.divakk.co.jp/aoyagi/csharp_tips_wbzone.html相关推荐
- ARM汇编:汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
跳转指令分三类: 一.无条件跳转: JMP; 二.根据 CX.ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转).JECXZ(ECX 为 0 则跳转); 三.根据 EFLAGS 寄存器的标志位 ...
- 百度启用Baidu.co.jp域名,有利于其在日本推广
(欢迎媒体转载,转载请注明来源:[url]www.idcps.com[/url]) 百度去年就在日本建立了分公司,并开启了百度日 本站,采用的域名一直是Baidu.jp,但这个域名并不符合 日本人的 ...
- JP摩根预测:诺基亚2017年净利润将达14.21亿美元
近日,JP摩根预测,不含苹果公司的补偿,诺基亚2017年EBIT为23.64亿美元,净利润14.21亿美元,对应PE26X. 据悉,诺基亚目前股票市值约为372亿美金,对应人民币超过2500亿元,成为 ...
- 服务器资源占用监控(jp@gc - PerfMon Metrics Collector)
1.安装插件 第一步.JMeterPlugins-Standard解压,JMeterPlugins-Standard.jar放到jmeter的lib\ext目录下,重启jmeter. 第二步.Serv ...
- 汇编jnl_汇编指令 JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL
名称 功能 操作数 操作码 模数 寄存器1 寄存器2或内存 位移量 立即数 符号 方向 芯片型号 16位 32位 JO 溢出跳转 短 $70 无 无 无 无 10 无 无 8086 无 无 JNO 不 ...
- java数字时钟代码,Android自定义数字时钟代码,android自定义时钟,package jp.t
Android自定义数字时钟代码,android自定义时钟,package jp.tpackage jp.tsmsogn.digitalclock;import java.util.Calendar; ...
- 汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL
名称 功能 操作数 操作码 模数 寄存器1 寄存器2 或内存 位移量 立即数 符号 方向 芯片 型号 16位 32位 JO 溢出跳转 短 $70 无 无 无 无 10 无 无 8086 无 ...
- petgo.jp狗粮
petgo.jp狗粮 https://p01.mul-pay.jp/ext/api/getToken?key=POST https://id.petgo.jp/auth/login?r_u=%2Fmy ...
- jmeter线程组之jp@gc - Ultimate Thread Group
首先,我们来了解几个jmeter中的概念 我们在添加一个线程组时通常都要配置这几个属性 线程数:即并发用户数 ramp-up时间(秒):持续时间,加速时间 比如,并发数是1000个,持续时间设置为10 ...
最新文章
- robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全
- 清华「计图」、旷视「天元」纷纷重磅开源,国产深度学习框架迎来高光时刻...
- 跟我一起写 Makefile(八)
- C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式
- (转)JavaScript: 零基础轻松学闭包(1)
- iOS瀑布流实现(Swift)
- python中的常量_Python中的变量和常量
- Net Core集成Exceptionless分布式日志功能以及全局异常过滤
- PC服务器实现海量数据存取的方法
- tl494cn逆变器电路图_TL494逆变器电路图(400W)
- C# Winfrom Chart 图表控件 柱状图、折线图
- 【案例分享】网络环路检测基本功能配置
- 从python入门到放弃_Python从入门到放弃?方法不对一切白费
- mysql报错1593_主从复制报1593错误的处理
- Spring context:annotation-config/ 解说
- amd服务器6300系列,AMD新款Opteron 6300服务器CPU终极评测
- 虚拟服务器巡检,服务器巡检方案
- Jade_Primer---first program--JADE OPTIONS
- 水果礼包拼手气(仿红包拼手气)含拼手气红包算法
- 故事分享 | 33岁高中学历转行python,收获月薪19K,这位陶瓷厂工人逆天了!