gpt4 book ai didi

.net - 如何赋予程序比启动它的用户更多的权限

转载 作者:可可西里 更新时间:2023-11-01 10:38:39 25 4
gpt4 key购买 nike

我正在编写一个应用程序 (.Net) 来创建一些必须写入特殊文件夹的报告。
问题是:我的应用程序的用户应该对该文件夹具有读取权限,但不允许写入或更改任何内容。如果程序继承了用户的权限,如何在此文件夹中创建文件?

我对 Windows-Permissions 不是很确定,所以我不知道他们是否可以处理它。

有人能给我指出一个大概的方向吗?

最佳答案

显而易见的方法是创建一个对文件夹具有写入权限的服务,这样它就可以充当向文件夹写入请求的“代理”。您的流程将如下所示:

  1. [PROGRAM] 在临时文件路径中创建报告输出
  2. [PROGRAM] 通知 [SERVICE] 报告输出 X 在临时文件路径中可用
  3. [SERVICE] 将报告输出 X 从临时文件路径复制到适当的受限位置
  4. [SERVICE] 通知 [PROGRAM] 输出已被复制
  5. [程序] 从受限位置访问输出。

拥有一个单独的代理进程来调节对受限位置的访问现在非常普遍,并且是 Internet Explorer 采用的技术之一,除其他外,允许它在默认情况下使用 UAC 和受限文件系统访问。

您可以对您的代理服务进行编码,使其仅允许(即公开一个 API),例如,在受限位置创建新文件,从而防止历史输出被删除/覆盖,并消除向标准用户提供任何东西的需要除了对受限位置的读取权限。

另一种方法大致相似但不需要编写 Windows 服务,它是创建一个计划任务,该任务配置为在执行步骤 1 到 5 中的操作的“提升的用户”下运行,但是然后将其配置为允许应用程序按需(而不是按计划)执行(我认为这是可能的,但不是 100% 确定)。

关于.net - 如何赋予程序比启动它的用户更多的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11205356/

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