URL中的端口

时间:2010-02-16 15:38:59

标签: asp.net url

我有一个网络应用程序,我部署到几个应用程序,如此 -

https://customerinternaldomain.com/thewebapp

有许多链接可以弹出打开的窗口。在过去,我使用以下内容来确定要弹出的窗口的URL。

string appPath = this.Request.ApplicationPath;
      if ( !appPath.EndsWith ( "/" ) )
        appPath += "/";
      string sURL = this.Request.Url.Scheme + "://" + this.Request.Url.Authority
        + appPath 

然后我只是添加到我要打开的窗口页面的路径上

appPath += "somefolder/window.aspx"

我们的一个安装只是移动到非标准端口,类似20055。

所以我愚弄了一个干净的完全证明方法,以确保端口插入路径,但由于webapp映射到https://internaldomain.com/thewebapp而不是https://internaldomain.com/我没有看到使用Request服务器变量执行此操作的干净方法。当然,我可以使用拆分或其他东西进行破解和削减,或者将基本Web路径存储在可读取的配置文件中。只是想知道是否有人有一个干净的方式这样做。假设有一些显而易见的东西,我只是错过了,所以我想我会把最好和最聪明的东西放在上面。

感谢您提供的任何帮助,我知道时间很宝贵。我很感激。

2 个答案:

答案 0 :(得分:2)

.Replace(".com", ".com:20055")

答案 1 :(得分:1)

我现在无法访问ASP服务器或Visual Studio来获取详细信息,但我知道您可以从Request.Url对象获取域名及其URL路径。快速搜索告诉我它是Request.Url.Host以获得internaldomain.com部分。

所以,您只需要将端口附加到此端口,然后将它们拼凑在一起。

所以,它就像是

scheme +“://”+ host +“:”+ port“/”+ currentPath +“/”+ appPath

正如我所说,现在无法检查具体细节,但我知道Request对象将允许您访问所有这些部分。如果您从一个端口转到另一个端口,则可能需要将端口存储在某个端口。