0

我使用 fileUpload 控件,我可以保存图像,但是当我尝试删除它时会出现这样的安全错误:

请求“System.Security.Permissions.FileIOPermission、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”类型的权限失败。

它适用于我的本地主机,但不适用于网络。我试图在网络配置文件中添加很多东西,但它没有用,我不知道为什么。为什么我可以保存文件但不能删除。它可能是关于 System.Security.Permissions.FileIOPermission 可能......这是我的代码:

    protected void btnDelete_Click(object sender, EventArgs e)
    {
        try
        {
            if (!String.IsNullOrEmpty(imgLogo.ImageUrl))
            {
                int index = imgLogo.ImageUrl.LastIndexOf('.');
                string fileExt = imgLogo.ImageUrl.Substring(index);
                string defPath = Business.DefinitionsData.getDefaultLogoPath();
                string entId = ((xOrgProject.DataAccess.EnterpriseUserTable)Session["Enterprise"]).EnterpriseUserId.ToString();
                string FullPath = Server.MapPath(defPath) + entId + fileExt;

                FileInfo file = new FileInfo(FullPath);
                if (file.Exists)
                {
                    file.GetAccessControl();
                    file.Delete();
                    Business.DefinitionsData.UpdateEntLogoPath(int.Parse(entId), null);
                    imgLogo.ImageUrl = null;
                    imgLogo.Visible = false;
                    btnDelete.Visible = false;
                    btnUpload.Visible = true;
                    Fu1.Enabled = true;
                    StatusLabel.Text = "Kaldırıldı.";
                }
            }
        }

        catch (Exception ex)
        { StatusLabel.Text = ex.Message; }
    }
4

2 回答 2

1

由于它在本地运行良好,因此问题很可能是由于 Web 服务器上的配置造成的。或者根据我的经验,这种情况经常发生。

您是否尝试过修改 web 服务器上 machine.config 文件中的信任级别?

另外,您在 Web 服务器上使用什么身份验证?

在本地运行它,您将可以访问您的计算机,但如果您在 Web 服务器上使用模拟,则匿名帐户 ID 可能没有相关的服务器权限来删除文件,这将引发安全异常。

于 2013-08-18T21:15:23.050 回答
0

谢谢你的回答,我得到了我的解决方案。我已经在上传按钮点击事件中编写了这段代码,然后它就解决了。我之前没有处理过。但现在它很好。再次感谢。

System.Drawing.Image img = System.Drawing.Image.FromFile(save);

img.Dispose();

于 2013-09-01T00:18:28.400 回答