使用.net安装程序的I / O权限设置
时间:2020-03-05 18:41:15 来源:igfitidea点击:
我正在创建一个程序,该程序将使用.net安装程序项目进行安装。该程序将设置文件写入Program Files目录中的目录。它认为,如果受限用户正在运行该程序,则存在一些活动目录设置,这些设置将阻止应用程序访问该目录。是否可以通过安装更改应用程序文件夹的设置,所以这不会有问题吗?
解决方案
回答
我们可以编写一个自定义安装程序类,该类可以更改文件夹的安全权限。这将假定安装是由有权更改文件/目录安全性的用户完成的。
最好的选择是根本不写程序文件下的目录。
回答
写入Program Files文件夹是一个非常糟糕的主意,我们应该假定安装后此位置为"只读"。
如果两个以上的人同时使用计算机(例如,终端服务)来保存设置,则将用户设置保存在程序文件中会导致问题,我们是否希望其他用户知道""设置?如果程序以用户A的身份将设置写入文件,但用户B无法编辑文件,会发生什么情况?用户B可能有权访问目录,但无法读取/删除该首选项文件,因为该文件由用户A拥有。
传统的win9x程序通常会写入程序文件文件夹,而Windows Vista实际上确实做了一些巧妙的技巧来使这些程序正常工作。当程序写入文件时,vista实际上将其放置在该用户只能访问的其他位置。对于注册表写入HKLM的操作是相同的(或者,经过数小时的调试后,我发现...),Server 2008则执行相同的操作。
如果我们需要保存用户设置,最好的选择是将设置保存到"应用程序数据"文件夹(环境变量%APPDATA%)
如果设置是系统范围的,则管理用户应在安装后或者首次运行时进行设置,并且受限用户不能覆盖它们。
因此,要回答问题,是的,有一种方法可以解决我们所提出的问题。但这是一个坏主意,它不安全,从长远来看可能会引起问题。