예제 #1
0
            private void Process()
            {
                string id = PopUserID();

                while (id != string.Empty)
                {
                    if (Crypto != null)
                    {
                        PeerAddUserRequest request = new PeerAddUserRequest();

                        request.UserID    = id;
                        request.TokenSalt = DB.GetTokenSaltFromUID(id);
                        request.PassHash  = DB.GetPassHashFromID(id);
                        request.Email     = DB.GetEmailFromID(id);

                        request.Name = Name;

                        MemoryStream ms = new MemoryStream();
                        StreamWriter sw = new StreamWriter(new CryptoStream(ms, Encrypter, CryptoStreamMode.Write));
                        sw.Write(request.UserID);
                        sw.Close();
                        ms.Close();

                        request.Key = Convert.ToBase64String(ms.GetBuffer());

                        Connection.SendMessage(request, null, null);
                    }
                    id = PopUserID();
                }
            }
예제 #2
0
        protected ChangePasswordResponce ChangePassword(ChangePasswordRequest request)
        {
            ChangePasswordResponce responce = new ChangePasswordResponce();

            responce.OK = false;

            if (Config.AllowRegistration && request != null)
            {
                string uid = GetSessionDataS(request.SessionID, ValidLoginString);

                string tokenSalt = DB.GetTokenSaltFromUID(uid);

                var crypto = CheckPassword(uid, tokenSalt, request.OldPassword);
                if (crypto != null)
                {
                    string newHash = HashPassword(request.NewPassword, Convert.ToBase64String(crypto.IV));
                    if (DB.UpdateUserPassword(uid, newHash))
                    {
                        responce.OK       = true;
                        responce.Responce = "Updated";

                        SendUserUpdate(uid);
                    }
                    else
                    {
                        responce.Responce = "Invalid New Password";
                    }
                }
                else
                {
                    responce.Responce = "Invalid Credentials";
                }
            }

            return(responce);
        }