Get Domain Name using asp.net in Generic handler page

Refresh

December 2018

Views

5.8k time

2

I want to get domain name not for remote ip. i have two domain(website). example www.a1.com and www.a2.com. in a2 domain send a request to a1 domain's page like GetRequest.ashx

the example of http request is

http://www.a1.com/GetRequest.ashx?username=bala&password=123456

in my GetRequest.ashx page example coding

<%@ WebHandler Language="VB" Class="Handler" %>

Imports System
Imports System.Web

Public Class GetRequest : Implements IHttpHandler

   Public Sub ProcessRequest(ByVal context As HttpContext) Implements     IHttpHandler.ProcessRequest

          context.Response.ContentType = "text/plain"
          Dim username As String = context.Request.QueryString("username")
          Dim password As String = context.Request.QueryString("password")
 **'//Here i need a coding to get requested domain name that is who send the request to my page**

   End Sub

   Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
       Get
         Return False
      End Get
  End Property
End Class

i already use the following coding but not solve my problem. because it return ip address. i need domain only not for ip.

context.Request.ServerVariables("REMOTE_ADDR")
context.Request.ServerVariables("REMOTE_HOST")

Dim domain As String
Dim url As Uri = HttpContext.Current.Request.Url
domain = url.AbsoluteUri.Replace(url.PathAndQuery, String.Empty)

the variable domain contain www.a1.com but i need www.a2.com

use google analytics api to solve my problem? then how to use this api can any one explain

3 answers

0

Вы можете получить доступ к объекту запроса через HttpContext, например, так:

EDIT : Изменены получить имя хоста со ссылкой URL

string host = HttpContext.Current.Request.UrlReferrer.Host;

EDIT : UrlReferrer возвращается нуль. Альтернатива с использованием HTTP_REFERER:

if (!String.IsNullOrEmpty(Request.ServerVariables["HTTP_REFERER"]))
{
    Uri referringUrl = new Uri(Request.ServerVariables["HTTP_REFERER"]);
    string referringHostName = referringUrl .Host;
}
2

Page.Request.Url.Hostсодержит имя хоста URL ( www.a1.comв вашем примере)

Если запрос на www.a2.comсайте вызывает страницу на www.a1.comсайте, имя хост всегда будет www.a1.comтак , что является хозяином , который был использован для вызова страницы. Я рекомендую пропускание переменных строки запроса , если вам нужно знать , что запрос происходит от www.a2.com.

0

Проверьте Referrer:

HttpContext.Current.Request.UrlReferrer.Host

Внутри кода:

   Public Sub ProcessRequest(ByVal context As HttpContext) Implements     IHttpHandler.ProcessRequest

          context.Response.ContentType = "text/plain"
          Dim username As String = context.Request.QueryString("username")
          Dim password As String = context.Request.QueryString("password")
 **'//Here i need a coding to get requested domain name that is who send the request to my page**
          Dim domain as string = context.Request.UrlReferrer.Host

   End Sub