c# – 如何从Owin获取原始网址?
发布时间:2020-12-15 22:10:45 所属栏目:百科 来源:网络整理
导读:如何从Owin(传递给HTTP请求的URL)获取原始URL,独立于Owin托管? 例如,http://localhost/myapp和http://localhost/myapp/都包含在IOwinRequest.Path中. PathBase包含always / myapp,Uri.OriginalString总是包含http://localhost/myapp/. (在ASP.NET中我会调用
如何从Owin(传递给HTTP请求的URL)获取原始URL,独立于Owin托管?
例如,http://localhost/myapp和http://localhost/myapp/都包含在IOwinRequest.Path中. PathBase包含always / myapp,Uri.OriginalString总是包含http://localhost/myapp/. (在ASP.NET中我会调用HttpContext.Current.Request.RawUrl,它返回/ myapp或/ myapp /.) 原因:目前,我需要它来进行服务器端重定向以添加尾随/如果它丢失(独立于主机). 解决方法
您可以通过访问用于接收请求的HttpListenerContext来获取Owin中的原始Url.
public static string RealUrlFromOwin(HttpRequestMessage request) { var owincontext = ((OwinContext) request.Properties["MS_OwinContext"]); var env = owincontext.Environment; var listenerContext = (System.Net.HttpListenerContext) env["System.Net.HttpListenerContext"]; return listenerContext.Request.RawUrl; } 这不仅可以恢复Url中的尾随符号,还可以在应用任何解码之前获取Url字符串,因此您可以区分“!”而且,例如. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |