如何在Web浏览器(例如IE)中打开URL并传递凭据

Eri*_*pir 16 .net c# .net-4.0

我想打开一个需要基本身份验证的页面.我想将基本身份验证标头与URL一起传递给浏览器.

我怎样才能做到这一点?

Ale*_* K. 14

通过标题,您可以:

string user = "uuuuuuu";
string pass = "ppppppp";
string authHdr = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(user + ":" + pass)) + "\r\n";

webBrowserCtl.Navigate("http://example.com", null, null, authHdr);
Run Code Online (Sandbox Code Playgroud)

鉴于这需要在每个请求的基础上完成,基本身份验证的一个更简单的选择就是;

webBrowserCtl.Navigate("http://uuuuuuu:ppppppp@example.com", null, null, authHdr);
Run Code Online (Sandbox Code Playgroud)


Bri*_*tle 6

您可以尝试使用旧的"URL"格式,但这样做是不安全的:

http(s)://username:password@server/resource.ext
Run Code Online (Sandbox Code Playgroud)

这暴露了凭证,IE已禁用它,但它可能仍然可以在其他浏览器中使用.使用此格式时,浏览器可以使用凭据,并根据Web服务器的响应方式决定发送基本身份验证标头.