访问应用程序的共享文件夹,但不能访问用户

问题描述 投票:-2回答:1

我有一个应用程序(在纯Windows环境中)需要存储敏感数据,以便具有相同应用程序的其他工作站可以访问该数据。目前,使用具有SMB网络共享和加密文件的中央服务器完成。使用我们的应用程序的所有(windows)用户必须具有对一个中央共享文件夹的读/写访问权限,这样就可以存储和交换数据。

此配置有一个很大的缺点:不仅应用程序而且我们应用程序的所有用户都可以完全访问该共享文件夹。

好吧,他们无法读取敏感数据,因为它是加密的,但是 - 考虑到一些犯罪能量或愚蠢 - 他们只需打开一个Windows资源管理器,导航到该共享文件夹并删除那里的文件。

我试过但没有设法只为我的应用程序打开SMB共享 - 只要我的应用程序在那里进行身份验证,当前的Windows用户也可以访问。

(我尝试使用WNetAddConnection2,但是一旦身份验证发生,连接也会为所有其他程序打开。如果我没有将SMB文件夹映射到驱动器盘符,我甚至无法再次断开驱动器)

是否有可能只验证进程或线程而不是当前用户访问网络共享?

或者有SMB股票的高效替代品吗?一个数据记录的大小在100到900 MB之间。因此,我需要支持随机访问读/写文件。

使用SFTP并在打开时将整个数据泵送到工作站,并且在关闭时不能再将所有数据发送回工作站。这会对网络造成压力,如果应用程序崩溃,所有更改都会丢失,而在使用“正常”访问时,只会丢失网络缓存中的数据。

有什么建议?

windows delphi network-programming smb shared-directory
1个回答
2
投票

是否有可能只验证进程或线程而不是当前用户访问网络共享?

不,Windows的安全模型基于用户,而不是应用程序。要基于每个进程应用权限,您必须以给定用户身份运行应用程序。要在每个线程的基础上应用权限,您必须在执行工作之前模拟给定用户,然后在完成时还原模拟。

© www.soinside.com 2019 - 2024. All rights reserved.