gpt4 book ai didi

.net - 如何序列化 System.Security.AccessControl.FileSecurity?

转载 作者:可可西里 更新时间:2023-11-01 14:42:07 24 4
gpt4 key购买 nike

我正在为管理多种数据备份的内部软件开发小规模部署系统。部分任务是备份某些文件夹,我想备份应用于这些文件夹的 ACL,以便在恢复时文件仍能按预期工作。

制作一些代码的原型(prototype),我曾尝试使用 .NET 的内置 XmlSerializer,但无济于事。

示例代码如下:

public static byte[] SerializeFileACL(string path)
{
var acl = File.GetAccessControl(path, AccessControlSections.All);

using (var ms = new MemoryStream())
{
_fileSerializer.Serialize(ms, acl);
return ms.ToArray();
}
}

然而,无论我在什么文件上尝试,它都会返回相同的 143 字节。是否有使用 .NET 工具序列化 ACL 的好方法?我做错了什么?

P.S.:是的,我知道 ACL 可能不适用于其他计算机。这不是这个项目的问题。

最佳答案

您可以简单地调用NativeObjectSecurity.Persist 方法as described on MSDN序列化这个对象。正如有人提到的,该对象不包含 SerializableAttribute,因此您无法以友好的方式序列化对象图。

关于.net - 如何序列化 System.Security.AccessControl.FileSecurity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274306/

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