public bool ChangePass(Guid sid, string user, Guid token, string newPass) { if (!Guid.Empty.Equals(sid)) { if (resetTokens.ContainsKey(token)) { ModuleRuntimeSession sess = Session.Prov.Get(sid); if (sess != null) { IIdentityProvider idProv = IdentityManager.Instance.GetProvider(ctx); UserIdentityBase userId = idProv.Get(resetTokens[token].Token); if (userId != null && userId.UserState != UserState.Dead) { IAuthenticationProvider authProv = AuthenticationManager.Instance.GetProvider(ctx); if (authProv.AddCredential(userId, new UserPasswordCredential(user, newPass))) { resetTokens.Remove(token); sess.SetUserBinding(userId.Uid, sess.Binding); Session.Prov.Update(sess); return(true); } } } } } return(false); }
private void Create(HttpResponse response, CancellationToken cancel) { ModuleRuntimeSession sess = Prov.Create(); response.Headers[Session.SessionIdName] = sess.SessionId.ToString(); RestUtils.Push(response, RestUtils.JsonOpStatus(JsonOpStatus.Ok)); }
protected override ModuleRuntimeSession CreateImpl() { Scavenge(); //TODO -- get rid of this for a thread task ModuleRuntimeSession s = new ModuleRuntimeSession(Guid.NewGuid(), DateTime.UtcNow.AddSeconds(SessionManager.Instance.SessionDuration)); sessions[s.SessionId] = s; return(s); }
public void LogOut(Guid sessionId) { ModuleRuntimeSession session = SessionProvider.Get(sessionId) as ModuleRuntimeSession; if (session != null) { session.SetUserBinding(Guid.Empty, session.Binding); SessionProvider.Update(session); } }
public override ModuleRuntimeSession Get(Guid sessionId) { Scavenge(); //TODO -- get rid of this for a thread task if (sessions.ContainsKey(sessionId)) { ModuleRuntimeSession tmp = sessions[sessionId]; return(new ModuleRuntimeSession(tmp.SessionId, tmp.ExpiresAt, tmp.UserId, tmp.Binding)); } return(null); }
public static bool Bind(Guid uid, Guid sid) { ModuleRuntimeSession sess = Prov.Get(sid); if (sess != null) { sess.SetUserBinding(uid, sess.Binding); return(Prov.Update(sess)); } return(false); }
public static UserIdentityBase GetUser(HttpContext context) { Guid sid = Get(context); if (!Guid.Empty.Equals(sid)) { ModuleRuntimeSession sess = Prov.Get(sid); if (sess != null && !Guid.Empty.Equals(sess.UserId)) { return(IdProv.Get(sess.UserId)); } } return(null); }
protected override bool ExtendImpl(Guid sessionId) { if (sessions.ContainsKey(sessionId)) { try { ModuleRuntimeSession s = sessions[sessionId]; s = new ModuleRuntimeSession(s.SessionId, s.ExpiresAt.AddSeconds(SessionManager.Instance.SessionDuration), s.UserId, s.Binding); sessions[sessionId] = s; return(true); } catch { } } return(false); }
protected override bool UpdateImpl(ModuleRuntimeSession session) { if (sessions.ContainsKey(session.SessionId)) { ModuleRuntimeSession tmp = sessions[session.SessionId]; if (tmp.ExpiresAt < DateTime.UtcNow) { this.ExpireImpl(session.SessionId); return(false); } tmp.SetUserBinding(session.UserId, session.Binding); return(true); } return(false); }
public bool LogIn(Guid sessionId, ICredential cred) { if (cred != null) { ModuleRuntimeSession session = SessionProvider.Get(sessionId) as ModuleRuntimeSession; if (session != null) { IUserIdentity user = AuthenticationProvider.Authenticate(cred); if (user != null) { session.SetUserBinding(Guid.Empty, session.Binding); return(SessionProvider.Update(session)); } } } return(false); }
public bool ChangePass(Guid sid, string user, string oldPass, string newPass) { if (!Guid.Empty.Equals(sid)) { ModuleRuntimeSession sess = Session.Prov.Get(sid); if (sess != null && !Guid.Empty.Equals(sess.UserId)) //user must be logged in with a session to change password { IIdentityProvider idProv = IdentityManager.Instance.GetProvider(ctx); IUserIdentity userId = idProv.Get(sess.UserId); if (userId != null) { IAuthenticationProvider authProv = AuthenticationManager.Instance.GetProvider(ctx); return(authProv.ReplaceCredential(userId, new UserPasswordCredential(user, oldPass), new UserPasswordCredential(user, newPass))); } } } return(false); }
public static Guid Get(HttpContext context) { if (context != null) { HttpRequest request = context.Request; if (request.Headers.ContainsKey(Session.SessionIdName)) { Guid ssid; if (Guid.TryParse(request.Headers[Session.SessionIdName], out ssid)) { ModuleRuntimeSession sess = Prov.Get(ssid); if (sess != null) //note that this will autoextend and will return false if expired { return(sess.SessionId); } } } } return(Guid.Empty); }
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)); } }