拒绝访问应用程序外的文档

时间:2013-07-18 05:38:29

标签: c# access-control

我正在开发一个应用程序,它保存文档存储库并提供搜索。我想阻止用户在应用程序外查看/添加/修改/删除文档。目前,我将文档存储在Windows中的普通文件夹结构中,任何授权的Windows用户都可以轻松访问。我正在寻找一些方法,我可以确保,除了我的应用程序可以访问这些文档。

是否有可用的库或技术,我可以使用它从Windows用户隐藏这些文件,但我的应用程序可以正常使用它?

2 个答案:

答案 0 :(得分:1)

如果您必须在Windows中保存文档并想要限制用户,请尝试以加密形式保存它们,并可能使用密码。因此,即使有人可以访问它,对他来说也变得毫无用处。某些like这应该适用于加密

 using (var fileStream = File.OpenWrite(theFileName))
 using (var memoryStream = new MemoryStream())
 {
// Serialize to memory instead of to file
var formatter = new BinaryFormatter();
formatter.Serialize(memoryStream, customer);

// This resets the memory stream position for the following read operation
memoryStream.Seek(0, SeekOrigin.Begin);

// Get the bytes
var bytes = new byte[memoryStream.Length];
memoryStream.Read(bytes, 0, (int)memoryStream.Length);


var encryptedBytes = yourCrypto.Encrypt(bytes);
fileStream.Write(encryptedBytes, 0, encryptedBytes.Length);
}

您可以使用此library进行密码保护和压缩

答案 1 :(得分:0)

如果您使用的是Windows Server 2012,则可以使用Windows Server 2012动态访问控制,该控制带来了两项称为SDDL(安全描述符定义语言)和DACL(动态访问控制)的功能。

以下是一些值得一读的文章:

通过动态访问控制,您可以根据分类和用户声明定义哪些用户查看/编辑哪些文件和文件夹。