我正在ASP.NET中创建基于MVC3的Intranet应用程序。应用程序非常简单:
- 要求输入(用户名)
- 使用提供的用户名(从远程数据库获取一些数据)运行PowerShell脚本
- 管道脚本输出到HTML文件
- 重定向到创建的HTML文件
出于安全原因,我正在使用Windows身份验证,仅对指定的用户组进行访问。这适用于应用程序本身 - 我可以在角落看到当前的用户名,而不是指定的用户没有访问权限
问题是PS脚本本身。它似乎不适用于用户的凭据,因此我在脚本中添加了whoami
行并得到了结果:iis apppool\asp.net v4.0
。
这是我用来运行PS脚本的代码:
var ps = PowerShell.Create();
ps.Commands.AddScript(@"CommandHere");
ps.Invoke();
如何使用当前用户的凭据运行它?