語言

PrincipalPermission 類別

定義

警告

Code Access Security is not supported or honored by the runtime.

允許使用針對宣告式與命令式安全動作所定義的語言結構,對主動主體進行檢查(見 IPrincipal)。 此類別無法獲得繼承。

public ref class PrincipalPermission sealed : System::Security::IPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
[<System.Serializable>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
繼承
PrincipalPermission
屬性
實作

備註

注意事項

.NET Framework 和 .NET 的所有版本中,代碼存取安全性(CAS)已被棄用。 最新版本的 .NET 不會接受 CAS 註釋,如果使用 CAS 相關 API,則會產生錯誤。 開發人員應尋求其他方法來完成安全任務。

透過將身份資訊(使用者名稱與角色)傳遞給建構子, PrincipalPermission 可以用來要求主動主體的身份與此資訊相符。

要匹配主動 IPrincipal 與關聯 IIdentity,指定的身份與角色必須相符。 若 null 使用身份字串,則被解讀為請求匹配任意身份。 角色字串的使用 null 會匹配任何角色。 由此推移,傳遞 null 參數 或 namerole 可 PrincipalPermission 匹配任意 IPrincipal中的恆等式與角色。 也可以構造一個 PrincipalPermission 只判斷 代表 IIdentity 已認證或未認證實體的 。 在這種情況下, name 和 role 會被忽略。

與大多數其他權限不同,不會 PrincipalPermission 擴展 CodeAccessPermission。 不過,它確實實作了介面 IPermission 。 這是因為 PrincipalPermission 不是程式碼存取權限;也就是說,它並非根據執行組件的身份來授予。 相反地,它允許程式碼以符合程式碼存取及程式碼身份權限執行動作的方式,針對當前使用者身份執行動作(Demand、UnionIntersect等等)。

Important

在要求主體權限之前,必須將當前應用域的主要策略設定為列舉值 WindowsPrincipal。 預設情況下,主策略設定為 UnauthenticatedPrincipal。 若未將主體政策設為 WindowsPrincipal,主體許可申請將失敗。 在取得主權限前,應執行以下程式碼:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

建構函式

名稱 Description
PrincipalPermission(PermissionState)
已淘汰.

使用指定的 PrincipalPermission,初始化 PermissionState 類別的新實例。

PrincipalPermission(String, String, Boolean)
已淘汰.

初始化該類別的新實例 PrincipalPermission ,以符合指定的 name、 role、 及認證狀態。

PrincipalPermission(String, String)
已淘汰.

初始化該類別的新實例 PrincipalPermission ,針對指定的 name 和 role。

方法

名稱 Description
Copy()
已淘汰.

建立並回傳與目前權限相同的副本。

Demand()
已淘汰.

執行時判斷目前主體是否符合目前權限指定的主體。

Equals(Object)
已淘汰.

判斷指定的 PrincipalPermission 物件是否等於當前 PrincipalPermission的 。

Equals(Object)
已淘汰.

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FromXml(SecurityElement)
已淘汰.

從 XML 編碼中重建具有指定狀態的權限。

GetHashCode()
已淘汰.

取得適合用於雜湊演算法及資料結構(如雜湊表)的物件雜湊碼 PrincipalPermission 。

GetHashCode()
已淘汰.

做為預設哈希函式。

(繼承來源 Object)
GetType()
已淘汰.

取得目前實例的 Type。

(繼承來源 Object)
Intersect(IPermission)
已淘汰.

建立並回傳一個權限,該權限是目前權限與指定權限的交集。

IsSubsetOf(IPermission)
已淘汰.

判斷目前權限是否屬於指定權限的子集。

IsUnrestricted()
已淘汰.

回傳一個值,表示目前權限是否為無限制。

MemberwiseClone()
已淘汰.

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()
已淘汰.

建立並回傳代表當前權限的字串。

ToXml()
已淘汰.

建立權限及其當前狀態的 XML 編碼。

Union(IPermission)
已淘汰.

建立一個權限,結合目前權限與指定權限。

適用於

另請參閱