1.如何在.Net 程序你檢查當前的Windows安全設置以及CAS安全設置
String sddlAdmins = "S-1-5-32-544"; //Sid of administrators group
IdentityReference AdminsSid = new SecurityIdentifIEr(sddlAdmins);
if (WindowsIdentity.GetCurrent().Groups.Contains(AdminsSid))歡迎光
w Roman; font-size: 12pt;">Console.WriteLine("Running with admin rights!");
How to Get Permissions Assign to Current Assembly in VS.Net 2005 Using C#.
另外如果要做一個允許客戶加入自定義擴展的程序,該如何嚴格限制擴展dll的安全性呢,從兩方面入手:
1,用一個PermissionSet受限的AppDomain來加載這個程序集,具體方法參見: Creating an AppDomain with limited permissions.這樣可以防止這個插件來訪問一些需要高安全級別的庫函數,比如P/Invoke,Reflection。以及關鍵的系統文件和注冊表。
2,當你加載這個程序之時,檢查其引用的所有程序集(Assembly.GetReferencedAssemblIEs Method),如果有你不希望它引用的程序集出現,就UnLoad之。