首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ASP.NET中获取当前域名的最佳方法是什么?

在ASP.NET中获取当前域名的最佳方法是什么?
EN

Stack Overflow用户
提问于 2008-09-15 03:04:09
回答 7查看 94K关注 0票数 104

我想知道在ASP.NET中获取当前域名的最好方法是什么?

例如:

http://www.domainname.com/subdir/应该产生http://www.domainname.com http://www.sub.domainname.com/subdir/应该产生http://sub.domainname.com

作为指导,我应该能够直接在url上添加一个像"/Folder/Content/filename.html“这样的URL (比如由ASP.NET MVC中的Url.RouteUrl()生成),这样就可以工作了。

EN

回答 7

Stack Overflow用户

发布于 2008-09-15 03:06:04

根据this link的说法,一个好的起点是:

代码语言:javascript
复制
Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host 

但是,如果域为http://www.domainname.com:500,则此操作将失败。

下面这样的代码很容易解决这个问题:

代码语言:javascript
复制
int defaultPort = Request.IsSecureConnection ? 443 : 80;
Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host 
  + (Request.Url.Port != defaultPort ? ":" + Request.Url.Port : "");

但是,端口80和443将取决于配置。

因此,您应该像上面卡洛斯·穆尼奥斯的Accepted Answer中那样使用IsDefaultPort

票数 42
EN

Stack Overflow用户

发布于 2011-12-31 13:30:04

代码语言:javascript
复制
Request.Url.GetLeftPart(UriPartial.Authority)

这是包含的方案。

票数 29
EN

Stack Overflow用户

发布于 2011-07-18 07:38:24

为什么不使用

Request.Url.Authority

它返回整个域和端口。

您仍然需要计算http或https

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档