我正在编写一个应用程序(.Net)来创建一些必须写入特殊文件夹的报告。
问题是:我的应用程序的用户应该在这个文件夹中具有读取权限,但不允许写入或更改任何内容。如果程序继承了用户的权限,我如何在这个文件夹中创建文件?
我对 Windows 权限不是很坚定,所以我不知道他们是否可以处理。
有人可以指出我的大致方向吗?
我正在编写一个应用程序(.Net)来创建一些必须写入特殊文件夹的报告。
问题是:我的应用程序的用户应该在这个文件夹中具有读取权限,但不允许写入或更改任何内容。如果程序继承了用户的权限,我如何在这个文件夹中创建文件?
我对 Windows 权限不是很坚定,所以我不知道他们是否可以处理。
有人可以指出我的大致方向吗?
显而易见的方法是创建一个对文件夹具有写入权限的服务,因此它可以充当写入文件夹的请求的“代理”。您的流程将如下所示:
拥有一个单独的代理进程来调解对受限位置的访问现在非常普遍,并且是 Internet Explorer 采用的技术之一,除其他外,它允许它在默认情况下使用 UAC 和受限文件系统访问进行操作。
您可以对代理服务进行编码,使其仅允许(即公开 API),例如,在受限制的位置创建新文件,从而防止历史输出被删除/覆盖,并且无需向标准用户提供除读取之外的任何内容访问受限位置。
另一种方法大致相似,但无需编写 Windows 服务,将创建一个计划任务,该任务配置为在执行步骤 1 到 5 中的操作的“提升的用户”下运行,然后对其进行配置允许应用程序按需(而不是按计划)执行它(我认为这是可能的,但不是 100% 确定)。