当前位置: 首页 > 编程语言 > C#

文件夹权限:授予所有用户完全控制权限Share

时间:2023-04-10 21:45:10 C#

文件夹权限:授予所有用户完全控制权限我正在开发一个应用程序,它在CommonApplicationData文件夹中存储一些文件。我的应用程序必须修改这些文件。我设法创建了一个自定义操作,以授予对CommonApplicationData文件夹中我的应用程序文件夹的完全控制权限。但这并没有解决非管理员用户的问题。当我以用户身份登录并尝试修改其中一个文件时,我收到一条“拒绝访问”消息。我怎么解决这个问题?谢谢。这是我在自定义操作中使用的代码:publicvoidGetUsers(){SelectQuerysQuery=newSelectQuery("Win32_UserAccount","Domain='"+System.Environment.UserDomainName.ToString()+"'");尝试{ManagementObjectSearchermSearcher=newManagementObjectSearcher(sQuery);foreach(ManagementObjectmObjectinmSearcher.Get()){Permission(mObject["Name"].ToString());}}catch(Exceptionex){MessageBox.Show(ex.ToString());}}privatevoidPermission(stringuser){stringdirectory=Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);字符串CompanyFolderPath=Path.Combine(目录,“naseelco\lms2004”);DirectoryInfomyDirectoryInfo=newDirectoryInfo(CompanyFolderPath);目录安全myDirectorySecurity=myDirectoryInfo.GetAccessControl();stringUser=System.Environment.UserDomainName+"\"+用户;myDirectorySecurity.AddAccessRule(newFileSystemAccessRule(User,FileSystemRights.FullControl,AccessControlType.Allow));我的目录信息.SetAccessControl(我的目录安全);编辑:对于那些想知道这个问题的解决方案的人:不是授予对父文件夹的访问权限,而是使用上面的代码授予每个用户访问该文件夹中各个文件的权限权限方法已修改如下:私有voidPermission(stringuser){stringdirectory=Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);stringfilePath=Path.Combine(directory,"naseelco\lms2004\fms.txt");文件安全fSecurity=File.GetAccessControl(文件路径);FileSystemAccessRulerule=newFileSystemAccessRule(user,FileSystemRights.FullControl,AccessControlType.Allow);fSecurity.SetAccessRule(规则);File.SetAccessControl(文件路径,fSecurity);一个好的解决方案是使用xcacls.exe或任何其他ACL工具让每个人都完全控制。此工具可以作为自定义操作添加到安装项目中。不建议按用户授予权限,因为将来不会涵盖未来的帐户。此外,通过自定义代码执行此操作并不总是有效。Windows权限在通过代码控制时有点棘手。以上是C#学习教程:文件夹权限:授予所有用户完全控制权限,共享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: