如何使用默认浏览器打开具有基本授权的URL?

时间:2014-04-30 06:16:11

标签: c# url authentication

我需要在C#程序中使用用户凭据打开一个URL。我试图像这样使用Winform WebBrowser

string user = "user";
string pass = "pass";
string authHdr = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(user + ":" + pass)) + "\r\n";
webBrowser1.Navigate("http://example.com/userProfile", null, null, authHdr);

它工作正常。但是,winform WebBrowser窗口不像IE,Fireworks,Chrome等浏览器那样用户友好。

所以我想知道有没有办法在默认浏览器中使用基本授权打开URL。寻找任何想法。感谢!!!

2 个答案:

答案 0 :(得分:0)

using (System.Diagnostics.Process process = new System.Diagnostics.Process())
{
    try
    {
        process.StartInfo.FileName = "explorer.exe";
        process.StartInfo.Arguments = "http://stackoverflow.com/";
        process.Start();
    }
    catch (System.Exception e)
    {
    }
}

你是说这个吗?

答案 1 :(得分:0)

我回答了类似的问题here on stackoverflow...

回顾: .Net中的WebBrowser控件使用Internet Explorer作为浏览器,所以如果您不介意使用IE,这就是我编写的代码。 h5url 是您要在窗口中打开的网址。我的程序甚至没有显示浏览器控件,这会产生一个Internet Explorer实例,其中登录的网页包含头部编码的凭据信息。 (用户/密码变量)

     using (WebBrowser WebBrowser1 = new WebBrowser())
            {
                String auth =
                    System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(_User + ":" + _Password));
                string headers = "Authorization: Basic " + auth + "\r\n";
                WebBrowser1.Navigate(h5URL, "_blank", null, headers);

            }

这将打开一个新的浏览器,其中包含您需要进行身份验证的任何标头,无论是基本还是其他。