2

我有一个 ASP.NET 应用程序,除其他外,它正在抓取另一个网站。我在 STA 线程中使用无头 System.Windows.Forms.WebBrowser 控件,使用 Navigate(),处理 DocumentCompleted 事件,yada,yada。WebBrowser 控件导航到远程站点的登录页面(它使用 javascript 来处理 DOM,因此需要 WebBrowser)。我设置了 UserID 和 Password 字段,然后调用 WebBrowser.Document.All["submit"].InvokeMethod("click")。

在我运行 Windows 7 和 IIS 7.5 的开发盒上,这表现如预期。下一次 DocumentCompleted 触发时,很明显我已经成功登录并且我很聪明地处理我的业务。然而,在我的 Rackspace 生产服务器上,运行“没有 Hyper-V 的 Windows Server 2008 Enterprise”和 IIS 7.0,它失败了:在那个盒子上,下一次 DocumentCompleted 被触发时,我会发现我收到了远程站点的“你”已注销。” 页。

我尝试将远程站点添加到受信任的站点列表,并为管理员和用户禁用 IE ESC,但无济于事。

通过在我已将其身份设置为管理员的特殊应用程序池中运行此应用程序,我终于设法实现了所需的行为——我在开发环境中看到的行为。但我不想就这样离开它。

什么是最小特权身份,或在应用程序池上足以允许此无头 STA WebBrowser 正确浏览此依赖于 javascript 的远程站点的最小权限集?

4

0 回答 0