Откройте приложение Word с помощью кнопки на веб-странице - PullRequest
4 голосов
/ 10 мая 2010

Я разрабатываю веб-приложение для проверки концепции: веб-страницу с кнопкой, которая открывает приложение Word, установленное на ПК пользователя.

Я застрял с проектом C # в Visual Studio 2008 Express (клиент Windows XP, сервер LAMP). Я следовал учебнику Написание элемента управления ActiveX в .NET , и после некоторой настройки он работал нормально. Затем я добавил кнопку для открытия Word.

Проблема в том, что я могу ссылаться на Microsoft.Office.Interop.Word из проекта, но я не могу получить к нему доступ с веб-страницы. В сообщении об ошибке говорится: «В этой сборке не разрешены вызывающие вызовы с частичным доверием».

Я много читал о безопасности в .NET, но сейчас я полностью потерян. Отказ от ответственности: я в .NET с 4 дня назад.

Я пытался обойти эту проблему, но не вижу света !! Я даже не знаю, будет ли это когда-либо возможным!

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() + ")");
            }
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 12 января 2011

Использование .Net Framework 4 + XBAP упрощает эту задачу: вы можете использовать WPF XBAP вместо ActiveX.

А в окне настроек проекта сделайте: Подписание: снять все флажки. (этот проект не нужно подписывать), на вкладке «Безопасность» просто измените его на «Полное доверие».

Один раз пользователю будет предложено разрешить запуск приложения.

0 голосов
/ 12 мая 2010

Пост Как обеспечить дополнительное доверие к размещенной в Internet Explorer сборке в .NET Security Blog проливает свет на эту проблему. Он датирован 2003 годом, поэтому сейчас все могло измениться ... Я не знаю.

Но комментатор спросил (2006)

Возможно ли выполнить .net собрание со всеми разрешениями доверия ничего не меняя на сторона клиента? Мы ранее были используя подписанный ActiveX в CAB, работал нормально, и попробуйте его портировать на C #.

И Шонфа ответила

Нет, в настоящее время невозможно поднять ваши разрешения на клиенте сторона для контроля. Ближайший опция ClickOnce, которая позволит вам подсказать и поднять приложение - хотя это приложение не будет храниться в веб-страница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...