我们使用Request.Url.GetLeftPart(UriPartial.Authority)
来获取站点的域部分。这满足了我们对http的要求。我们最近更改了网站为https (大约3天前),但这仍然与http://.返回。Urls已全部更改为https并显示在浏览器地址栏中。
知道为什么会这样吗?
发布于 2014-06-03 07:53:57
下面的示例运行正常,并返回一个带有“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,我认为您将无法在此处进行替换。中强制执行安全连接
您还应该检查传入的URL,并将其记录在某个位置,以便进行调试。
发布于 2018-10-18 13:51:19
在处理负载均衡器时也会发生这种情况。在我工作过的一种情况下,任何https请求都会被负载均衡器转换为http。它仍然在浏览器地址栏中显示https,但在内部它是一个http请求,所以您对GetLeftPart()
进行的服务器端调用返回http。
发布于 2017-08-29 05:07:32
如果你的请求来自于带有SSL卸载的ARR,Request.Url.GetLeftPart(UriPartial.Authority)
只需要获取http
https://stackoverflow.com/questions/24008681
复制