3 using Hammock.Extensions;
8 /// A web query engine for making requests that use basic HTTP authorization.
10 public class BasicAuthWebQuery : WebQuery
12 private readonly string _password;
13 private readonly string _username;
15 public BasicAuthWebQuery(IWebQueryInfo info, string username, string password, bool enableTrace) : this(info, enableTrace)
21 public BasicAuthWebQuery(IWebQueryInfo info, bool enableTrace) : base(info, enableTrace)
31 (!_username.IsNullOrBlank()
32 && !String.IsNullOrEmpty(_password));
36 protected override void SetAuthorizationHeader(WebRequest request, string header)
43 var credentials = GetAuthorizationHeader();
44 request.Headers[header] = credentials;
47 private string GetAuthorizationHeader()
49 return WebExtensions.ToBasicAuthorizationHeader(_username, _password);
52 protected override void AuthenticateRequest(WebRequest request)
54 SetAuthorizationHeader(request, "Authorization");
57 public override string GetAuthorizationContent()
59 return GetAuthorizationHeader();