決定授與的使用權限
重要事項 |
---|
在 .NET Framework 4 版 中,Common Language Runtime (CLR) 不會為電腦提供安全性原則。Microsoft 建議您使用 Windows 軟體限制原則做為 CLR 安全性原則的取代項目。本主題中的資訊適用於 .NET Framework 3.5 (含) 以前版本,而不適用於 4 (含) 以後版本。如需這項變更和其他變更的詳細資訊,請參閱 .NET Framework 4 中的安全性變更。 |
對應用程式定義域而言,授與的使用權限集合只有允許的使用權限集合。
對組件而言,Common Language Runtime 在載入組件時會考慮其他的因素,再決定授與的使用權限集合。 組件可包含宣告式安全性要求,指定程式碼所需要或想要具有的使用權限。 下表說明程式碼可以要求的使用權限集合。
使用權限集合 |
說明 |
---|---|
必要 |
指定執行程式碼所必須具有的最低使用權限集合。 |
選用 |
辨識程式碼除了最低使用權限集合以外還想要具有的使用權限。 這會導致最低使用權限集合或選擇性使用權限集合中未辨識的所有使用權限全都遭到隱含的拒絕。 |
拒絕 |
指定永遠不授與程式碼的使用權限。 |
如果這三個使用權限要求都不存在,只會將原則允許的使用權限集合授與組件。 但是,如果這三個使用權限要求至少有一個存在,執行階段便會使用下列程序來考慮要求的使用權限:
執行階段會為組件計算允許的使用權限,並確定組件具有執行的使用權限。 如果沒有執行的使用權限,執行階段會擲回 PolicyException,而且不允許程式碼執行。
執行階段會判斷要求的使用權限集合是否為允許的使用權限集合的子集合。 如果不是,執行階段會擲回 PolicyException,而且不允許程式碼執行。
Runtime 會將選擇性的要求使用權限與允許的使用權限集合相交。 如果要求的不是選擇性使用權限,則會將選擇性的 PermissionSet 假設為 FullTrust。
執行階段會聯合步驟 3 的結果與最低要求的使用權限。
最後,執行階段會將步驟 4 的結果從拒絕的任何使用權限中減去。