.Net客户端DLL交付问题

时间:2009-11-02 15:48:13

标签: .net asp.net security client-side object-tag

我创建了一个.Net DLL,它实现了一个与WCF服务对话的WCF客户端,允许最终用户将数据传输到服务所在的服务器。

我在我开发用于工作的客户端程序中使用此DLL,但现在我希望在网页中使用此.Net DLL,以便客户端可以通过网络传送给最终用户。

ASP.Net有这个很棒的功能,可以使用对象标记模式在网页中引用.Net DLL:

<object id="demolib" classid="DemoLib.dll#DemoLib.DemoClass"></object>

这样做是警告客户端的运行时环境,客户端计算机上可能不存在.Net DLL(上面代码中的DemoLib.dll)中的特定功能。如果请求的功能不存在,则DLL将传输到客户端并在客户端的GAC中设置以供网页使用。

我让它在本地工作,并且在完全信任的环境中远程工作,没有安装程序。 DLL通过网页提供,并为最终用户安装到GAC中,没有任何问题。

当我尝试在外部提供完全信任的DLL 时出现问题。我不希望最终用户必须将他们连接的站点设置为完全信任才能访问DLL。我没有问题强烈命名并使用有效证书签署.Net DLL。这个DLL的信任应该是隐含的,但似乎并非如此。

我认为必须有一种方法允许用户授权交付和使用DLL,如果他们愿意,但我无法在没有失败的情况下对这样的交付进行建模。< / p>

接下来的问题是,我应该使用什么策略来允许用户使用上面的对象标签模式授权 DLL的交付和功能,而不强迫他们安装它(OneClick,MSI等)?

1 个答案:

答案 0 :(得分:1)

那么 - 您希望在完全信任之外静默地将.NET程序集交付给客户端计算机,并让它在后台与WCF服务进行通信?这正是信任系统旨在防止的。

我认为您应该考虑使用OneClick部署。用户在安装与云通信的软件时应该知道。