コード例 #1
0
        public override void Handle(HttpContext context, CancellationToken cancel)
        {
            MethodContract.NotNull(context, nameof(context)); //this will throw if context==null

            HttpRequest  request  = context.Request;
            HttpResponse response = context.Response;

            string local = RestUtils.LocalUrl(this, request);
            string meth  = RestUtils.StripLocal(this.BaseUrl, local);

            if (create.Equals(meth, StringComparison.OrdinalIgnoreCase))
            {
                Create(response, cancel);
                return;
            }
            else if (extend.Equals(meth, StringComparison.OrdinalIgnoreCase))
            {
                //do nothing, already extended
                RestUtils.Push(response, JsonOpStatus.Ok);
                return;
            }
            else if (expire.Equals(meth, StringComparison.OrdinalIgnoreCase))
            {
                if (request.Headers.ContainsKey(Session.SessionIdName))
                {
                    Guid ssid;
                    if (Guid.TryParse(request.Headers[Session.SessionIdName], out ssid))
                    {
                        if (Prov.Expire(ssid)) //note that this will autoextend and will return false if expired
                        {
                            response.Headers.Remove(Session.SessionIdName);
                            RestUtils.Push(response, JsonOpStatus.Ok);
                            return;
                        }
                    }
                }
            }
            response.StatusCode = HttpStatusCodes.Status400BadRequest;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: OSRS/Oncor_OsrsLegacy
        static void DoWork(string[] args)
        {
            Console.WriteLine("PreBootstrap State: " + SessionManager.Instance.State.ToString());
            SessionManager.Instance.Bootstrap(); // new Osrs.Reflection.TypeNameReference("Osrs.Security.Sessions.Module", "Osrs.Security.Sessions.Providers.MemorySessionProviderFactory"), 0);
            Console.WriteLine("PostBootstrap State: " + SessionManager.Instance.State.ToString());
            SessionManager.Instance.Initialize();
            Console.WriteLine("PostInitialize State: " + SessionManager.Instance.State.ToString());
            SessionManager.Instance.Start();
            Console.WriteLine("PostStart State: " + SessionManager.Instance.State.ToString());

            SessionProviderBase prov = SessionManager.Instance.GetProvider();

            Console.WriteLine("Provider null: " + (prov == null));
            if (prov != null)
            {
                ModuleRuntimeSession sess = prov.Create();
                Console.WriteLine("Session null: " + (sess == null));

                Console.WriteLine("exists: " + prov.Exists(sess.SessionId));
                Console.WriteLine("extend: " + prov.Extend(sess.SessionId));
                Console.WriteLine("expire: " + prov.Expire(sess.SessionId));
                Console.WriteLine("exists: " + prov.Exists(sess.SessionId));
            }
        }