我有一个 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,版本=2.0.0.0,文化=中性,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 方法)是否正常,和/或是否有任何解决方法?