Exemple #1
0
        /// <summary>
        /// 현재 페이지 경로 앞에 Full URL을 덧붙인 값을 리턴함.
        /// 예를 들어 현재 페이지 경로가 "/test.aspx"이면, "http://www.myurl.com/test.aspx"로 변경함.
        /// </summary>
        public static string PrefixHttpToCurrentUrl()
        {
            HttpRequest Req = HttpContext.Current.Request;
            string      Url = "http://"
                              + Req.ServerVariables["HTTP_HOST"]
                              + Req.ServerVariables["PATH_INFO"];
            string Param    = Req.ServerVariables["QUERY_STRING"];
            string UrlParam = CQueryString.AppendQueryString(Url, Param);

            return(UrlParam);
        }
Exemple #2
0
        /// <summary>
        /// 한쪽에서 저장된 쿠키 정보를 다른쪽에서 읽는 작업을 실제로 함.
        /// </summary>
        private static void MergeCookie(HttpCookieCollection CookToOverwrite)
        {
            HttpCookieCollection CookiesCur   = HttpContext.Current.Request.Cookies;
            HttpCookieCollection CookiesWrite = HttpContext.Current.Response.Cookies;
            bool IsChanged = false;

            //현재 쿠키와 이전 쿠키에 일치하는 이름이 있다면 이전 쿠키 값을 덮어씀.
            for (int i = 0, i2 = CookiesCur.Count; i < i2; i++)
            {
                string Key   = CookiesCur.GetKey(i);
                string Value = CookiesCur[i].Value;

                if (CookToOverwrite[Key] == null)
                {
                    continue;
                }

                if (Value != CookToOverwrite[Key].Value)
                {
                    CookiesWrite[Key].Value = CookToOverwrite[Key].Value;
                    IsChanged = true;
                }
            }

            //이전 쿠키에서 추가된 값이 있다면 현재 쿠키에 추가함.
            for (int i = 0, i2 = CookToOverwrite.Count; i < i2; i++)
            {
                string Key   = CookToOverwrite.GetKey(i);
                string Value = CookToOverwrite[i].Value;

                if (CookiesCur[Key] == null)
                {
                    CookiesWrite.Add(new HttpCookie(Key, Value));
                    IsChanged = true;
                }
            }

            if (IsChanged)
            {
                //클라이언트로 가기 전까지는 변경된 쿠키를 읽을 수 없으므로
                //현재 페이지를 다시 호출함.
                HttpRequest  Req      = HttpContext.Current.Request;
                HttpResponse Resp     = HttpContext.Current.Response;
                string       UrlParam = CQueryString.AppendQueryString(Req.ServerVariables["PATH_INFO"], Req.ServerVariables["QUERY_STRING"]);
                Resp.Redirect(UrlParam, true);
            }
        }
Exemple #3
0
 public static string AppendQueryString(Uri uri, string QueryString)
 {
     return(CQueryString.AppendQueryString(uri.AbsoluteUri, QueryString));
 }