C# · 12月 26, 2021

c# – Request.Url.GetLeftPart(UriPartial.Authority)在https站点上返回http

我们使用Request.Url.GetLeftPart(UriPartial.Authority)获取站点的域部分.这符合我们对http的要求.
我们最近将网站更改为https(约3天前),但这仍然返回http:// ..
网址全部更改为https,并在浏览器地址栏中显示.

任何想法为什么会这样?

解决方法 以下示例工作正常,并返回一个带有“https”的字符串: var uri = new Uri(“https://www.google.com/?q=102njgn24gk24ng2k”);var authority = uri.GetLeftPart(UriPartial.Authority);// authority => “https://www.google.com”

您在HttpContext类中出现问题,或者您的所有请求仍然使用http:

>你可以检查请求HttpContext.Current.Request.IsSecureConnection属性.如果它是真的,并且GetLeftPart方法仍然为你返回http,我想你不会在这里替换.
>如果您的所有请求真的来自http,您可能会在IIS中强制执行安全连接.

您还应检查传入的URL并将其记录在某个地方进行调试.