从网页上的按钮打开Word应用程序

问题描述:

我正在开发概念验证Web应用程序:一个网页带有一个按钮,用于打开用户PC上安装的Word应用程序。从网页上的按钮打开Word应用程序

我被困在Visual Studio 2008 Express(Windows XP客户端,LAMP服务器)中的C#项目。我遵循Writing an ActiveX Control in .NET教程,经过一些调整后,它工作正常。然后我添加了用于打开Word的按钮。

问题是我可以从项目中引用Microsoft.Office.Interop.Word,但我无法从网页访问它。该错误说“该程序集不允许部分信任的调用者”。

我读过很多关于.NET安全的知识,但现在我完全失去了。免责声明:我从4天前进入.NET。

我试着解决这个问题,但我看不到光! 我甚至不知道它会有史以来成为可能!

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

using Word = Microsoft.Office.Interop.Word; 

using System.IO; 
using System.Security.Permissions; 

using System.Security; 
[assembly: AllowPartiallyTrustedCallers] 

namespace OfficeAutomation 
{ 
    public partial class UserControl1 : UserControl 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 

     private void openWord_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       Word.Application Word_App = null; 
       Word_App = new Word.Application(); 
       Word_App.Visible = true; 
      } 
      catch (Exception exc) 
      { 
       MessageBox.Show("Can't open Word application (" + exc.ToString() + ")"); 
      } 
     } 
    } 
} 
+0

只是一个说明。您应该了解ActiveX只能在Internet Explorer中工作,并且不适用于Firefox/Chrome。 – 2010-05-10 17:00:56

+1

你打算需要的不仅仅是打开Word吗?换句话说,您是否需要进一步使用自动化界面?如果没有,你可以让按钮开始下载一个空白的文档,然后允许用户选择打开单词。 – 2010-05-10 18:08:15

+0

是的,我需要全自动化;我会下载两个文档并进行比较。 – Ando 2010-05-10 21:14:08

.NET Security Blog鸡舍后How to provide extra trust for an Internet Explorer hosted assembly亮起的问题。它的日期是2003年,所以事情现在可能已经改变......我不知道。

asked(2006年)一评议

是否有可能与所有信任权限 执行.NET 组装不上 客户端改变什么吗?我们以前一直在 使用一个CAB中的签名的ActiveX, 工作正常,并尝试将它移植到C# 。

而且Shawnfa回答

不,这是当前无法 提升在客户 侧的控制您的权限。最接近的 选项是ClickOnce,它将允许您提示 提示并提升 应用程序 - 尽管此 应用程序不会在 网页中泄漏。

使用.Net Framework 4 + XBAP使得这很简单:您可以使用WPF XBAP而不是ActiveX。

并在项目设置窗口上执行: 签名:unckeck所有框。 (该项目不需要签名), 在安全选项卡下,只需将其更改为完全信任。

如果用户希望允许应用程序运行,则会提示用户一次。