在运行模拟的.NET 3.5 Web应用程序中,我试图通过以下方式执行进程:
var process = new Process
{ StartInfo =
{ CreateNoWindow = true,
FileName = "someFileName",
Domain = "someDomain",
Username = "someUserName",
Password = securePassword,
UseShellExecute = false
}
};
process.Start();
Run Code Online (Sandbox Code Playgroud)
- 在web.config中将信任模式更改为完全没有修复.
- 注意var securePassword是在代码中先前设置的secureString.
这会抛出"Access is Denied"作为其消息的异常.如果我删除了用户名和密码信息,则异常消失,但该过程以aspnet_wp而不是我需要的用户开始.
我在多个论坛上看过这个问题,从未见过提供过的解决方案.有任何想法吗?
我在项目中遇到了与您相同的问题。应该有一种方法可以使用给定的凭据从您的 Web 应用程序中生成一个进程,但在实践中,这充其量只是一种拼凑。我最终所做的只是让应用程序将信息推送到 MSMQ,并让 Windows 服务弹出队列项目并为请求提供服务。
即使您的应用程序是模拟的,它仍然希望在 aspnet 用户帐户下运行。