4

概念実証 Web アプリケーションを開発しています。ユーザーの PC にインストールされている Word アプリケーションを開くボタンを備えた Web ページです。

Visual Studio 2008 Express (Windows XP クライアント、LAMP サーバー) の C# プロジェクトに行き詰まっています。私は.NET チュートリアルで ActiveX コントロールを作成するに従って、いくつかの調整を行った後、正常に動作しました。次に、Word を開くためのボタンを追加しました。

問題は、プロジェクトから Microsoft.Office.Interop.Word を参照できることですが、Web ページからはアクセスできません。エラーには、「そのアセンブリは部分的に信頼された呼び出し元を許可していません」と表示されます。

私は .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() + ")");
            }
        }
    }
}
4

2 に答える 2

2

.Net Framework 4 + XBAP を使用すると、これが簡単になります。ActiveX の代わりに WPF XBAP を使用できます。

そして、プロジェクト設定ウィンドウで次のことを行います: 署名: すべてのボックスのチェックを外します。(このプロジェクトは署名する必要はありません)、[セキュリティ] タブで、[完全な信頼] に変更するだけです。

ユーザーは、アプリケーションの実行を許可するかどうかを 1 回確認するメッセージが表示されます。

于 2011-01-12T04:46:01.273 に答える
0

この問題については、.NET セキュリティ ブログの「 Internet Explorer でホストされているアセンブリに追加の信頼を提供する方法」という記事が掲載されています。2003年の日付なので、今は変わっている可能性があります...わかりません。

しかし、コメンターが尋ねた(2006)

クライアント側で何も変更せずに、すべての信頼許可を使用して .net アセンブリを実行することは可能ですか? 以前は、CAB で正常に動作していた署名付き ActiveX を使用しており、それを C# に移植しようとしています。

そしてショーンファは答えた

いいえ、現在、クライアント側でコントロールの権限を昇格させることはできません。最も近いオプションは ClickOnce です。これを使用すると、アプリケーションのプロンプトを表示して昇格させることができますが、このアプリケーションは Web ページにホースされません。

于 2010-05-11T20:33:12.583 に答える