Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从上载的文件夹和文件中删除执行权限_C#_.net_System.io.file - Fatal编程技术网

C# 从上载的文件夹和文件中删除执行权限

C# 从上载的文件夹和文件中删除执行权限,c#,.net,system.io.file,C#,.net,System.io.file,我在工作的文件和文件夹上传系统,我想增加一些安全性 我遵循了这一点,上面的6号安全点上写着: 6。严格控制权限 任何上载的文件都将归web服务器所有。但它只需要 读/写权限,而不是执行权限。在文件被删除之后 下载后,如果需要,您可以应用其他限制 适当的有时,删除execute命令可能会有所帮助 来自目录的权限,以防止服务器枚举 档案 如何使用C#应用此功能如果我理解正确,您希望将文件上载到远程服务器,然后将文件更改为只读。这里有一个选择。从获取文件对象开始。之后,您可以设置访问控制,然后提供您想

我在工作的文件和文件夹上传系统,我想增加一些安全性

我遵循了这一点,上面的6号安全点上写着:

6。严格控制权限

任何上载的文件都将归web服务器所有。但它只需要 读/写权限,而不是执行权限。在文件被删除之后 下载后,如果需要,您可以应用其他限制 适当的有时,删除execute命令可能会有所帮助 来自目录的权限,以防止服务器枚举 档案


如何使用C#

应用此功能如果我理解正确,您希望将文件上载到远程服务器,然后将文件更改为只读。这里有一个选择。从获取文件对象开始。之后,您可以设置访问控制,然后提供您想要提供的访问

可能是这样的:

using System.IO;
using System.Security.AccessControl;

private void SetFileAccess(string path)
    {
        var fileSecurity = new FileSecurity();
        var readRule = new FileSystemAccessRule("identityOfUser", FileSystemRights.ReadData, AccessControlType.Allow);
        var writeRule = new FileSystemAccessRule("identityOfUser", FileSystemRights.WriteData, AccessControlType.Allow);
        var noExecRule = new FileSystemAccessRule("identityOfUser", FileSystemRights.ExecuteFile, AccessControlType.Deny);
        fileSecurity.AddAccessRule(readRule);
        fileSecurity.AddAccessRule(writeRule);
        fileSecurity.AddAccessRule(noExecRule);
        File.SetAccessControl(path, fileSecurity);
    }