设置文件夹创建的写权限

时间:2012-12-02 20:52:33

标签: c# asp.net sql-server iis

您好我一直在尝试正确配置IIS 6以提供写入permisiosn大约2天,我似乎无法找到任何有用的资源。我对ASP.NET有点新,直到现在我从来没有必须使用IIS。

我要做的是将文件上传到服务器。服务器上的每个用户都将拥有自己的特殊文件夹,将通过C#自动创建。现在,当我尝试上传文件时,我收到此错误:< / p>

  

访问路径'D:\ Projects IDE \ Visual Studio \ MyWork \ Websites \ Forum \ Images \ avatar \ userAvatars \ aleczandru'被拒绝

这是我为每个用户创建文件夹并保存文件的代码:

private void addImageToApp()
{
    string path = "~/Images/avatar/userAvatars/" + User.Identity.Name;

    createPath(path);
    if( Directory.Exists(HostingEnvironment.MapPath(path)))
    {
        try {
              UploadImage.SaveAs(HostingEnvironment.MapPath(path));
              MultiViewIndex.ActiveViewIndex = 0;
        }catch(Exception ex)
        {
               AvatarDetails.Text = ex.Message;
        }  
    }
}

private void createPath(string path)
{  
    string activeDir = HostingEnvironment.MapPath("~/Images/avatar/userAvatars");
    if( !Directory.Exists(Server.MapPath(path)) )
    {
        string newPath = Path.Combine(activeDir, User.Identity.Name);
        Directory.CreateDirectory(newPath);
    }
}

我在互联网上找到的只是我必须通过文件夹/ p​​roperties / security / ...添加写入权限,而这一切都很好,我不能为每个文件夹执行此操作。

到目前为止,我并不确定IIS是我需要配置的那个我在这方面有点迷失。

如何在文件夹创建时自动为文件夹写入权限?

如果有人有一篇很好的文章或教程说明如何做到这一点,请与我分享我能找到的所有信息都非常基本。

修改

我已将网络服务帐户添加到具有完全权限的Images文件夹,并已将应用程序的池标识设置为NetworkService但我仍然收到相同的错误

修改

我最近几天搞乱了SQL-SERVER以便完成这项工作,所以我可能错过了一些形式,我理解NETWORK SERVICE存储在SQL-SERVER master.db数据库中。我好像是有两个网络服务登录可能这是问题吗?我记得当我第一次检查它时,我现在没有,我有两个:

enter image description here

2 个答案:

答案 0 :(得分:2)

简单地说,当您运行的asp.net应用程序可以打开任务管理器并找到进程w3wp时。 W3wp进程与任何其他进程一样具有用户标识(默认情况下 - 应用程序池标识 - DefaultAppPool(如应用程序池名称))。 如果是这样,您应该为名为DefaultAppPool的用户添加写权限。为此,您应该在文件夹的属性窗口中打开安全选项卡,然后change - &gt; add并键入IIS AppPool/DefaultAppPool并选择本地计算机。

This帖子可以帮到你!

答案 1 :(得分:0)

这与兄弟IIS无关。您只需打开IIS即可。转到Application Pool。右键单击您的网站运行的应用程序池。选择“高级设置”并查看针对IDENTITY的条目。将其更改为使用NetworkService。这意味着您现在将在NETWORK SERVICE帐户下运行您的网站。

现在右键单击根图像文件夹,即“图像”。选择PROPERTIES。选择SECURITY。添加用户NETWORK SERVICE,并为该文件夹授予FULL RIGHTS权限。

现在,只要您通过代码在此“Images”文件夹下创建文件夹和文件,它就会自动从其父级继承权限,您将允许您执行任何操作(添加/删除)。

我希望这能回答你的问题。如果是,请将其标记为“已回答”。