Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 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);
 }
Esempio n. 9
0
        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);
 }
Esempio n. 11
0
 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);
 }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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));
            }
        }