这与其他用户提出的question几乎相同,是我之前询问的question的续集。
基本上,我公司最近买了Tidal Scheduler。我们需要从其他进程中临时启动作业,例如:BizTalk,.NET Web应用程序等。我们的计划是围绕C ++ API包装.net Web服务。这显然会消失version.next,所以我们试图围绕他们的命令行界面包装一个.net Web服务。
客户端需要Active Directory身份验证。使用以下几种方法进行模拟我们无法从.net Web服务成功调用CLI。从我在上面链接的问题中读到的内容,我们试图模仿具有比ASPNET帐户更多权限的用户,这会导致安全漏洞。
有更好的方法吗?有没有办法让它与我们已经走过的道路一起工作?任何帮助表示赞赏,我们已经陷入了很长时间。
旁注:我们确实使用PsExec实现了这一点,但是在这一点上它是如此巨大的黑客攻击(这是一个足够大的黑客攻击),我们非常不愿意使用这在我们的环境中。
答案 0 :(得分:3)
一种可能的方法是在应用程序池中运行Web服务,该应用程序池具有您需要模拟的用户凭据。 (这假设身份验证是尝试操作的结果,并且因为运行当前Web服务的帐户失败....如果它需要身份验证,即使以模拟用户身份运行,您也不幸。)
模拟用户需要是运行Web服务的框上的IIS_WPG组的成员。它可能还需要一些本地权限。只需确保您冒充的用户对盒子本身拥有非常有限的权利。
答案 1 :(得分:1)
也许您需要的是具有凭据的Windows服务。然后,您的Web服务可以调用您的WIndows服务来执行您想要执行的任何操作。 Windows服务是Visual Studio中的项目模板,MSDN上的文档非常简单。