从网页上的按钮打开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() + ")");
}
}
}
}
在.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所有框。 (该项目不需要签名), 在安全选项卡下,只需将其更改为完全信任。
如果用户希望允许应用程序运行,则会提示用户一次。
只是一个说明。您应该了解ActiveX只能在Internet Explorer中工作,并且不适用于Firefox/Chrome。 – 2010-05-10 17:00:56
你打算需要的不仅仅是打开Word吗?换句话说,您是否需要进一步使用自动化界面?如果没有,你可以让按钮开始下载一个空白的文档,然后允许用户选择打开单词。 – 2010-05-10 18:08:15
是的,我需要全自动化;我会下载两个文档并进行比较。 – Ando 2010-05-10 21:14:08