上方廣告

Lady Kukki 手作糖霜餅乾

2009年5月11日 星期一

在IE中嵌入WinformControl時安全性問題

使用Winform控制項來撰寫並嵌入在網頁中,用法就像之前的ActiveX一樣,但有幾點要注意,如果要使用有安全性的方法,如IO,如果沒有開啟 NET的權限的話,將會跳出警告視窗,此方法最大的缺點在於,使用者一定要安裝封裝檔才可正常使用,且只有IE瀏覽器有作用

首先為了讓Winform的屬性值可以與ASP.NET網頁溝通必須先將組件資訊的讓組件成為Com-Visable打勾,這樣下列的語法在ASP.NET裡面才可以正常的存取。

[Category("自定義控件的屬性")]
[Description("設置按鈕的文本內容")]
public string GetMac
{
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

再來,如果有運用到安全性的物件,必須將NET執行階段安全性原則組檔會出成封裝檔。
1. 在您的開發環境中新增 CAS 原則

a. 開始 > 控制台 > Administrative Tools > Microsoft .Net Framework 2.0 Configuration
b. 展開我的電腦 > 執行階段安全性原則 > 電腦 > 程式碼群組
c. 在 All_Code 上按右鍵 > 新增
d. 輸入名稱
e. 在條件類型選擇 URL,並在 URL 欄位輸入您的網站位址,在後面加上 /* 以信任網站中的所有 組件

f. 權限集合選擇 FullTrust

2. 建立部署套件
a. 在【 執行階段安全性原則】上按右鍵 > 建立部署套件

b. 選擇 「電腦」 層級並指定輸出路徑及檔名