当前位置: 首页 > 编程语言 > C#

如何将应用程序范围的设置设置为只读?分享

时间:2023-04-11 00:58:35 C#

如何将应用程序范围设置设为只读?如果不能更改默认值,它们有什么用?修辞问题。首先,绕过设置系统并直接写入应用程序范围的设置文件的最佳方法是什么(下一段中的安全问题)?XmlReader/XmlWriter?IIRC,如果应用程序试图写入其ProgramFiles文件夹,WindowsVista和7会采取一些措施来防止这种情况发生。我想我需要调用UAC进行升级,我必须在我的应用程序的“选项”窗口的“确定”按钮上添加那个花哨的盾牌图标,等等。链接到快速操作方法?或者,您可以告诉我我正在尝试做的事情很愚蠢,我应该将可变的应用程序范围的设置存储在别处。如果将它们更改为“用户”设置,则可以在代码中更改它们,当您调用Save()时,它们将保存到当前用户本地设置文件夹中的user.config文件中。显然,这意味着它们对于每个用户都可以不同。通常,不会在代码中修改对每个用户都相同的全局应用程序设置,因为一个用户所做的更改会影响其他所有人(因此应用程序设置是只读的)。如果您不希望它们在用户范围内,请查看ConfigurationManager类。这将允许您手动读取和写入.config文件。请记住,c:\programfiles文件夹是受保护的,普通用户将无法访问它(这会导致UAC提示或vista/win7失败)。仔细考虑如何处理它,并记住对app.config的任何更改都会影响所有用户。Windows中没有任何地方可以保证所有用户都具有写入权限。请参阅此处:在Windows窗体应用程序中保存应用程序设置的最佳实践ApplicationSettings类不支持将设置保存到app.config文件。这在很大程度上是设计使然,使用适当保护的用户帐户(想想VistaUAC)运行的应用程序没有对该程序的安装文件夹的写入权限。您可以对系统使用ConfigurationManager类。然而,简单的解决方法是进入设置设计器并将设置的范围更改为用户。如果这会造成困难(例如,设置取决于每个用户),您应该将“选项”功能放在单独的程序中,以便可以请求权限升级提示。或者放弃使用设置。一个老问题,但我提供这个答案是为了帮助任何试图实现SimonPStevens与ConfigurationManager类相关的答案的人,因为我不知道如何进行新手设置。一个初始实现是将我的C#项目中的2个设置文件(像属性中的典型文件一样硬,但为空)合并为一个.config并在不同的ConfigurationSections之间拆分。我认为这就是为什么ConfigurationManager.AppSettings和ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)一直返回0键的原因。经过大量的反复试验,才意识到大多数ConfigurationManager引用处理默认的appSettings,这与设置使用的applicationSettings不同。我最终找到了以下内容:选择正确的ConfigurationSectionGroup/ConfigurationSectionClient,转换为SettingsSection,获取设置,并设置XMLInnerText(如下所示)://这会获取applicationSettings部分(以及内部部分“inoBIBooks.My.MySettings”)配置config=WebConfigurationManager.OpenWebConfiguration("/"+targetvdir);ConfigurationSectionGroupapplicationSectionGroup=config.GetSectionGroup("applicationSettings");ConfigurationSectionapplicationConfigSection=applicationSectionGroup.Sections["inoBIBooks.My.MySettings"];;//为该特定属性设置一个值SettingElementapplicationSetting=clientSection.Settings.Get("BIDB_Username");applicationSetting.Value.ValueXml.InnerText="用户名";//没有这个,保存将不起作用applicationConfigSection.SectionInformation。强制保存=真;//保存config.Save();这来自:从安装程序访问配置文件中的“applicationSettings”部分(不是“appSettings")andsaveandreloadapp.config(applicationSettings)atruntime以上是C#学习教程:Howtomakeapplicationscopesettingsread-only?所有内容分享,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注,本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。转载请注明出处: