【问题标题】:WPF Launch Browser with Credentials带有凭据的 WPF 启动浏览器
【发布时间】:2010-11-17 06:03:47
【问题描述】:

我正在使用 WPF 和 C#。

我希望能够启动一个浏览器窗口,最有可能是 IE,并提供已知凭据,以便基于 Windows 的应用程序可以处理从自身到外部浏览器的转换,而无需用户再次输入他/她的凭据。

我知道如何启动浏览器:

System.Diagnostics.Process.Start(url);

我的主要问题是,如何附加身份验证?也许通过以某种方式添加标题?

最后,我真的不想在 WPF 中使用新的 WebBrowser 控件,因为它目前在使用透明窗口显示时存在问题。

【问题讨论】:

    标签: c# wpf browser


    【解决方案1】:

    1) 你必须知道如何“登录”。 要在 Web 应用程序中手动登录并使用 Fiddler 等 http 调试器跟踪 http 流量。注意发送什么样的http请求,有什么名字有参数等。 一旦您知道必须发送什么样的 http 请求序列才能登录,您就必须使用浏览器执行此操作。

    2) 实现自动登录 2.1) 如果有任何机会通过 http GET 登录 - 只需将正确的查询字符串附加到 url 并启动浏览器。仅当您控制 Web 应用程序并构建此机制时才会发生这种情况,否则登录几乎总是使用 https 的 POST 实现。

    2.2) 如果你必须做 POST 请求,你有几个选择: 2.2.1)您可以提供本地 html 文档,其中包含 javascript 并从 javascript 对登录表单进行 ajax 调用。要传递参数,您可以使用获取参数。

    2.2.2) 如果没有其他方法,您将不得不通过 COM(WebBrowser 控件)使用浏览器

    【讨论】:

    • 你有一个偶然的例子吗?身份验证机制是基本的。它与使用 C# 类 HttpWebRequest.Credentials 具有相同的安全性。
    • 像这样构建网址:http_//user:pass@yoursite.com
    【解决方案2】:

    这将取决于网站如何处理用户身份验证。如果您拥有该网站,则可以创建一个 URL,该 URL 将使用您提供的信息让用户登录。

    【讨论】:

      【解决方案3】:

      尼克,

      身份验证将以不同的方式处理:-

      1. 代理身份验证由 Windows 手动处理。
      2. 基于表单的身份验证由 cookie 处理,因此用户需要存在 cookie。
      3. Windows NTML 可能位于操作系统的“钥匙串”中(记住此密码)。

      干杯,

      菲尔。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-24
        • 2018-12-04
        • 2017-08-29
        • 1970-01-01
        相关资源
        最近更新 更多