【问题标题】:C# - Modify File Permission ASP.NET MVCC# - 修改文件权限 ASP.NET MVC
【发布时间】:2015-02-14 19:20:16
【问题描述】:

我想修改文件的权限,我说的是666 / 777等权限。 换句话说,tio 如何将文件的权限从 ANY 更改为 666。 目标是在我的 ASP.NET MVC Web App 上更改上传文件的权限。

  public string Uploadfile(HttpRequestBase currentRequest)
    {
        string fileName = "";
        for (int i = 0; i < currentRequest.Files.Count; i++)
        {
            if (currentRequest.Files[i].ContentLength > 0)
            {

                string strFileName = Guid.NewGuid().ToString() +
                                     Path.GetExtension(currentRequest.Files[i].FileName);
                currentRequest.Files[i].SaveAs(HttpContext.Current.Server.MapPath("/Upload/Task/" + strFileName));

                fileName = strFileName;
            }
        }
        return fileName;
    }
}

【问题讨论】:

    标签: c# asp.net-mvc permissions


    【解决方案1】:

    你应该看看File.SetAccessControl方法

    public static void SetAccessControl(
        string path,
        FileSecurity fileSecurity
    )
    

    例如,这是您获取文件的FileSecurity 的方式

    FileSecurity fSecurity = File.GetAccessControl(filePath);
    

    然后你创建一个FileSystemAccessRule

    FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow);
    

    然后将此规则添加到文件的FileSecurity

    File.SetAccessControl(filePath, fSecurity);
    

    FileSystemRights 可能值列表
    http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemrights(v=vs.110).aspx

    【讨论】:

    • 此代码允许读写,但不允许执行吗?
    • FullControl 包括执行。我已更新我的答案以包含指向 FileSystemRights 可能值的链接。
    【解决方案2】:

    Windows 文件安全的工作方式与 Unix 不同,并且没有直接等效于 chmod 666。

    您正在寻找的方法是 File.SetAccessControl,它采用文件的路径和一个 FileSecurity 对象。最接近“666”的可能是为“Everyone”用户帐户分配读/写权限。

    为此,您将使用 File.GetAccessControl 检索文件的当前权限,将新的读/写权限添加到您刚刚检索到的 FileSecurity 对象,然后使用 SetAccessControl 写入新权限。

    更多信息可在 MSDN 上找到:http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol%28v=vs.110%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-06
      • 2016-05-16
      • 2011-06-12
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 2011-05-02
      相关资源
      最近更新 更多