/// <summary> /// 현재 페이지를 호출한 페이지가 같은 서버 안에 있는 지 여부를 리턴함. /// </summary> /// <param name="ErrMsgIs"></param> /// <returns></returns> /// <example> /// <![CDATA[ /// 다음은 현재 페이지를 호출한 페이지가 다른 사이트의 페이지이면 에러 메세지를 출력하고 더 이상 진행하지 않음. /// if (!IsRefererInSameServer(out ErrMsgIs) /// { /// Response.Write(ErrMsgIs); /// Response.End(); /// } /// ]]> /// </example> public static bool IsRefererInSameServer(out string ErrMsgIs) { ErrMsgIs = ""; string Referer = CFindRep.IfNullThenEmpty(HttpContext.Current.Request.ServerVariables.Get("HTTP_REFERER")); if (Referer == "") { Referer = CWeb.GetRemoteIpAddress(HttpContext.Current); } Referer = CPath.GetServerUrl(Referer).ToLower(); string Server = HttpContext.Current.Request.ServerVariables.Get("LOCAL_ADDR"); Server = CPath.GetServerUrl(Server).ToLower(); if (Referer == Server) { return(true); } Server = HttpContext.Current.Request.ServerVariables.Get("HTTP_HOST"); Server = CPath.GetServerUrl(Server).ToLower(); if (Referer == Server) { return(true); } ErrMsgIs = "서버명이 다음과 같이 일치하지 않습니다.\r\n클라이언트: " + Referer + ", 서버: " + Server; return(false); }