当前位置:  开发笔记 > 编程语言 > 正文

在asp.net中确定网站的绝对完全限定网址

如何解决《在asp.net中确定网站的绝对完全限定网址》经验,为你挑选了3个好方法。

无论站点是否在虚拟目录中,无论我的代码在目录结构中的哪个位置,我如何始终获得站点的绝对,完全限定的根或基本URL?我已经尝试了我能想到的每一个变量和功能,并没有找到一个好方法.

我希望能够获取当前站点的URL,即http://www.example.com,或者如果它是虚拟目录,请访问http://www.example.com/DNN/


这是我尝试过的一些事情和结果.唯一一个包含我想要的整块(http:// localhost:4471/DNN441)的是Request.URI.AbsoluteURI:

Request.PhysicalPath:C:\ WebSites\DNN441\Default.aspx

Request.ApplicationPath:/ DNN441

Request.PhysicalApplicationPath:C:\ WebSites\DNN441 \

MapPath:C:\ WebSites\DNN441\DesktopModules\Articles\Templates\Default.aspx

RawURL:/DNN441/ModuleTesting/Articles/tabid/56/ctl/Det​​ails/mid/374/ItemID/1/Default.aspx

Request.Url.AbsoluteUri:http:// localhost:4471/DNN441/Default.aspx

Request.Url.AbsolutePath:/DNN441/Default.aspx

Request.Url.LocalPath:/DNN441/Default.aspx Request.Url.Host:localhost

Request.Url.PathAndQuery:/DNN441/Default.aspx?TabId=56&ctl=Details&mid=374&ItemID=1

EfficionDave.. 12

通过阅读Rick Strahl博客中提供的答案,我发现我真正需要的是非常简单的.首先,您需要确定相对路径(对我来说这是容易的部分),并将其传递到下面定义的函数中:

VB.NET

Public Shared Function GetFullyQualifiedURL(ByVal s as string) As String
   Dim Result as URI = New URI(HttpContext.Current.Request.Url, s)
   Return Result.ToString
End Function

C#

public static string GetFullyQualifiedURL(string s) {
    Uri Result = new Uri(HttpContext.Current.Request.Url, s);
    return Result.ToString();
}


Scott Staffo.. 7

接受的答案假定当前请求已经在服务器/虚拟根目录.试试这个:

Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath


Dave Neeley.. 5

Rick Strahl的博客上有一些很好的讨论和想法

编辑:我应该补充说,这些想法可以使用或不使用有效的HttpContext.

EDIT2:这是该帖子上回答问题的具体评论/代码



1> EfficionDave..:

通过阅读Rick Strahl博客中提供的答案,我发现我真正需要的是非常简单的.首先,您需要确定相对路径(对我来说这是容易的部分),并将其传递到下面定义的函数中:

VB.NET

Public Shared Function GetFullyQualifiedURL(ByVal s as string) As String
   Dim Result as URI = New URI(HttpContext.Current.Request.Url, s)
   Return Result.ToString
End Function

C#

public static string GetFullyQualifiedURL(string s) {
    Uri Result = new Uri(HttpContext.Current.Request.Url, s);
    return Result.ToString();
}



2> Scott Staffo..:

接受的答案假定当前请求已经在服务器/虚拟根目录.试试这个:

Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath



3> Dave Neeley..:

Rick Strahl的博客上有一些很好的讨论和想法

编辑:我应该补充说,这些想法可以使用或不使用有效的HttpContext.

EDIT2:这是该帖子上回答问题的具体评论/代码

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有