【问题标题】:UnauthorizedAccessException vs SecurityExceptionUnauthorizedAccessException 与 SecurityException
【发布时间】:2010-02-26 03:04:49
【问题描述】:

FileStream 的 MSDN 构造函数说它可能抛出 UnauthorizedAccessException 或 SecurityException。以下是 MSDN 关于这些异常的说明。

UnauthorizedAccessException: 当操作系统因 I/O 错误或特定类型的安全错误而拒绝访问时引发的异常。

SecurityException: 检测到安全错误时抛出的异常。

这两个相似的异常有何不同?什么情况会触发其中任何一种?

【问题讨论】:

    标签: .net exception-handling securityexception unauthorizedaccessexcepti


    【解决方案1】:

    当访问磁盘上的文件时出现权限错误时,会抛出 UnauthorizedAccessException。这是操作系统级别的错误,例如普通用户试图覆盖操作系统文件(如 kernel32.dll)。

    如果在 CLR 级别存在安全违规,则抛出 SecurityException。例如,如果您作为访问权限较低的 ClickOnce 应用程序运行,并尝试读取/写入文件系统中被进程中的 CLR 安全设置禁止的位置。

    【讨论】:

    • 因此,如果我尝试在当前用户没有写入权限的网络驱动器上写入/创建文件,那么它会抛出 UnauthorizedAccessException?
    • 请添加更多描述或示例以了解它们的实际区别?
    • SecurityException 被一些内置 API 抛出,例如 RegistryKey.OpenBaseKey(它也会抛出 UnauthorizedAccessException,令人困惑)。
    猜你喜欢
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多