【问题标题】:Creating directories in medium trust environment?在中等信任环境中创建目录?
【发布时间】:2011-09-17 06:57:17
【问题描述】:

我有一个在中等信任环境中运行的 ASP.NET Web 应用程序,它与一个共享主机提供商一起运行。以下代码导致抛出 SecurityException:

private void TestButton_Click(object sender, EventArgs e)
{
    string directory = Server.MapPath("~/MyFolder/") + "_TestDirectory";
    if (!Directory.Exists(directory))
        Directory.CreateDirectory(directory);
}

错误全文为:

System.Security.SecurityException:请求“System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。
   在 System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark& stackMark,布尔 isPermSet)
   在 System.Security.CodeAccessPermission.Demand()
   在 System.IO.Directory.InternalCreateDirectory(字符串 fullPath,字符串路径,DirectorySecurity dirSecurity)
   在 System.IO.Directory.CreateDirectory(字符串路径,DirectorySecurity directorySecurity)
   在 ASP.testcreatedirectory_aspx.TestButton_Click(对象发送者,EventArgs e)
失败的动作是:
要求
第一个失败的权限类型是:
System.Security.Permissions.FileIOPermission
失败的程序集区域是:
我的电脑

创建子文件夹的文件夹具有完全权限,所以我认为这不是问题。这看起来与在中等信任环境中运行有关。

中等信任环境不允许创建新目录(通过 Directory.Create 方法)是否正常,和/或是否有任何解决方法?

【问题讨论】:

    标签: asp.net medium-trust securityexception create-directory


    【解决方案1】:

    只要您尝试访问的路径位于您的应用程序所在的虚拟目录下,您就应该能够在中等信任下访问它。您确定您的应用程序身份具有文件夹创建权限吗?

    http://msdn.microsoft.com/en-us/library/aa302425#c09618429_015


    编辑:我可能读错了上面的文档。也请参阅此链接,您似乎只有读取、写入、追加和路径发现权限:(

    FileIOPermission 受到限制。这 意味着您只能访问 你的应用程序的虚拟目录 等级制度。您的申请获得批准 读取、写入、追加和路径发现 您的应用程序的权限 虚拟目录层次结构。

    http://msdn.microsoft.com/en-us/library/ff648344.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2019-03-14
      • 2021-02-18
      • 1970-01-01
      相关资源
      最近更新 更多