我在互联网上搜索了这个问题,但没有找到确切的答案。 我的应用程序有一个功能,可以将文件夹(比如说pqr)中的文件复制到用户想要的位置。源文件夹的位置是安装应用程序的位置(比如说c:\Program Files\abc\pqr)。 当用户以'管理员权限'登录到机器上时,用户可以使用此功能。但是当用户以'用户权限'(非管理员用户)登录到机器上时,此功能会抛出异常,提示无法访问c:\Program Files\abc\pqr文件夹。 我尝试使用以下属性提升用户权限来复制方法:
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
我也尝试添加以下更改的清单文件:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
但是这些尝试都没有奏效。
然后我把我的应用程序安装在D盘上。在这之后,当我以非管理员用户身份尝试时,功能按预期工作。
因此,当应用程序安装在C:\Program Files中时,非管理员用户无法正常工作。但是,在将应用程序安装到其他位置后,非管理员用户可以正常工作。
所以我的问题是,是否可能在应用程序中以编程方式授予非管理员用户对C:\Program Files的权限,或者我们需要使用管理员用户才能使用此功能?