【问题标题】:.net security exception.net 安全异常
【发布时间】:2011-03-14 15:36:02
【问题描述】:

我正在使用 OpenFileDialog 类使用 c# 浏览窗口应用程序中的文件。它给出了如下安全异常。

请求类型的许可 'System.Security.Permissions.FileIOPermission, mscorlib,版本=2.0.0.0, 文化=中性, PublicKeyToken=b77a5c561934e089' 失败了。

我的代码是

        OpenFileDialog fdlg = new OpenFileDialog();
        fdlg.Title = "C# Corner Open File Dialog";
        fdlg.InitialDirectory = @"c:\";
        fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
        fdlg.FilterIndex = 2;
        fdlg.RestoreDirectory = true;
        if (fdlg.ShowDialog() == DialogResult.OK)
        {
            txtpath.Text = fdlg.FileName;
        }

我没有遇到问题。 请帮忙。

【问题讨论】:

  • 这是什么程序?您是从网络驱动器还是共享运行程序?
  • 为什么这个标签是 asp.net?您是否尝试从 asp.net 应用程序打开客户端上的对话框?
  • 重新标记为 .net、C# 和 winforms。这可能会吸引到正确的答案。

标签: c# .net winforms


【解决方案1】:

安全说明
要获取或设置 FileName 属性,您的程序集需要 System.Security.Permissions.FileIOPermission 类授予的特权级别。如果您在部分信任上下文中运行,则该进程可能会由于权限不足而引发异常。有关详细信息,请参阅代码访问安全基础知识。

【讨论】:

  • 您应该为您的报价添加一个来源(也许还有一个链接)。或许还可以解释一下它对那些不理解的人的实际意义......
【解决方案2】:

如果您实际上是在尝试从 ASP.NET 应用程序运行此代码,那么您收到的异常是有意义的。这是 Windows 窗体代码,不能在 ASP.NET 应用程序中运行。

除其他外,ASP.NET 应用程序在降低信任的环境中运行。他们不能做某些“普通”应用程序可以做的事情。


.NET 包含一个名为“Code Access Security”的概念。它根据代码的来源等因素授予对不同 .NET 功能的不同访问权限。自然,从您的计算机运行的代码比从其他计算机运行的代码更受信任。在您的环境中,这意味着不信任以这种方式访问​​文件系统。

需要将此代码复制到本地驱动器并从那里运行。

【讨论】:

  • 那你为什么把这个问题标记为asp.net?
  • 你能告诉我是什么问题吗?
  • 共享驱动器??您必须对共享驱动器拥有完全权限。访问/读取文件..
【解决方案3】:

对于桌面应用程序,请检查您的项目属性“安全”设置,以确保禁用 ClickOnce 安全设置。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2016-11-20
    • 2015-09-13
    相关资源
    最近更新 更多