【发布时间】: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