2011-06-12 47 views
5

我想確保我的ASP.Net庫在中信任下工作。但是我遇到了問題,因爲如果它在中等信任下運行,我需要禁用一些代碼。如何確定當前的應用程序是否爲中信任

如何從C#中確定當前應用程序是否爲中等信任?

具體來說,我試圖讀取web.config中的customErrors部分,我得到安全錯誤

回答

3

這裏本文介紹一種機制來確定信任級別:

Finding out the current trust level in ASP.NET

下面是代碼以防萬一鏈接死:

AspNetHostingPermissionLevel GetCurrentTrustLevel() { 
    foreach (AspNetHostingPermissionLevel trustLevel in 
     new AspNetHostingPermissionLevel [] { 
     AspNetHostingPermissionLevel.Unrestricted, 
     AspNetHostingPermissionLevel.High, 
     AspNetHostingPermissionLevel.Medium, 
     AspNetHostingPermissionLevel.Low, 
     AspNetHostingPermissionLevel.Minimal 
     }) { 
    try { 
     new AspNetHostingPermission(trustLevel).Demand(); 
    } 
    catch (System.Security.SecurityException) { 
     continue; 
    } 

    return trustLevel; 
    } 

    return AspNetHostingPermissionLevel.None; 
} 

我剛剛在一個ASP.NET MVC3應用程序中運行,然後以完全信任的方式測試它,它完成了它所說的任務。

+3

lol哇,這是一種相當殘暴的方式 – Earlz 2011-06-13 02:15:04

+0

我猜如果你只是在'Application_Start'上做一次,那麼它在偉大的計劃中就不是什麼大事了。問題在於你的信任度越低,你可以嘗試的東西就越少,這是剩下的一件事,你可以在所有信任級別下嘗試。 – Kev 2011-06-13 07:59:21

相關問題