SecurityException 類別

定義

在偵測到安全性錯誤時發生的例外狀況。

public ref class SecurityException : Exception
public ref class SecurityException : SystemException
public class SecurityException : Exception
public class SecurityException : SystemException
[System.Serializable]
public class SecurityException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SecurityException : SystemException
type SecurityException = class
    inherit Exception
type SecurityException = class
    inherit SystemException
[<System.Serializable>]
type SecurityException = class
    inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SecurityException = class
    inherit SystemException
Public Class SecurityException
Inherits Exception
Public Class SecurityException
Inherits SystemException
繼承
SecurityException
繼承
SecurityException
屬性

備註

SecurityException當呼叫端沒有存取資源所需的許可權時,就會擲回例外狀況。 下列範例會具現化 PermissionSet 物件,其中包含 UIPermission 物件,以允許存取 UI 物件和剪貼簿,以及 RegistryPermission 防止登錄存取的物件。 方法的呼叫 PermissionSet.PermitOnly 表示不論指派給呼叫者的許可權為何,這些許可權都會套用。 因此,嘗試建立登錄機碼會擲回 SecurityException

using Microsoft.Win32;
using System;
using System.Security;
using System.Security.Permissions;

public class Example
{
   public static void Main()
   {
      PermissionSet perms = new PermissionSet(null);
      perms.AddPermission(new UIPermission(PermissionState.Unrestricted));
      perms.AddPermission(new RegistryPermission(PermissionState.None));
      perms.PermitOnly();
      
      try {
          RegistryKey key = Registry.CurrentUser.CreateSubKey("MyCompany\\Applications");
          Console.WriteLine("Registry key: {0}", key.Name);
      }
      catch (SecurityException e) {
         Console.WriteLine("Security Exception:\n\n{0}", e.Message);      
      }
   }
}
// The example displays the following output:
//    Security Exception:
//    
//    Request for the permission of type 'System.Security.Permissions.RegistryPermission, 
//    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Imports Microsoft.Win32
Imports System.Security
Imports System.Security.Permissions

Module Example
   Public Sub Main()
      Dim perms As New PermissionSet(CType(Nothing, PermissionSet))
      perms.AddPermission(New UIPermission(PermissionState.Unrestricted))
      perms.AddPermission(New RegistryPermission(PermissionState.None))
      perms.PermitOnly()
      
      Try 
          Dim key As RegistryKey = Registry.CurrentUser.CreateSubKey("MyCompany\\Applications")
          Console.WriteLine("Registry key: {0}", key.Name)
      Catch e As SecurityException
         Console.WriteLine("Security Exception:\n\n{0}", e.Message)      
      End Try
   End Sub
End Module
' The example displays the following output:
'    Security Exception:
'    
'    Request for the permission of type 'System.Security.Permissions.RegistryPermission, 
'    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

SecurityException 會使用 HRESULT COR_E_SECURITY,其值為 0x8013150A。

如需 類別實例 SecurityException 的初始屬性值清單,請參閱特定 SecurityException 建構函式。

建構函式

SecurityException()

使用預設屬性,初始化 SecurityException 類別的新執行個體。

SecurityException(SerializationInfo, StreamingContext)

使用序列化資料,初始化 SecurityException 類別的新執行個體。

SecurityException(String)

使用指定的錯誤訊息,初始化 SecurityException 類別的新執行個體。

SecurityException(String, AssemblyName, PermissionSet, PermissionSet, MethodInfo, SecurityAction, Object, IPermission, Evidence)

針對沒有足夠授權集所造成的例外狀況,初始化 SecurityException 類別的新執行個體。

SecurityException(String, Exception)

使用指定的錯誤訊息以及造成此例外狀況的內部例外狀況的參考,初始化 SecurityException 類別的新執行個體。

SecurityException(String, Object, Object, MethodInfo, Object, IPermission)

針對此堆疊上 Deny 所造成例外狀況,初始化 SecurityException 類別的新執行個體。

SecurityException(String, Type)

使用指定的錯誤訊息以及造成例外狀況擲回的權限類型,初始化 SecurityException 類別的新執行個體。

SecurityException(String, Type, String)

使用指定的錯誤訊息、造成例外狀況擲回的權限類型以及權限狀態,初始化 SecurityException 類別的新執行個體。

屬性

Action

取得或設定造成例外狀況的安全性動作。

Data

取得鍵值組的集合,這些鍵值組會提供關於例外狀況的其他使用者定義資訊。

(繼承來源 Exception)
Demanded

取得或設定失敗之要求的安全性權限、權限集或權限集集合。

DenySetInstance

取得或設定造成要求失敗之遭拒絕安全性權限、權限集或權限集集合。

FailedAssemblyInfo

取得或設定失敗組件的相關資訊。

FirstPermissionThatFailed

取得或設定要求失敗之權限集合或權限集集合中的第一個權限。

GrantedSet

取得或設定造成 SecurityException 之組件的授與權限集合。

HelpLink

取得或設定與這個例外狀況相關聯的說明檔連結。

(繼承來源 Exception)
HResult

取得或設定 HRESULT,它是指派給特定例外狀況的編碼數值。

(繼承來源 Exception)
InnerException

取得造成目前例外狀況的 Exception 執行個體。

(繼承來源 Exception)
Message

取得描述目前例外狀況的訊息。

(繼承來源 Exception)
Method

取得或設定與例外狀況關聯之方法的相關資訊。

PermissionState

取得或設定擲回例外狀況的權限狀態。

PermissionType

取得或設定失敗的權限類型。

PermitOnlySetInstance

取得或設定權限、權限集或權限集的集合,其屬於造成安全性檢查失敗之僅限允許的堆疊框架。

RefusedSet

取得或設定造成 SecurityException 之組件的遭拒絕權限集合。

Source

取得或設定造成錯誤的應用程式或物件的名稱。

(繼承來源 Exception)
StackTrace

取得呼叫堆疊上即時運算框架的字串表示。

(繼承來源 Exception)
TargetSite

取得擲回目前例外狀況的方法。

(繼承來源 Exception)
Url

取得或設定造成例外狀況之組件的 URL。

Zone

取得或設定造成例外狀況之組件的區域。

方法

Equals(Object)

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

(繼承來源 Object)
GetBaseException()

在衍生類別中覆寫時,傳回一或多個後續的例外狀況的根本原因 Exception

(繼承來源 Exception)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetObjectData(SerializationInfo, StreamingContext)

使用 SecurityException 的相關資訊來設定 SerializationInfo

GetObjectData(SerializationInfo, StreamingContext)

在衍生類別中覆寫時,使用例外狀況的資訊設定 SerializationInfo

(繼承來源 Exception)
GetType()

取得目前執行個體的執行階段類型。

(繼承來源 Exception)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回目前 SecurityException 的表示。

事件

SerializeObjectState
已過時。

當例外狀況序列化,以建立包含例外狀況相關序列化資料的例外狀況狀態物件時,就會發生此事件。

(繼承來源 Exception)

適用於

另請參閱