kap*_*apz 14 c# https http httpcontext
我们Request.Url.GetLeftPart(UriPartial.Authority)
用来获取网站的域名部分.这满足了我们对http的要求.我们最近将网站更改为https(大约3天前),但仍然会返回http:// ..网址已全部更改为https并显示在浏览器地址栏中.
知道为什么会这样吗?
Her*_*rdo 21
以下示例正常工作并返回带有"https"的字符串:
var uri = new Uri("https://www.google.com/?q=102njgn24gk24ng2k");
var authority = uri.GetLeftPart(UriPartial.Authority);
// authority => "https://www.google.com"
Run Code Online (Sandbox Code Playgroud)
您要么HttpContext
在此处遇到问题,要么您的所有请求仍在使用http:
HttpContext.Current.Request.IsSecureConnection
属性.如果确实如此,并且该GetLeftPart
方法仍然为您返回http,我认为您不会在这里替换它.您还应检查传入的URL并将其记录在某处以进行调试.
在处理负载均衡器时也可能会发生这种情况。在我研究过的一种情况下,任何 https 请求都会被负载均衡器转换为 http。它在浏览器地址栏中仍然显示 https,但在内部它是一个 http 请求,因此您所做的服务器端调用将GetLeftPart()
返回 http。