【问题标题】:How to run two WebBrowser instances on the same PC with different users如何在不同用户的同一台 PC 上运行两个 WebBrowser 实例
【发布时间】:2010-04-12 18:34:20
【问题描述】:

我在 WinForms 应用程序中使用WebBrowser 控件。我想编写可以为某些用户输入登录名和密码并测试某些功能的程序。 当我运行一个应用程序实例时它工作正常,但是当我尝试使用不同的用户运行两个应用程序副本时我遇到了问题 - 两个实例都在使用同一个用户并且不可能用不同的用户登录。例如,我想在一个应用程序中以 User1 身份登录到同一个网站,在另一个应用程序实例中以 User2 身份登录并执行测试。

如何实现程序以允许具有 WebBrowser Control 的两个不同应用程序实例与不同的用户一起工作?据我了解,我必须以某种方式隔离 cookie,以便不同的应用程序实例使用它们自己的会话。

【问题讨论】:

  • 你有没有成功解决过这个问题?您还需要这方面的帮助吗?
  • 感谢关注!我没能完成它,因为需求改变了,这个任务被搁置了。再次感谢您的热心帮助!

标签: c# .net winforms webbrowser-control


【解决方案1】:

你明白为什么会这样吗?您不能真正“隔离两个 cookie”,但您可以重做应用程序以使用某种会话密钥和 POST 值。它使用 IE 设置创建一个 cookie,所以它把 cookie 放在默认位置。

我想您可以覆盖该功能,但您可能必须覆盖 WebBrowser。

【讨论】:

  • 感谢您的建议,您知道我在哪里可以阅读有关会话密钥的信息,因为我对 cookie 不是很熟悉。任何想法如何做到这一点都非常有用。
  • 嗯,cookie 是网络编程的基础,它们并不是真正的“附加组件”...这里有两个资源:w3schools.com/asp/asp_cookies.aspen.wikipedia.org/wiki/HTTP_cookie 但我不知道那些会帮助你。我猜你不明白问题是什么。因此,这并不是帮助您的最佳方式。当地有没有人可以要求帮助您解决这个问题?我不介意带你过去,但我相信白板或其他东西会更方便解释......
  • 在您的 Internet 设置中关闭“使用 NT 凭据自动登录”。这应该会在两个 browserControls 浏览到您的服务器位置时弹出“登录”对话框。这应该让您进入“多安全上下文”模式并让您开始。
  • @Marvin,不,我认为它不会起作用,因为这不是正在发生的事情。他正在启动两个会话,而不是要求他设置第二个用户。它正在使用第一个用户的存储 cookie。 ~~ 此外,该配置仅适用于 Intranet 站点。因此,如果发现这是问题所在,那么它可能会成为部署问题。此设置是 IE 的默认设置。
  • 感谢您提供的链接,据我所知到目前为止 - Cookie 就像一个简单的键/值对,IE 对任何 WebBrowser 实例的给定网站使用相同的对。我看到 WebBrowser 具有 Cookies 的属性,所以这提供了最简单的想法(不确定它是否会工作) - 只需更改第二个 WebBrowser 实例的 Cookies 以使用第二个用户的登录名/密码。但我不确定这是否可能。顺便提一句。我会四处询问在 WinForms WebBrowser 和 cookie 方面有良好经验的人,但我不确定我会找到某人:)
【解决方案2】:

我认为这不是您的应用程序的问题,而是网站运行方式的问题。创建 cookie 是浏览器和网站的功能,而不是您的客户端应用程序。你有能力更改网站代码吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多