WPF使用凭据启动浏览器
我正在使用WPF和C#。
我希望能够启动一个浏览器窗口,很可能是IE,并提供已知的凭据,以便基于Windows的应用程序可以处理从自身到外部浏览器的转换,而无需用户再次输入他/她的凭据。
我知道如何启动浏览器:
System.Diagnostics.Process.Start(url);
我的主要问题是,我如何附加身份validation? 也许通过以某种方式添加标题?
最后,我真的不想在WPF中使用新的WebBrowser控件,因为它显示了透明窗口的当前问题。
1)你必须知道如何“登录”。 要在Web应用程序中手动登录,请使用http调试器(如Fiddler)跟踪http流量。 注意发送什么类型的http请求,具有参数的名称等等。一旦知道必须发送什么序列的http请求登录,就必须使用浏览器执行此操作。
2)自动实现登录2.1)如果通过http GET发生任何机会登录 – 只需将正确的查询字符串附加到URL并启动浏览器。 只有当您控制Web应用程序并构建此机制时,才会发生这种情况,其他明智的登录几乎总是以https的POST实现。
2.2)如果你必须做POST请求你有几个选择:2.2.1)你可以提供本地html文档,其中包含javascript并从javascript中调用登录表单的ajax。 要传递参数,可以使用get参数。
2.2.2)如果没有其他工作,你将不得不通过COM(WebBrowser控件)使用浏览器
这将取决于网站如何处理用户身份validation。 如果您拥有该网站,则可以创建一个将使用您提供的信息记录用户的URL。
缺口,
身份validation将以不同方式处理: –
- 代理身份validation由Windows手动处理。
- 基于表单的身份validation由cookie处理,因此用户需要提供cookie。
- Windows NTML可能位于操作系统的“钥匙串”中(请记住此密码)。
干杯,
菲尔。