title: Request.Url.Scheme gives http instead of https on load balanced site
body: <p>I am testing a new load balanced staging site and the https is set up at the load balancer level, not at the site level. Also, this site will be always https so i don't need remote require https attributes etc.  The url displays https but it is not available in my code. I have a few issues due to this reason</p>
  
  <p>Request.Url.Scheme is always http:</p>
  
  <pre><code>public static string GetProtocol()
          {
              var protocol = "http";
              if (HttpContext.Current != null &amp;&amp; HttpContext.Current.Request != null)
              {
                  protocol = HttpContext.Current.Request.Url.Scheme;
              }
              return protocol;
          }
  </code></pre>
  
  <p>Same thing with this base url, protocol is http</p>
  
  <pre><code>public static string GetBaseUrl()
          {
              var baseUrl = String.Empty;
  
              if (HttpContext.Current == null || HttpContext.Current.Request == null || String.IsNullOrWhiteSpace(HttpRuntime.AppDomainAppPath)) return baseUrl;
  
              var request = HttpContext.Current.Request;
              var appUrl = HttpRuntime.AppDomainAppVirtualPath;
  
              baseUrl = string.Format("{0}://{1}{2}", request.Url.Scheme, request.Url.Authority, appUrl);
  
              if (!string.IsNullOrWhiteSpace(baseUrl) &amp;&amp; !baseUrl.EndsWith("/"))
                  baseUrl = String.Format("{0}/", baseUrl);
  
              return baseUrl;
          }
  </code></pre>
  
  <p>Now the biggest issue is referencing js files and google fonts referenced in the style sheets. I am using // here without http or https but these are treated as http and i see mixed content blocked message in FireBug.</p>
  
  <p>How can i overcome this issue?</p>