繁体   English   中英

如何给程序一个比启动它的用户更多的权限

[英]How to give a Program more permissions, than the user starting it

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

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

有人可以指出我的一般方向吗?

一种明显的方法是创建一个对文件夹具有写权限的服务,因此它可以充当“代理”,以请求将其写入该文件夹。 您的过程将如下所示:

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

如今,拥有一个单独的代理程序来调解对受限制位置的访问已经很普遍,并且是Internet Explorer等应用的技术之一,以使其默认情况下可与UAC和受限制的文件系统访问一起使用。

您可以对经纪人服务进行编码,使其仅允许(即公开API),例如,在限制的位置创建新文件,从而防止历史输出被删除/覆盖,并消除了向标准用户提供除读取内容外的任何其他需求访问受限位置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM