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; }
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)); } }