Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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# 如何授予IIS AppPool桌面权限_C#_Security_Iis 7.5 - Fatal编程技术网

C# 如何授予IIS AppPool桌面权限

C# 如何授予IIS AppPool桌面权限,c#,security,iis-7.5,C#,Security,Iis 7.5,我需要帮助的操作是从内部网网页在自己的服务器磁盘上执行EXE文件,IIS在同一服务器上安装。该网页使用业务层与给定参数一起执行ProcessStart 当我从web执行执行时,taskmanager向我显示应用程序正在以web页面的IIS AppPool作为用户启动。几秒钟后它就死了。在我的数据库日志中,我可以看到 Microsoft Jet数据库引擎无法打开文件“\\computer\pathfile.ext”。它已被其他用户以独占方式打开,或者您需要查看其数据的权限。 没错。EXE工具依次从

我需要帮助的操作是从内部网网页在自己的服务器磁盘上执行EXE文件,IIS在同一服务器上安装。该网页使用业务层与给定参数一起执行ProcessStart

当我从web执行执行时,taskmanager向我显示应用程序正在以web页面的IIS AppPool作为用户启动。几秒钟后它就死了。在我的数据库日志中,我可以看到

Microsoft Jet数据库引擎无法打开文件“\\computer\pathfile.ext”。它已被其他用户以独占方式打开,或者您需要查看其数据的权限。

没错。EXE工具依次从其他计算机加载文件。这是一种特殊的行为,在使用桌面工具时得到了很好的研究和使用

我的目标/问题,
我希望此web函数调用具有桌面权限。有可能吗


IIS应用池具有帐户ApplicationPoolIdentity的常规设置。我似乎是“幸运的不明智”,不知道IIS 7.5和Windows Server 2008 R2提高了多少安全模型,因为我看到您尝试为进程开始模拟输入特定的用户名和密码,但是您说该进程访问另一台计算机上的文件,我没有看到任何关于指定域名的内容,您可能需要指定域名才能访问远程文件?
所以像这样:

info.Domain = "domainname";
info.UserName = "dummyUsEr";
info.Password = "DummyPWd";

另外,这个.SecurePwd()有什么作用?您是否仅使用传递给它的直接密码字符串进行了尝试?

如果您以服务器管理员的身份运行IIS,您可以从web app运行该进程,但是错误消息表明“\\computer\pathfile.ext”被另一个进程锁定,这可能会导致进程失败。@Max,谢谢。不过,您忘了键入另一部分,上面写着“或者您需要查看其数据的权限”。我还要重复一遍——这是一个经过充分研究和完善的桌面应用程序。如果我不理解您对IIS权限的理解,那么作为管理员运行整个IIS是不现实的。这台计算机上还有其他Web应用程序和其他应用程序池。为了证明这个场景,我刚刚部署了一个简单的WPF GUI,它继承了相同的业务逻辑。添加了几个按钮并从控制台运行。塔达。如果这个权利能从IIS隔离中获得,那该多好啊..谢谢。没错。我不确定如何使用这个域,因为这些计算机没有特定的域。它们是仅共享C网络(192.168.2.xx)的独立windows计算机。有些是Windows XP、Windows 7等。
this.SecurePwd()
只是一个转换器,因为该方法需要特定的字符转换。但是,密码不是问题(?),因为如果是这样,应用程序将根本无法启动。请阅读一些ProcessStartInfo的功能和工作原理,因为您无法将字符串附加到密码中。那么您指定的用户是否确实有权访问错误消息中提到的特定文件夹/文件?如果您试图手动访问该文件,是否会提示您输入登录详细信息?这是正确的。该用户有权从桌面运行应用程序并成功访问文件。经过良好的测试、记录和使用。将文件夹映射为驱动器是否是一个选项,甚至只是为了测试它,看看它是否有所不同?
protected System.Security.SecureString SecurePwd(string pwd)
{
    SecureString securePwd = new SecureString();

    foreach (char ch in pwd.ToCharArray())
        securePwd.AppendChar(ch);

    return securePwd;
}
info.Domain = "domainname";
info.UserName = "dummyUsEr";
info.Password = "DummyPWd";