【问题标题】:Deny access to documents outside application拒绝访问应用程序之外的文档
【发布时间】:2013-07-16 22:08:29
【问题描述】:

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

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

【问题讨论】:

    标签: c# access-control


    【解决方案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 进行密码保护和压缩

    【讨论】:

      【解决方案2】:

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

      这里有几篇值得一读的文章:

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

      【讨论】:

        猜你喜欢
        • 2020-06-03
        • 1970-01-01
        • 1970-01-01
        • 2016-06-04
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多