2010-06-21 86 views
0

经过大量研究,似乎在IE的Web浏览器控件中创建和使用我们自己的安全管理器,我们需要为IInternetHostSecurityManager和IInternetSecurityManager重写GetSecurityId方法如在某些时候,他们进行比较,如果发现返回不同的结果,他们抛出一个异常UnauthorizedAccess。有没有人有重写IInternetHostSecurityManager成功。 MSDN建议通过SID_SInternetSecurityManager访问它,但我还没有发现任何SID_SInternetSecurityManager其他引用。此外,我还没有找到IInternetHostSecurityManager一个GUID,所以我无法通过IServiceProvider.QueryService访问它。任何一个成功的解决这个或找到访问跨域I帧的WebBrowser控件不同的方法?访问IInternetHostSecurityManager :: GetSecurityId方法来解决跨域iframe问题

回答

0

IID_IInternetHostSecurityManager,SID_SInternetSecurityManager和SID_SInternetHostSecurityManager在urlmon.h和urlmon.idl中定义。如果您在C++中有链接错误,请检查How to avoid error "LNK2001 unresolved external" by using DEFINE_GUID

如果您在使用脚本语言,您可以使用midl /tlb生成从urlmon.idl类型库,并导入类型库来代替。您也可以根据urlmon.idl中的定义来声明guid和接口。