如何知道哪个域使用 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;
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;
我需要知道哪个域向我的 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;
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;