我正在 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();
如何使用当前用户的凭据运行它?