CASPOL,FullTrust并在IE中运行基于URL的FullTrust的ActiveX控件

时间:2009-06-26 18:35:50

标签: .net internet-explorer iis caspol .net-security

我已经设置了一个activex控件来在网页上运行。服务器能够将此网页提供给自己,但Intranet和Internet上的其他计算机无法访问它。

Caspol设置如下所示:

代码组:

1.  All code: FullTrust
   1.1.  Zone - MyComputer: FullTrust
      1.1.1.  StrongName - (omitted) : FullTrust
      1.1.2.  StrongName - 00000000000000000400000000000000: FullTrust
   1.2.  Zone - Intranet: FullTrust
      1.2.1.  All code: Same site Web
      1.2.2.  All code: Same directory FileIO - 'Read, PathDiscovery'
   1.3.  Zone - Internet: Internet
      1.3.1.  All code: Same site Web
   1.4.  Zone - Untrusted: Nothing
   1.5.  Zone - Trusted: Internet
      1.5.1.  All code: Same site Web
   1.6.  Url - http://MYSERVERNAME/APPLICATIONNAME/*: FullTrust
Success

我尝试访问的应用程序是1.6组。我在这里做错了吗?

[编辑] 值得一提的是,尝试从Intranet访问控件的计算机上的IEDebug错误日志显示了一个很长的异常。最值得注意的是:

System.Net.WebPermission
The first permission that failed was:
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">

2 个答案:

答案 0 :(得分:4)

很久以前我在某地读过.Net usercontrols,Url证据不起作用。只有站点和区域证据有效。

caspol -machine -quiet -addgroup Trusted_Zone -site mysite.com FullTrust -name mysite -description "Code group granting trust to code from mysite.com"

您可以为每个区域执行此操作。

使用IE8时,请确保将mysite.com添加到“可信站点”列表3。我不确定保护模式是否必须关闭。

当你使用64位系统时,有两个caspol,具有不同的权限:

  • C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ caspol.exe
  • C:\的Windows \ Microsoft.NET \ Framework64 \ V2.0.50727 \的Caspol.exe

我花了很多时间在32位caspol上设置权限,然后将我的头撞到墙上,因为它不起作用。事实证明我使用的是64位IE8,因为它创建了一个IEDebug.log。最好在两个版本上设置权限。

答案 1 :(得分:0)

事实证明,这根本不是信任问题。应用程序运行所需的DLL不在应用程序的bin目录中。因此,应用程序试图从GAC中提取所需的DLL,这是不正确的。部署所需的DLL修复了该问题。

作为旁注 - 这是一个非常过时的软件交付机制,希望它不再被使用。调试这些类型的错误要比它应该困难得多。建议选择比嵌入式控件更好的传送机制。