通过 ASP.Net 获取应用程序 url

Get application url with ASP.Net

我需要在会话过期时重定向到我的应用程序的 CommonPage.aspx 页面。

我的申请 url 类似于 http://Name_IP/applicationname/FolderName/Home.aspx

从上面url我需要重定向到http://Name_IP/applicationname/commonpage.aspx

我使用下面的代码重定向

"http://localhost://" + Request.Url.Port.ToString() + "//applicationname/commonpage.aspx"

以上代码将在本地主机上运行。但是部署后它不起作用。 怎么做?请推荐

如何用 Name_IP 替换本地主机?

Request.Url 包含来自请求的完整 URL。看看 Host 属性.

您可以使用

获取主机名,包括端口
Request.Url.GetLeftPart(UriPartial.Authority)

你可以像这样使用

var url = String.Format(
    "{0}/{1}"
    Request.Url.GetLeftPart(UriPartial.Authority),
    "applicationname/commonpage.aspx")

这会产生类似

的东西
http://foo.bar:8080/applicationname/commonpage.aspx

一个好的方法是创建一个新的 Uri:

var uri = new Uri(Request.Url, "applicationname/commonpage.aspx");

这将 return 一个 Uri 的值是

http://foo.bar:8080/applicationname/commonpage.aspx