2010-04-24 107 views
0

爲什麼我需要Demand權限?爲什麼它不能簡單地失敗(註釋.Demand()調用)?代碼訪問安全

ref:http://support.microsoft.com/kb/315529 謝謝!

try 
{ 
// Demand the permission to access the C:\Temp folder. 
permFileIO.Demand(); 
resultText.Append("The demand for permission to access the C:\\Temp folder succeeded.\n\n"); 
} 

- 編輯1 -

我讀的地方,CAS會消失,因爲它是配置疼痛。它是否正確?

回答

1

你不需要這個需求。

如果您刪除它並且存在安全限制,它將僅引發安全異常。

需求的優勢在於運行時可以確定應用程序所需的確切權限(例如,它需要特定目錄的FileIOPermission),然後讓用戶/管理員配置該權限。

+0

>用戶/管理員配置。 請詳細說明。謝謝。 – rkrauter 2010-04-25 00:48:51

+0

這是一個控制面板小程序,可讓您完全配置該小程序。但是正如你寫的(正確),這種形式的CAS已經在.Net 4.0中消失了,因爲基本上沒有人爲每個應用程序創建權限集(有數十億個(可能是無限的)可能的權限組合)。 – Foxfire 2010-04-25 08:44:20

2

如果你想在你需要權限的調用之前失敗,你也可以用聲明方式修飾調用方法,這在調用方法之前會失敗。它還使代碼更清潔,更易於調試。

[FileIOPermission(SecurityAction.Demand, [email protected]"C:\Temp ")] 
public void MyTempFunction(){.... 
相關問題