我想知道在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()生成),这样就可以工作了。
发布于 2008-09-15 03:06:04
根据this link的说法,一个好的起点是:
Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host
但是,如果域为http://www.domainname.com:500,则此操作将失败。
下面这样的代码很容易解决这个问题:
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
。
发布于 2011-12-31 13:30:04
Request.Url.GetLeftPart(UriPartial.Authority)
这是包含的方案。
发布于 2011-07-18 07:38:24
为什么不使用
Request.Url.Authority
它返回整个域和端口。
您仍然需要计算http或https
https://stackoverflow.com/questions/61817
复制相似问题