如何知道哪个域使用 JS 向我的 C# 操作发送请求

How to know which domain send request using JS to my C# action

我需要知道哪个域向我的 C# 操作 (MVC) 发送请求, 我收到请求和 return JS 代码,

例如: 有人把这段代码放在 site(http://www.ClientExampleSite.com/) :

<script src="http://www.MyExampleSite.com/GetDomin /GetDomin" type="text/javascript"></script>

我需要return这个代码:

Var Domin = 'www.ClientExampleSite.com';

问题是 UrlReferrer 在这种情况下不起作用。

谢谢

编辑: 最后我想做的是阻止来自未知域的请求。

你可以试试这个:

Uri myUri = new Uri("http://www.ClientExampleSite.com/");   
string domain = myUri.Host;

参考Uri.Host Property

Gets the host component of this instance.

或者你可以试试这个:

var domain =   HttpContext.Current.Request.Url.Host;

获取客户​​端域名

string clientDomain = string.Empty;
clientDomain = context.Request.UrlReferrer.Host;

你可以使用,

var 域名 = System.Web.HttpContext.Current.Request.Url.Authority;

或者你可以试试,

var theProvider = (IServiceProvider)HttpContext;
var theWorker = (HttpWorkerRequest)theProvider.GetService(typeof(HttpWorkerRequest));
string theReferer = theWorker.GetKnownRequestHeader(HttpWorkerRequest.HeaderReferer);  

更新: 根据您的评论,您可以从代码下方的 IP 地址获取客户端域名

        var clientIP = (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]==null) ? System.Web.HttpContext.Current.Request.UserHostAddress:
                           System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        IPAddress addr = IPAddress.Parse(clientIP);
        IPHostEntry entry = Dns.GetHostEntry(addr);
        var clientDomainName = entry.HostName;