在 c# Web 窗体中,使用端口获取当前路径不返回端口



我在localhost:5164工作,我使用这个函数来获取当前路径,

    Request.Url.AbsoluteUri.ToString()

结果是正确的,绝对路径宽度端口。例如:

http://localhost:5164/path/page1.aspx

但是在域中,此函数不返回带有端口的路径,(444 是客户端浏览器的使用(

http://sub.domain.com:444/path/page1.aspx

结果是:

http://sub.domain.com/path/page1.aspx

我使用其他函数,但结果总是不正确:

Request.Url.ToString()
Request.Url.OriginalString.ToString()

您可以从其部分构建 URL:

var url = Request.Url.Scheme +         // http(s) 
            Uri.SchemeDelimiter +      // //:
            Request.Url.Host +         // sub.domain.com  
            ":" + Request.Url.Port +   // :444
            Request.Url.PathAndQuery;  // path/page1

如果端口为默认值 (80(,AbsoluteUri 将不会返回端口。

最后,我找到了在此特定服务器上返回带有端口的URL的解决方案

    Page.ResolveClientUrl("~" + Request.Url.PathAndQuery.ToString())

如果您只需要端口号,则可以使用:

Request.Url.Port.ToString();

这应该返回实际的端口号,您可以验证它是否为 444。如果对协议使用默认端口号(如 http 的 80(,则在检查 AbsoluteUri 值时可能不会显示该端口号。

相关内容

  • 没有找到相关文章

最新更新