创buildXML文件,赋予所有Windows帐户用户以写权限

创buildXML文件,赋予所有Windows帐户用户以写权限,第1张

概述创buildXML文件,赋予所有Windows帐户用户以写权限

我正在使用C#在通用应用程序文件夹中创build一个XML文件:

%ALLUSERSPROfile%Application Data

文件将在安装应用程序时创build。 这个文件对本地机器的所有用户来说都是通用的(即它包含一些设置信息)

但是我的问题是,当文件是由pipe理员用户创build(即应用程序由pipe理员用户安装)其他用户没有写入权限的文件。 当我检查文件的属性时,它只给出了“读取和执行”给其他用户。

我正在使用下面的代码来保存文件

如何打开windows证书查看器(不是pipe理器)

在windows文件系统中,每个文件都有一个预先计算的哈希值?

严格的多个.NET进程的负载平衡

从dynamic数组中find唯一的整数和

与崩溃转储相比,WinDbg在附加到进程时显示不同的调用堆栈

Xdocument.Save(filePath);

是否有可能创build文件给所有用户的写入权限? 任何帮助非常感谢!

PowerShell 3:每个命令执行结果在“types初始值设定项抛出一个exception”错误

如何在按下电源button一段时间后拒绝关机?

从windows服务安全地存储数据的位置?

C#/ VB.NET中的缩略图

运行在linux上的.Net

我不认为你可以传递一个参数到Xdocument.Save控制权限,但你应该能够在保存后设置它们。 像下面的东西应该做的:

System.Security.AccessControl.fileSecurity fsec = System.IO.file.GetAccessControl(filename); fsec.AddAccessRule( new System.Security.AccessControl.fileSystemAccessRule("Everyone",System.Security.AccessControl.fileSystemRights.Modify,System.Security.AccessControl.AccessControlType.Allow)); System.IO.file.SetAccessControl(filename,fsec);

您不能将有关ACL的信息传递到Xdocument.Save方法,但可以在保存xml文档后修改文件的权限。 您可以使用下面的代码来执行它(不要忘记添加对System.Security.dll的引用):

using System.Security.AccessControl; using System.Security.Principal; using System.IO; public class fileAccessRulesHelper { public voID AdDWriteRightsToEveryone(string filename) { // get sID of everyone group SecurityIDentifIEr sID = new SecurityIDentifIEr(WellKNownSIDType.WorldSID,null); // create rule fileSystemAccessRule rule = new fileSystemAccessRule(sID,fileSystemRights.Write,AccessControlType.Allow); // get ACL of file fileSecurity fsecurity = file.GetAccessControl(filename); // modify ACL of file fsecurity.AddAccessRule(rule); // apply modifIEd ACL to file file.SetAccessControl(filename,fsecurity); } }

我有一个服务安装类似的问题。 您可以使用下面的代码给一个文件夹不同的权限。

public static voID CreateWithFullAccess(string targetDirectory) { try { if (!Directory.Exists(targetDirectory)) { Directory.CreateDirectory(targetDirectory); } DirectoryInfo info = new DirectoryInfo(targetDirectory); SecurityIDentifIEr allUseRSSID = new SecurityIDentifIEr(WellKNownSIDType.LocalServiceSID,null); DirectorySecurity security = info.GetAccessControl(); security.AddAccessRule( new fileSystemAccessRule(allUseRSSID,fileSystemRights.FullControl,AccessControlType.Allow)); info.SetAccessControl(security); } catch (Exception ex) { System.windows.Forms.MessageBox.Show(ex.ToString()); } }

总结

以上是内存溢出为你收集整理的创buildXML文件,赋予所有Windows帐户用户以写权限全部内容,希望文章能够帮你解决创buildXML文件,赋予所有Windows帐户用户以写权限所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1282229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存