none
asp.net上传文件报对路径..的访问被拒绝,为文件夹增加了EveryOne用户,并赋予完全控制依然不行 RRS feed

  • 问题

  • 代码:
    protected void btnUpload_Click(object sender, EventArgs e)
    {
    string appPath = Request.PhysicalApplicationPath;
    DateTime now = DateTime.Now;
    string folderPath = string.Format("{0}\\images\\{1}\\{2}\\{3}\\{4}", appPath, now.Year, now.Month, now.Day, now.Hour);
    try
    {
    if (!Directory.Exists(folderPath))
    {
    DirectoryInfo di = Directory.CreateDirectory(folderPath);
    addpathPower(folderPath, "EveryOne", "FullControl");
    }
    for(int i=0;i<Request.Files.Count;i++)
    {
    HttpPostedFile info = Request.Files[i];
    if (info.FileName.Length == 0)
    return;
    info.SaveAs(folderPath);
    }
    }
    catch (Exception ex)
    {

    }
    finally
    {

    }
    }
    public void addpathPower(string path, string username, string power)
    {
    DirectoryInfo info = new DirectoryInfo(path);
    if ((info.Attributes & FileAttributes.ReadOnly) != 0)
    {
    info.Attributes = FileAttributes.Normal;
    }
    DirectorySecurity ds = info.GetAccessControl();

    switch (power)
    {
    case "FullControl":
    ds.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.FullControl
    , InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
    break;
    case "ReadOnly":
    ds.AddAccessRule(new FileSystemAccessRule(username,FileSystemRights.Read
    ,AccessControlType.Allow));
    break;
    case "Write":
    ds.AddAccessRule(new FileSystemAccessRule(username,FileSystemRights.Write
    ,AccessControlType.Allow));
    break;
    }
    }
    当我按照网上资料上所说的添加用户ASPNET这个用户报错如下:

    System.Security.Principal.IdentityNotMappedException: 未能转换部分或所有标识引用

    并且我发现我机器上所有的文件夹都带有只读属性并且无法取消,取消之后又会自动标记为只读.

     

    • 已移动 孟宪会Moderator 2010年6月12日 1:53 (发件人:一般性问题讨论区)
    2010年6月10日 15:26

答案

  • 你的操作系统是什么?

    一般情况下需要添加下面几个用户的读写权限。

    Network service, IUSER_XXX,ASPNET.

    这三个用户添加后应该可以解决这个问题。


    Microsoft Online Community Support
    2010年6月14日 3:17

全部回复

  • 你的操作系统是什么?

    一般情况下需要添加下面几个用户的读写权限。

    Network service, IUSER_XXX,ASPNET.

    这三个用户添加后应该可以解决这个问题。


    Microsoft Online Community Support
    2010年6月14日 3:17
  • win7,我在用户查看里面没有看到有IUSER_XXX和ASPNET这两个用户,我上传文件的问题解决了,原来是我没加上文件名称,不过添加ASPNET并赋权的错误依然存在

     

     

    System.Security.Principal.IdentityNotMappedException: 未能转换部分或所有标识引用

    2010年6月18日 7:19