Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# 从计算机上托管的ASP.Net页重新启动计算机_C#_Asp.net - Fatal编程技术网

C# 从计算机上托管的ASP.Net页重新启动计算机

C# 从计算机上托管的ASP.Net页重新启动计算机,c#,asp.net,C#,Asp.net,我有一台电脑,里面有各种各样的东西: 使用C和ASP.Net开发了一个网站 应用 我们的客户可以访问该网站,有时,他们会想重新启动计算机,因为他们知道在重新启动过程中会切断网站 我的问题很简单:它是否存在一种方式: 只需单击ASP.Net页面上的按钮即可重新启动计算机?我如何做到这一点? 同样,当单击ASP.Net页面上的按钮时,是否可以执行计算机上执行的某些批处理脚本? 谢谢你的帮助 只要密码存储安全,这是一种足够安全的方法 ProcessStartInfo startInfo = new P

我有一台电脑,里面有各种各样的东西:

使用C和ASP.Net开发了一个网站 应用 我们的客户可以访问该网站,有时,他们会想重新启动计算机,因为他们知道在重新启动过程中会切断网站

我的问题很简单:它是否存在一种方式:

只需单击ASP.Net页面上的按钮即可重新启动计算机?我如何做到这一点? 同样,当单击ASP.Net页面上的按钮时,是否可以执行计算机上执行的某些批处理脚本?
谢谢你的帮助

只要密码存储安全,这是一种足够安全的方法

ProcessStartInfo startInfo = new ProcessStartInfo("shutdown /r /f /t 5");
startInfo.UserName ="user with enough rights";
startInfo.Password ="password";
Process.Start(startInfo);

// /r - restart
// /f - force
// /t 5 - wait 5 seconds

只要密码被安全地存储,这种方法就足够安全了

ProcessStartInfo startInfo = new ProcessStartInfo("shutdown /r /f /t 5");
startInfo.UserName ="user with enough rights";
startInfo.Password ="password";
Process.Start(startInfo);

// /r - restart
// /f - force
// /t 5 - wait 5 seconds

您可以使用系统来完成它。进程名称空间,请查看以下链接了解完整进程


您可以使用系统来完成它。进程名称空间,请查看以下链接了解完整进程


这很容易实现,但问题是IIS是否允许。您还将开放漏洞利用,因为如果有人设法利用此漏洞,他们可能会重新启动您的服务器

如果您真的想继续并实现它,您可以简单地设置一个触发以下代码的Web服务调用

System.Diagnostics.Process.Start("shutdown.exe", "-r -t 0");

不过,这听起来更像是在寻找一种管理工具来处理这个问题。我建议您查看许多可用于帮助远程管理服务器的工具之一。对于安全性来说,管理软件具有授予用户特定权限的能力非常重要,例如限制他们只能重新启动服务器。

这很容易实现,但问题是IIS是否允许。您还将开放漏洞利用,因为如果有人设法利用此漏洞,他们可能会重新启动您的服务器

如果您真的想继续并实现它,您可以简单地设置一个触发以下代码的Web服务调用

System.Diagnostics.Process.Start("shutdown.exe", "-r -t 0");

不过,这听起来更像是在寻找一种管理工具来处理这个问题。我建议您查看许多可用于帮助远程管理服务器的工具之一。对于安全性来说,管理软件具有授予用户特定权限的能力非常重要,例如限制他们只能重新启动服务器。

您可以在命令行中从C执行shutdown-r命令,请参见问题如何执行。请注意,应用程序必须非常安全,并且在IIS下运行的应用程序必须具有足够的用户权限

编辑:
富士提出的方法运作良好,甚至不需要提升流程,我没想到它会起作用,哎哟

您可以在命令行中从C执行shutdown-r命令,请参见问题如何执行。请注意,应用程序必须非常安全,并且在IIS下运行的应用程序必须具有足够的用户权限

编辑:

富士提出的方法运作良好,甚至不需要提升流程,我没想到它会起作用,哎哟

我可以问你为什么需要重新启动计算机吗?@leppie他不需要-他的客户需要:-我可以问你为什么需要重新启动计算机吗?@leppie他不需要-他的客户需要:-是的,我知道它必须非常安全。。。这是一种特殊的计算机。。。很少有人能访问它…是的,我知道它必须非常安全。。。这是一种特殊的计算机。。。很少有人能接触到它…@leppie不,这是个坏主意,修正了example@leppie不,这是个坏主意,固定的例子我害怕有权利的问题。。。我甚至都没试过。。。我现在就试试,谢谢!我强烈建议您看看许多远程管理解决方案中的一个。这样你就不必自己处理所有的安全问题。事实上,这个网站已经包含了用户界面和安全性。我只允许管理员用户执行此任务。你有好的管理工具的例子吗?你确定它们需要重新启动整个电脑,而不仅仅是IIS吗?至于管理工具。我自己不使用Windows,但您可以尝试,或者您是对的,但您必须记住,您需要用户不仅输入其正常的网站管理员详细信息,还输入其Windows登录详细信息。这意味着要么他需要在网站上输入,要么你需要在本地存储。两者都会带来巨大的安全风险。我担心会有权利问题。。。我甚至都没试过。。。我现在就试试,谢谢!我强烈建议您看看许多远程管理解决方案中的一个。这样你就不必自己处理所有的安全问题。事实上,这个网站已经包含了用户界面和安全性。我只允许管理员用户执行此ta
sks。你有好的管理工具的例子吗?你确定它们需要重新启动整个电脑,而不仅仅是IIS吗?至于管理工具。我自己不使用Windows,但您可以尝试,或者您是对的,但您必须记住,您需要用户不仅输入其正常的网站管理员详细信息,还输入其Windows登录详细信息。这意味着要么他需要在网站上输入,要么你需要在本地存储。两者都会带来巨大的安全风险。看起来很有趣,我来看看!非常感谢。看起来很有趣,我来看看!非常感谢。