nik*_*3ro 4 c# asp.net security iis
是否可以从LocalSystem或LocalService帐户托管的ASP.NET应用程序重新启动服务器?当我创建自定义管理帐户并将AppPool放在该帐户下运行时,这是有效的:
Process.Start("shutdown", "/r /d 4:1 /t 10");
Run Code Online (Sandbox Code Playgroud)
但是,我不想拥有自定义帐户(因为密码过期,并且需要在更改用户密码时更新所有AppPools - 我需要维护多个服务器).
那么,这可能吗?
您始终可以使用可以重新启动服务器的其他标识启动该进程:
var info = new ProcessStartInfo("shutdown.exe", "/r /t 0");
info.UserName = "accountWithAdminPermissions";
//A not-so-secure use of SecureString
var secureString = new SecureString();
var password = "abc123";
foreach (var letter in password)
{
secureString.AppendChar(letter);
}
info.Password = secureString;
var restart = new Process();
restart.StartInfo = info;
restart.Start();
Run Code Online (Sandbox Code Playgroud)
如果您只想为非管理员帐户授予重新启动服务器的权限:
secpol.msc.Shutdown The System.这可能是使用帐户获得最低权限的好方法.这样你就不必像管理员组中的帐户那样使用真正的大锤.
Shutdown.exe(我相信)始终需要管理员权限.在没有shutdown.exe的情况下重启服务器时,可以参考此MSDN帖子.
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |