我遇到一个问题,我需要我的用户能够在没有管理员权限的情况下运行我的应用程序,但同时,我需要NLog能够创建它的日志文件,它需要管理员权限才能创建它们位于安装应用程序的同一文件夹中。
我正在尝试在名为Logs
的应用程序目录下创建一个目录,并使用inno setup授予everyone-modify
权限。我将设置我的NLog配置来写入这个新的Logs文件夹而不是应用程序目录,因此即使应用程序由非管理员运行,NLog也有足够的权限来创建日志。
我的问题是,这是正确的方法吗?我对NLog或InnoSetup不是很熟悉,所以我不确定是否有遗漏的东西,或者这是否会产生安全问题?
我的NLog配置部分设置如此
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="el" xsi:type="EventLog" log="ASI" layout="${message} ${exception:innerFormat=tostring:maxInnerExceptionLevel=10:format=tostring}" />
<target name="fl" xsi:type="File" fileName="Logs\iDocClientLog.log" layout="${date}: ${message} ${exception:innerFormat=tostring:maxInnerExceptionLevel=10:format=tostring}" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="el,fl" />
</rules>
</nlog>
我的InnoSetup安装程序脚本Dirs
部分就像这样
[Dirs]
Name: "{app}\Logs"; Permissions: everyone-modify