使用.net安装程序的I/O权限设置

使用.net安装程序的I/O权限设置,.net,installation,active-directory,io,.net,Installation,Active Directory,Io,我正在创建一个将使用.net安装程序项目安装的程序。程序将设置文件写入程序文件目录中的目录。它认为,如果有限的用户正在运行程序,某些active directory设置将阻止应用程序恢复到该目录。是否可以通过安装更改应用程序文件夹的设置,这样就不会出现问题?您可以编写一个自定义安装程序类,该类可以更改文件夹的安全权限。这将假定安装是由有权更改文件/目录安全性的用户完成的 最好的选择是根本不写入程序文件下的目录。您可以编写一个自定义安装程序类,该类可以更改文件夹的安全权限。这将假定安装是由有权更改

我正在创建一个将使用.net安装程序项目安装的程序。程序将设置文件写入程序文件目录中的目录。它认为,如果有限的用户正在运行程序,某些active directory设置将阻止应用程序恢复到该目录。是否可以通过安装更改应用程序文件夹的设置,这样就不会出现问题?

您可以编写一个自定义安装程序类,该类可以更改文件夹的安全权限。这将假定安装是由有权更改文件/目录安全性的用户完成的


最好的选择是根本不写入程序文件下的目录。

您可以编写一个自定义安装程序类,该类可以更改文件夹的安全权限。这将假定安装是由有权更改文件/目录安全性的用户完成的


最好的选择是根本不写入程序文件下的目录。

写入程序文件文件夹是一个非常糟糕的主意,您应该假设此位置在安装后为“只读”

在程序文件中保存用户设置会导致问题如果两人以上同时使用计算机(如终端服务),则应保存谁的设置,是否希望其他用户知道“您的”设置?如果程序以用户A的身份将设置写入文件,但用户B无法编辑该文件,会发生什么情况?用户B可以访问该目录,但不能读取/删除首选项文件,因为它属于用户A

旧版win9x程序通常会写入program files文件夹,而Windows Vista实际上做了一些巧妙的操作来让这些程序工作。当你的程序写一个文件时,vista实际上会把它放在一个只有该用户才能访问的地方。对HKLM的注册表写入也是如此(或者我在数小时的调试后发现…),Server2008也做了同样的事情

如果需要保存用户设置,最好的选择是将设置保存到应用程序数据文件夹(环境变量%APPDATA%)

如果设置是系统范围的,则管理用户应在安装后或首次运行时设置这些设置,并且这些设置不应被有限的用户覆盖


所以,要回答你的问题——是的,有一种方法可以满足你的要求。但这是一个坏主意,它不安全,从长远来看可能会导致问题。

写入程序文件文件夹是一个非常坏的主意,您应该假设此位置在安装后是“只读”的

在程序文件中保存用户设置会导致问题如果两人以上同时使用计算机(如终端服务),则应保存谁的设置,是否希望其他用户知道“您的”设置?如果程序以用户A的身份将设置写入文件,但用户B无法编辑该文件,会发生什么情况?用户B可以访问该目录,但不能读取/删除首选项文件,因为它属于用户A

旧版win9x程序通常会写入program files文件夹,而Windows Vista实际上做了一些巧妙的操作来让这些程序工作。当你的程序写一个文件时,vista实际上会把它放在一个只有该用户才能访问的地方。对HKLM的注册表写入也是如此(或者我在数小时的调试后发现…),Server2008也做了同样的事情

如果需要保存用户设置,最好的选择是将设置保存到应用程序数据文件夹(环境变量%APPDATA%)

如果设置是系统范围的,则管理用户应在安装后或首次运行时设置这些设置,并且这些设置不应被有限的用户覆盖

所以,要回答你的问题——是的,有一种方法可以满足你的要求。但这是一个坏主意,它是不安全的,从长远来看可能会导致问题