Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#中,使方法以管理员模式运行的最佳方法是什么?_C#_Methods_Admin - Fatal编程技术网

在c#中,使方法以管理员模式运行的最佳方法是什么?

在c#中,使方法以管理员模式运行的最佳方法是什么?,c#,methods,admin,C#,Methods,Admin,我有一个经常使用文件系统的程序,需要以管理员身份运行某些方法。我不能让应用程序以管理员身份自行运行,因为我需要在表单上使用拖放。我想有一种方法不能用管理员权限执行。我真的不想为一个方法生成另一个可执行文件。如果我制作了另一个可执行文件,那么通过应用程序传递多个参数并重定向输出的最佳方式是什么?我希望我的措辞是正确的,并且清楚地表明了我的意思。您唯一的选择是: 以管理员身份运行整个程序 当用户想要执行管理功能时,以管理员身份重新启动您的程序 重新思考您的设计方法,这样您的方法就不再需要管理了 使用

我有一个经常使用文件系统的程序,需要以管理员身份运行某些方法。我不能让应用程序以管理员身份自行运行,因为我需要在表单上使用拖放。我想有一种方法不能用管理员权限执行。我真的不想为一个方法生成另一个可执行文件。如果我制作了另一个可执行文件,那么通过应用程序传递多个参数并重定向输出的最佳方式是什么?我希望我的措辞是正确的,并且清楚地表明了我的意思。

您唯一的选择是:

  • 以管理员身份运行整个程序
  • 当用户想要执行管理功能时,以管理员身份重新启动您的程序
  • 重新思考您的设计方法,这样您的方法就不再需要管理了
  • 使用某种形式的应用程序来启动第二个提升的应用程序,并为您执行请求
  • 对于IPC路由,我所知道的最简单的方法是使用,您只需像对待代码中的任何其他类一样对待WCF通信,并通过正常函数进行通信。

    您唯一的选择是:

  • 以管理员身份运行整个程序
  • 当用户想要执行管理功能时,以管理员身份重新启动您的程序
  • 重新思考您的设计方法,这样您的方法就不再需要管理了
  • 使用某种形式的应用程序来启动第二个提升的应用程序,并为您执行请求

  • 对于IPC路由,我所知道的最简单的方法是使用,您只需像对待代码中的任何其他类一样对待WCF通信,并通过正常函数进行通信。

    您不能以管理员身份运行单个方法。但是,您可以在方法开始时模拟具有管理员权限的用户,以其他用户的身份执行一些代码,然后返回到原始用户

    以下问题的公认答案列出了一些选项:



    在对上述链接问题的回答中,Matt Johnson还展示了一些代码,这些代码可以轻松完成,他显然也将其作为DLL发布到GitHub,您可以在那里下载并使用它。

    您不能作为管理员运行一个方法。但是,您可以在方法开始时模拟具有管理员权限的用户,以其他用户的身份执行一些代码,然后返回到原始用户

    以下问题的公认答案列出了一些选项:



    在对上述链接问题的回答中,Matt Johnson还展示了一些代码,这些代码可以轻松完成,他显然也将其作为DLL发布到GitHub,您可以在那里下载并使用它。

    如果我理解正确,您需要在提升模式下启动程序。 最简单的方法是在应用程序清单文件中将其指定为需求

    要向应用程序添加清单,您可以执行以下步骤:

  • 右键单击您的项目
  • 添加->新项目->应用程序清单文件
  • 在新的.manifest文件中,将
    替换为
  • 通过转到以下位置,确保应用程序配置为与新清单一起运行: 右键单击项目->属性->应用程序选项卡->清单

  • 您可以阅读有关应用程序清单的更多信息。

    如果我理解正确,您需要在提升模式下启动程序。 最简单的方法是在应用程序清单文件中将其指定为需求

    要向应用程序添加清单,您可以执行以下步骤:

  • 右键单击您的项目
  • 添加->新项目->应用程序清单文件
  • 在新的.manifest文件中,将
    替换为
  • 通过转到以下位置,确保应用程序配置为与新清单一起运行: 右键单击项目->属性->应用程序选项卡->清单

  • 您可以阅读有关应用程序清单的更多信息。

    以管理员身份运行如何影响表单上的拖放?从Windows Vista开始,由于用户界面权限隔离,您无法将以较低完整性级别运行的应用程序拖放到以较高级别运行的应用程序。有关更多详细信息,请参阅本文:为什么在提升应用程序运行时拖放不起作用?据我所知,您无法提升某些方法或代码区域。要么是整个过程,要么什么都没有。以管理员身份运行对表单的拖放有何影响?从Windows Vista开始,由于用户界面权限隔离,您无法将以较低完整性级别运行的应用程序拖放到以较高完整性级别运行的应用程序。有关更多详细信息,请参阅本文:为什么在提升应用程序运行时拖放不起作用?据我所知,您无法提升某些方法或代码区域。要么是整个过程要么什么都没有。我应该提到我正在使用WinForms,我认为我现在最好的选择是制作另一个可执行文件并重定向标准输入/输出。但是,这属于#4。我应该提到我正在使用WinForms,我认为我现在最好的选择是制作另一个可执行文件并重定向标准输入/输出。但是,这属于#4。我知道这一点,关键是我不想提升整个应用程序,只是提升一些方法。好的,在这种情况下,模拟是你的朋友。这个建议已经有了答案-我想你应该去看看。我知道这一点,关键是我不想提升整个应用程序,只想提升一些方法。好吧,在这种情况下,模拟是你的朋友。这个建议已经有了答案-我想你应该看看。谢谢,我会看看的!谢谢,我去看看!