KB-無法將放在網路磁碟機的Custom Control加入VS.NET 2003工具箱

試著在VS.NET 2003的工具箱(Toolbox)裡新增一個來自網路共享資料夾(Shared Folder)或網路磁碟機(Network Drive Mapped to a Shared Folder)的自訂控件(Custom Web Control)時,可能會發生了以下錯誤:

Insufficient state to deserialize the object. More information is needed.
要還原序列化物件狀態不足。 需要更多資訊。(中文版)

這個不知所云的序列化錯誤,真正的原因來自於.NET的安全管控機制。在預設的安全原則(Runtime Security Policy)中,來自網路分享的Managed Code,權限會受到限制。網路上找到的一些做法(這裡這裡)是將Local Intranet的安全等級直接調成FullTrust,省事歸省事,但一口氣對整個Intranet門戶大開似乎違背了"只對絕對必要範圍開放權限"的安全原則,等於認定只要跟你同一個LAN的都是好人,增加了不少被攻擊的風險。

我建議的做法是參考微軟的這篇KB,利用.NET 1.1組態工具,新增一個Code Group Policy,只針對這個放DLL的網路資料夾開放FullTrust權限。設定完成再重新啟動VS.NET 2003,就可以順利將自訂控件加入工具箱了。

歡迎推文分享:
Published 30 November 2006 11:36 AM 由 Jeffrey
Filed under:
Views: 7,704



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<November 2006>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication