C# 在MVC5中使用我的API控制器的主机名

C# 在MVC5中使用我的API控制器的主机名,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,在MVC5项目中 假设我有类似的API abc.com/authonication?userName=asdklfsdf&token=ASDF45FEWF312DFSFWE465SDF465 另外一些web应用程序(example.com)使用此API 在我的控制器中,我想获取使用此API验证的域的主机名(example.com)您可以从HttpContext.Request字段获得一些有用的信息 HttpContext.Request.UserHostAddress HttpCont

在MVC5项目中 假设我有类似的API

abc.com/authonication?userName=asdklfsdf&token=ASDF45FEWF312DFSFWE465SDF465
另外一些web应用程序(example.com)使用此API


在我的控制器中,我想获取使用此API验证的域的主机名(example.com)

您可以从HttpContext.Request字段获得一些有用的信息

HttpContext.Request.UserHostAddress
HttpContext.Request.UserHostName

这些信息不一定可用,但在很多情况下,它们都存在。只是不要依赖它。

您可以从HttpContext.Request字段获得一些有用的信息

HttpContext.Request.UserHostAddress
HttpContext.Request.UserHostName

这些信息不一定可用,但在很多情况下,它们都存在。不要依赖它。

您可以通过API操作方法本身实现这一点

[HttpGet]
public object Add(string data = "")
{
    try
    {
        string result = "0";

        if (!string.IsNullOrEmpty(data))
        {
            var host = System.Web.HttpContext.Current.Request.UserHostName;
            var ip = System.Web.HttpContext.Current.Request.UserHostAddress;
        }

        return new { response = result };
    }
    catch (Exception ex)
    {
        throw ex;
    }

您可以通过API操作方法本身来实现这一点

[HttpGet]
public object Add(string data = "")
{
    try
    {
        string result = "0";

        if (!string.IsNullOrEmpty(data))
        {
            var host = System.Web.HttpContext.Current.Request.UserHostName;
            var ip = System.Web.HttpContext.Current.Request.UserHostAddress;
        }

        return new { response = result };
    }
    catch (Exception ex)
    {
        throw ex;
    }

网络不是这样工作的。请求是从IP地址发出的。您可以进行反向查找以查看哪些名称注册到该IP地址,但这并不是万无一失的。另请参见.Is
example.com
从客户端(web浏览器)或服务器(如IIS)调用您的网站?example.com从浏览器调用网络不是这样工作的。请求是从IP地址发出的。您可以进行反向查找以查看哪些名称注册到该IP地址,但这并不是万无一失的。另请参见.Is
example.com
从客户端(web浏览器)或服务器(如IIS)调用您的网站?example.com从浏览器调用HttpContext.Request.UserHostAddress我获取的是“ip地址”和HttpContext.Request.UserHostName我获取的是机器名正如我所说的,这取决于很多因素,包括实际发送该信息的浏览器。有些浏览器不会包含它。对于某些请求,您将获得机器名,尤其是在本地尝试时。从这里,我将获得“ip地址”和HttpContext.Request.UserHostAddress。我将获得机器名正如我所说的,这取决于许多因素,包括浏览器实际发送的信息。有些浏览器不会包含它。对于某些请求,您将获得机器名,尤其是在本地尝试时。