コード例 #1
0
        private void Build()
        {
            this.Domain = null;

            this.ServiceDefinition = null;
            this.ServiceMimeType   = string.Empty;
            this.ServiceResult     = string.Empty;

            this._ExecuteIn = string.Empty;

            this.IsAuthenticationRequired = false;
            this.IsWorkingAsStandAlone    = false;

            // Check has ever user changed the Language
            this._CookieSearchKeyForLanguage =
                string.Format(
                    "{0}_LanguageID",
                    Basics.Configurations.Xeora.Application.Main.ApplicationRoot.BrowserImplementation.Replace('/', '_'));

            string languageID = string.Empty;

            Basics.Context.IHttpCookieInfo languageCookie =
                this._Context.Request.Header.Cookie[this._CookieSearchKeyForLanguage];

            if (languageCookie != null && !string.IsNullOrEmpty(languageCookie.Value))
            {
                languageID = languageCookie.Value;
            }
            // !---

            this.SelectDomain(languageID);

            this.MetaRecord = new MetaRecord();
        }
コード例 #2
0
ファイル: DomainControl.cs プロジェクト: xeora/v7-framework
        private void Build()
        {
            CryptographyProvider.Current.Ping(this._Context.Session.SessionId);

            this.Domain = null;

            this.ServiceDefinition = null;
            this.ServiceMimeType   = string.Empty;
            this.ServiceResult     = new Basics.RenderResult(string.Empty, false);

            this._ExecuteIn = string.Empty;

            this.IsAuthenticationRequired = false;
            this.IsWorkingAsStandAlone    = false;

            // Check has ever user changed the Language
            this._CookieSearchKeyForLanguage =
                $"{Basics.Configurations.Xeora.Application.Main.ApplicationRoot.BrowserImplementation.Replace('/', '_')}_LanguageId";

            string languageId = string.Empty;

            Basics.Context.IHttpCookieInfo languageCookie =
                this._Context.Request.Header.Cookie[this._CookieSearchKeyForLanguage];

            if (languageCookie != null && !string.IsNullOrEmpty(languageCookie.Value))
            {
                languageId = languageCookie.Value;
            }
            // !---

            this.SelectDomain(languageId);

            this.MetaRecord = new MetaRecord();
        }
コード例 #3
0
ファイル: Property.cs プロジェクト: xeora/v7-framework
        private Tuple <bool, object> RenderCookieItem()
        {
            string cookieItemKey =
                this._RawValue.Substring(1);

            Basics.Context.IHttpCookieInfo cookieItem =
                Helpers.Context.Request.Header.Cookie[cookieItemKey];

            return(new Tuple <bool, object>(true, cookieItem == null ? string.Empty : cookieItem.Value));
        }
コード例 #4
0
        private static void AcquireSession(Basics.Context.IHttpRequest request, out Basics.Session.IHttpSession session)
        {
            string sessionCookieKey =
                Configurations.Xeora.Session.CookieKey;

            Basics.Context.IHttpCookieInfo sessionIdCookie =
                request.Header.Cookie[sessionCookieKey];
            request.Header.Cookie.Remove(sessionCookieKey);

            SessionManager.Current.Acquire(sessionIdCookie?.Value, out session);
        }
コード例 #5
0
ファイル: HttpContext.cs プロジェクト: oe09/v7-framework
        public HttpContext(string contextID, ref Basics.Context.IHttpRequest request)
        {
            string sessionCookieKey = Basics.Configurations.Xeora.Session.CookieKey;

            this.Request  = request;
            this.Response = new HttpResponse(contextID);

            string sessionID = string.Empty;

            Basics.Context.IHttpCookieInfo sessionIDCookie =
                this.Request.Header.Cookie[sessionCookieKey];
            if (sessionIDCookie != null)
            {
                sessionID = sessionIDCookie.Value;

                // Remove sessioncookie from the request object
                ((HttpCookie)this.Request.Header.Cookie).Remove(sessionCookieKey);
            }

            SessionManager.Current.Acquire(
                sessionID,
                out this._Session);

            ((HttpResponse)this.Response).SessionCookieRequested +=
                (skip) =>
            {
                if (skip)
                {
                    return(null);
                }

                if (string.Compare(sessionID, this._Session.SessionID) == 0)
                {
                    return(null);
                }

                if (this._Session.Keys.Length == 0)
                {
                    return(null);
                }

                // Create SessionCookie
                sessionIDCookie =
                    this.Response.Header.Cookie.CreateNewCookie(sessionCookieKey);
                sessionIDCookie.Value    = this._Session.SessionID;
                sessionIDCookie.HttpOnly = true;

                return(sessionIDCookie);
            };

            this.Application = ApplicationContainer.Current;
        }
コード例 #6
0
ファイル: Property.cs プロジェクト: oe09/v7-framework
        private void RenderCookieItem()
        {
            string cookieItemKey = this.Value.Substring(1);

            Basics.Context.IHttpCookieInfo cookieItem = Helpers.Context.Request.Header.Cookie[cookieItemKey];

            if (cookieItem == null)
            {
                this.RenderedValue = string.Empty;
                this.ObjectResult  = null;

                return;
            }

            this.RenderedValue = cookieItem.Value;
            this.ObjectResult  = cookieItem.Value;
        }
コード例 #7
0
ファイル: HttpContext.cs プロジェクト: xeora/v7-framework
        public HttpContext(
            string contextId,
            bool secure,
            Basics.Context.IHttpRequest request,
            Basics.Context.IHttpResponse response,
            Basics.Session.IHttpSession session,
            Basics.Application.IHttpApplication application)
        {
            this.UniqueId = contextId;
            this.HashCode =
                this.GetOrCreateHashCode(ref request);
            this.Request     = request;
            this.Response    = response;
            this.Session     = session;
            this.Application = application;

            ((HttpResponse)this.Response).SessionCookieRequested +=
                skip =>
            {
                if (skip)
                {
                    return(null);
                }

                if (this.Session.Keys.Length == 0)
                {
                    return(null);
                }

                // Create SessionCookie
                string sessionCookieKey =
                    Basics.Configurations.Xeora.Session.CookieKey;
                Basics.Context.IHttpCookieInfo sessionIdCookie =
                    this.Response.Header.Cookie.CreateNewCookie(sessionCookieKey);
                sessionIdCookie.Value    = this.Session.SessionId;
                sessionIdCookie.Expires  = this.Session.Expires;
                sessionIdCookie.SameSite = secure ? Basics.Context.SameSiteTypes.None : Basics.Context.SameSiteTypes.Lax;
                sessionIdCookie.Secure   = secure;
                sessionIdCookie.HttpOnly = true;

                return(sessionIdCookie);
            };
        }
コード例 #8
0
        private void ParseCookies(string rawCookie)
        {
            string[] keyValues = rawCookie.Split(';');

            foreach (string keyValue in keyValues)
            {
                int equalsIndex = keyValue.IndexOf('=');
                if (equalsIndex == -1)
                {
                    continue;
                }

                string key = keyValue.Substring(0, equalsIndex);
                key = key.Trim();
                string value = keyValue.Substring(equalsIndex + 1);
                value = value.Trim();

                Basics.Context.IHttpCookieInfo cookieInfo = this.Cookie.CreateNewCookie(key);
                cookieInfo.Value = System.Web.HttpUtility.UrlDecode(value);

                this.Cookie.AddOrUpdate(cookieInfo);
            }
        }