2009-06-26 59 views
1

我已经设置了一个在网页上运行的ActiveX控件。服务器能够将此网页提供给自己,但内部网和互联网上的其他计算机无法访问它。CASPOL,FullTrust并在IE中使用基于URL的FullTrust运行ActiveX控件

的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"> 
+0

我得到一个控制工作的一些类似的问题,在我们的情况下,我们不得不改变 的http:// MYSERVERNAME/APPLICATIONNAME/*到http:// MYSERVERNAME/* 另外,还要确保你有一个规则如果您使用SSL,则使用HTTPS。 因为您的FullTrust处于顶级水平,您的情况可能会出错。 – BeWarned 2009-07-07 17:19:30

回答

4

很久以前我读的地方,对于.NET用户控件,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 \框架\ V2.0.50727 \的Caspol.exe
  • C:\ WINDOWS \ Microsoft.NET \ Framework64 \ V2.0.50727 \的Caspol.exe

我大量的时间在32位caspol设置权限,然后敲我的头靠在墙上,因为它止跌没有工作。事实证明,我使用64位IE8,因为这使得IEDebug.log。最好在两个版本上设置权限。

0

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

作为一个方面说明 - 这是一个非常陈旧的软件交付机制,希望它不再被使用。调试这些类型的错误要比应该更困难。建议选择比嵌入式控件更好的传递机制。

相关问题