我想在ASP.NET c#中获取当前域名.

我正在使用这个代码.

string DomainName = HttpContext.Current.Request.Url.Host;

我的URL是localhost:5858,但它只返回localhost.

现在,我正在本地主机中使用我的项目.我想要本地主机:5858.

再举一个例子,当我使用此域时

www.somedomainname.com

我想要somedomainname.com分.

请告诉我如何获取当前域名.

推荐答案

使用Request.Url.Host是合适的-这是检索HTTP Host:标头的值的方式,该值指定UA(浏览器)需要哪个主机名(域名),因为HTTP请求的资源路径部分不包括主机名.

请注意,localhost:5858不是域名,它是一个端点说明符,也称为"授权",其中包括主机名和TCP端口号.这是通过访问Request.Uri.Authority来检索的.

此外,从www.somedomain.com获得somedomain.com是无效的,因为Web服务器可以配置为为www.somedomain.com提供与somedomain.com不同的站点服务,但是如果您确定这在您的情况下是有效的,那么您需要手动解析主机名,尽管使用String.Split('.')是必要的.

请注意,WebServer(IIS)配置不同于ASP.NET的配置,并且ASP.NET实际上完全不知道它在其下运行的网站和Web应用程序的HTTP绑定配置.IIS和ASP.NET共享相同的配置文件(web.config)的事实是在转移注意力.

Asp.net相关问答推荐

在 AppConfig.json 中存储对象的最佳方式

从 Request.Url.AbsolutePath 获取应用相对 url

ASP.NET Core 1.0 ConfigurationBuilder().AddJsonFile("appsettings.json");找不到文件

是否可以使用 Membership API 更改用户名

c# - 如何从列表中获取值的总和?

Devexpress 或 Telerik Controls 比较

免费的 ASP.Net 和/或 CSS 主题

从 C# AsyncCTP 使用 ExecuteReaderAsync 的任何缺点

使用 JObject 所需的库名称是什么?

如何将枚举类型绑定到 DropDownList?

为应用程序池Classic .NET AppPool提供服务的进程与 Windows 进程激活服务发生了致命的通信错误

使用 Asp.Net MVC 和 Web Api 配置 Ninject

如何避免 ASP.NET MVC 中的 HttpRequestValidationException 呈现导致异常的相同视图

如何从url中删除returnurl?

如何验证 WebClient 请求?

远程计算机无法连接到 Visual Studio Web 服务器

ASP.Net 无法创建/卷影复制

Azure 网站 301 重定向 - 我应该把它放在哪里?

将字典绑定到中继器

如何使用实体框架执行原始 SQL 查询而无需使用模型?