如何在C#中移除“以管理员身份运行”的要求

8
我有一个程序,使用注册表来保存最近打开的10个文件。曾经我试图将它们保存在本地计算机上,但后来决定将它们保存在当前用户中。在让一切正常工作期间,我创建了一个强制程序以管理员身份运行的清单,但我认为现在不再需要。我的问题是,我似乎无法移除这个要求。
我已经... 1. 更改项目属性为“创建没有清单的应用程序” 2. 添加一个名为app.manifest的新项,默认为asInvoker,并将其属性更改为使用该清单。 3. 重命名任何带有单词manifest的文件。
但这些尝试都没有成功。程序仍然以管理员身份运行。我必须遗漏了什么,但我不确定是什么。
以下是app.manifest中的行:
  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="asInvoker" uiAccess="false" />
  </requestedPrivileges>

感谢您的帮助!Gary

1
从项目中删除清单文件。你显然做错了什么,不确定该建议什么,因为你提供的细节非常少。你尝试过简单地编辑当前文件和/或重新创建解决方案本身吗? - Security Hound
要不要来一段代码示例呢?如果你添加了什么,肯定可以删除它,除非你首先不理解你所添加的内容与C#代码/功能有关。 - MethodMan
2
我不确定您想要哪段代码的示例。正如我在原始问题中所述,我通过更改项目设置删除了项目中的清单,或者至少这是我的意图。 - Gary
类似的问题已经在这里提出过:(http://stackoverflow.com/questions/1850768/how-to-give-my-c-sharp-app-administrative-rights-manifest-file),请参考MSDN(http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/cb8af5c1-8b06-4d14-a1f3-ed0203354e0c)和MSDN论坛(http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/cb8af5c1-8b06-4d14-a1f3-ed0203354e0c)。 - Erhan A
你所提到的问题和我的问题并不相同。 - Gary
2个回答

12

查看属性文件夹中的app.manifest文件。删除以下行:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

请使用以下代码替换此行:

 <requestedExecutionLevel  level="asInvoker" uiAccess="false" />

如果这没有帮助,请首先确保您还从bin\Debug文件夹中删除了清单文件。仅从解决方案中删除它并不会有所帮助,因为该文件仍然可能在输出文件夹中可用。

这就是为什么我认为您不应该从项目中删除清单文件,而是将其更改为按预期工作的方式。


感谢您的回复!在Debug目录中没有清单文件。我更改了项目属性以使用app.mainfest(我更新了原始问题以包括相关行),并重新构建了项目,它仍然作为管理员运行。 - Gary
2
随着我在编码方面的不断前进,并根据你的建议操作后,我不再遇到问题了。自从添加了 app.maifest 以来,我已经编译了几次程序。前几次我都检查了要求是否还存在,结果发现确实没有了。我不知道这是什么时候改变的,但还是非常感谢! - Gary

4

虽然这个问题已经超过一年了,但我还是回答一下,因为它可能会帮助到你。

如果您已将应用程序配置为以管理员模式运行,现在想撤销这些权限,则需要执行以下步骤。

更改

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

To

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

右键点击您的项目-->清理解决方案-->重新构建您的解决方案,就这样。


1
你从哪里改变它?我的安装项目中没有App.config,也没有添加的可能性。我看到这个“答案”到处都是,但没有解释如何创建那个app.config/manifest。 - ExtremeSwat
为什么你不能加上一个?你正在做什么样的项目?是一个Win Forms应用程序吗? - Ehsan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接