CodeAccessPermission 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義所有程式碼存取權限的底層結構。
public ref class CodeAccessPermission abstract : System::Security::IPermission, System::Security::IStackWalk
[System.Serializable]
public abstract class CodeAccessPermission : System.Security.IPermission, System.Security.IStackWalk
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class CodeAccessPermission : System.Security.IPermission, System.Security.IStackWalk
[<System.Serializable>]
type CodeAccessPermission = class
interface IPermission
interface ISecurityEncodable
interface IStackWalk
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CodeAccessPermission = class
interface IPermission
interface ISecurityEncodable
interface IStackWalk
Public MustInherit Class CodeAccessPermission
Implements IPermission, IStackWalk
- 繼承
-
CodeAccessPermission
- 衍生
- 屬性
- 實作
備註
注意事項
.NET Framework 和 .NET 的所有版本中,代碼存取安全性(CAS)已被棄用。 最新版本的 .NET 不會接受 CAS 註釋,如果使用 CAS 相關 API,則會產生錯誤。 開發人員應尋求其他方法來完成安全任務。
程式碼存取權限使用堆疊行走以確保所有呼叫者都已獲得權限。 若權限物件為 null,則其處理方式與狀態為 PermissionState.None的權限物件相同。
呼叫堆疊通常以向下成長表示,因此呼叫堆疊中較高的方法也會在呼叫堆疊中較低的呼叫方法。
繼承 CodeAccessPermission 類別必須獲得完全信任,才能作為權限正常運作,擴展安全基礎設施。 為了判斷繼承者是否完全受信任,則CodeAccessPermission為 和 。InheritanceDemandControlEvidence = trueControlPolicy = true
給實施者的注意事項
當你從 繼承 時 CodeAccessPermission,也必須實作該 IUnrestrictedPermission 介面。
CodeAccessPermission以下成員必須被覆寫:Copy()、 Union(IPermission)Intersect(IPermission)IsSubsetOf(IPermission)ToXml()FromXml(SecurityElement)和 。
你還必須定義一個以 為 PermissionState 唯一參數的建構子。
你必須將屬性 SerializableAttribute 套用到繼承自 CodeAccessPermission的類別。
建構函式
| 名稱 | Description |
|---|---|
| CodeAccessPermission() |
初始化 CodeAccessPermission 類別的新執行個體。 |
方法
| 名稱 | Description |
|---|---|
| Assert() |
宣告呼叫程式碼可透過呼叫此方法的程式碼存取受權限要求保護的資源,即使堆疊中較高的呼叫者尚未獲得存取該資源的權限。 使用 Assert() 可能會造成安全問題。 |
| Copy() |
當由衍生類別實作時,會建立並回傳與目前權限物件相同的副本。 |
| Demand() |
若呼叫堆疊中所有較高的呼叫者尚未獲得當前實例指定的權限,則在執行時強制執行 a SecurityException 。 |
| Deny() |
已淘汰.
防止呼叫堆疊中較高的呼叫者使用呼叫此方法的程式碼來存取目前實例指定的資源。 |
| Equals(Object) |
判斷指定的 CodeAccessPermission 物件是否等於當前 CodeAccessPermission的 。 |
| Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
| FromXml(SecurityElement) |
當在衍生類別中覆寫時,會從 XML 編碼中重建具有指定狀態的安全物件。 |
| GetHashCode() |
取得適合用於雜湊演算法及資料結構(如雜湊表)的物件雜湊碼 CodeAccessPermission 。 |
| GetHashCode() |
做為預設哈希函式。 (繼承來源 Object) |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| Intersect(IPermission) |
當由衍生類別實作時,會建立並回傳一個權限,該權限是目前權限與指定權限的交集。 |
| IsSubsetOf(IPermission) |
當由衍生類別實作時,判斷目前權限是否屬於指定權限的子集。 |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| PermitOnly() |
防止呼叫堆疊中較高的呼叫者使用呼叫此方法的程式碼存取除當前實例指定的資源外的所有資源。 |
| RevertAll() |
會讓目前幀的所有先前覆寫都被移除,不再生效。 |
| RevertAssert() |
會讓目前幀的所有先前 Assert() 設定被移除,不再有效。 |
| RevertDeny() |
已淘汰.
會讓目前幀的所有先前 Deny() 設定被移除,不再有效。 |
| RevertPermitOnly() |
會讓目前幀的所有先前 PermitOnly() 設定被移除,不再有效。 |
| ToString() |
建立並回傳當前權限物件的字串表示。 |
| ToXml() |
當在衍生類別中覆寫時,會建立安全物件及其當前狀態的 XML 編碼。 |
| Union(IPermission) |
當在衍生類別中覆寫時,會建立一個權限,該權限是目前權限與指定權限的合併。 |