gpt4 book ai didi

c# - 删除所有默认文件权限

转载 作者:行者123 更新时间:2023-11-30 13:47:05 24 4
gpt4 key购买 nike

我有一个 C# 网络应用程序可以提示管理员输入网络代理身份验证信息。我询问用户是否要保存此信息,如果他们选择是,我会为用户加密一个唯一的本地文件。然后我想删除除创建它的用户之外的所有文件权限,但所有其他用户都可以删除该文件。

现在,我在下面找到了 MS 文章,但如果我不知道最初在该文件上设置的默认用户,那也无济于事。是否有删除所有文件权限?然后我可以添加我想要设置为当前用户的完全访问权限的个人权限,并删除“所有用户”或“经过身份验证的用户”的权限,这看起来因 Windows 版本而异。 http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol.aspx

最佳答案

我想通了..

    public void SetFileSecurity(String filePath, String domainName, String userName)
{
//get file info
FileInfo fi = new FileInfo(filePath);

//get security access
FileSecurity fs = fi.GetAccessControl();

//remove any inherited access
fs.SetAccessRuleProtection(true, false);

//get any special user access
AuthorizationRuleCollection rules = fs.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));

//remove any special access
foreach (FileSystemAccessRule rule in rules)
fs.RemoveAccessRule(rule);

//add current user with full control.
fs.AddAccessRule(new FileSystemAccessRule(domainName + "\\" + userName, FileSystemRights.FullControl, AccessControlType.Allow));

//add all other users delete only permissions.
fs.AddAccessRule(new FileSystemAccessRule("Authenticated Users", FileSystemRights.Delete, AccessControlType.Allow));

//flush security access.
File.SetAccessControl(filePath, fs);
}

关于c# - 删除所有默认文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com