在ASP.NET中,有没有办法获得真正的原始URL?
例如,如果用户浏览到“http://example.com/mypage.aspx/%2F”,我希望能够获得“http://example.com/mypage.aspx/%2F”而不是“http://example.com/mypage.aspx//”.
我当然喜欢干净的方式去做,但我可以使用反射或访问模糊属性的hacky方法.
目前,我尝试在Authorization-header(可行)中使用uri,但我不能依赖于那里总是存在的.
编辑:
我真正想要做的是能够区分“http://example.com/mypage.aspx/%2F”和“http://example.com/mypage.aspx/%2F%2F”.
看起来ASP.NET首先将“//”转换为“//”,然后将斜杠转换为单个斜杠.
所以只是重新编码它是行不通的.
解决方法
我无法测试这个,因为它只适用于IIS而不是Visual Studio中的ASP.NET Development Server,但请尝试:
Request.ServerVariables [“HTTP_URL”]