公司有一個程式是用 .net 寫的紀錄早上上班時開機後登入電腦的時間
這個程式是放在 FileServer上面,USER 登入後就會執行網路磁碟機的執行檔
但是有些電腦會出現錯誤訊息(如下),但是若將程式放在本機硬碟就可以執行
處理的例外狀況: System.Security.SecurityException: 型別 ‘System.DirectoryServi
ces.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Cult
ure=neutral, PublicKeyToken=b03f5f7f11d50a3a’ 的使用權限要求失敗。
於 System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly a
sm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, Secur
ityAction action, Object demand, IPermission permThatFailed)
於 System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object ass
emblyOrString, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle
rmh, SecurityAction action, Object demand, IPermission permThatFailed)
於 System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet gran
ts, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle rmh, Objec
t assemblyOrString, SecurityAction action, Boolean throwException)
於 System.Security.CodeAccessSecurityEngine.CheckSetHelper(CompressedStack cs
, PermissionSet grants, PermissionSet refused, PermissionSet demands, RuntimeMet
hodHandle rmh, Assembly asm, SecurityAction action)
於 EmpLogin.Program.Main(String[] args)
失敗的動作:
LinkDemand
第一個失敗使用權限的型別:
System.DirectoryServices.DirectoryServicesPermission
第一個失敗的使用權限:
<IPermission class=”System.DirectoryServices.DirectoryServicesPermission, System
.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d
50a3a”
version=”1″
Unrestricted=”true”/>
解決方法
進入控制台-系統管理工具–Microsoft .NET Framework 2.0 組態–我的電腦
執行階段安全性原則– 電腦 — 程式碼群組–All Code
在All Code按滑鼠右鍵選擇 新增-建立新的程式碼群組-輸入名稱-
在 選擇這個程式碼群組的條件類型 為 URL,輸入遠端程式所在的路徑(例如:file://Server01/DotNetAP/*)
然後把要執行遠端程式的路徑設為共用,且權限設為最大
選擇 使用現有的使用權限集合 為 FullTrust
本篇瀏覽人數: 2394