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当调用方没有访问资源所需的权限时,将引发异常。 以下示例实例化一个对象,该对象包含一个PermissionSetUIPermission对象,该对象允许访问 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 使用具有值0x8013150A的 HRESULT COR_E_SECURITY。

有关类实例 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)

初始化 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)

适用于

另请参阅