Ejemplo n.º 1
0
        private void PostCommandChangePassword(HttpEntityManager http, UriTemplateMatch match, string s)
        {
            if (_httpForwarder.ForwardRequest(http))
            {
                return;
            }
            var envelope = CreateReplyEnvelope <UserManagementMessage.UpdateResult>(http);
            var login    = match.BoundVariables["login"];
            var data     = http.RequestCodec.From <ChangePasswordData>(s);
            var message  = new UserManagementMessage.ChangePassword(
                envelope, http.User, login, data.CurrentPassword, data.NewPassword);

            Publish(message);
        }
Ejemplo n.º 2
0
        public void Handle(UserManagementMessage.ChangePassword message)
        {
            string hash;
            string salt;

            _passwordHashAlgorithm.Hash(message.NewPassword, out hash, out salt);
            ReadUpdateWriteReply(
                message, data => {
                if (_passwordHashAlgorithm.Verify(message.CurrentPassword, data.Hash, data.Salt))
                {
                    return(data.SetPassword(hash, salt));
                }

                ReplyUnauthorized(message);
                return(null);
            }, resetPasswordCache: true);
        }
Ejemplo n.º 3
0
        private void PostCommandChangePassword(HttpEntityManager http, UriTemplateMatch match)
        {
            if (_httpForwarder.ForwardRequest(http))
            {
                return;
            }
            var envelope = CreateReplyEnvelope <UserManagementMessage.UpdateResult>(http);

            http.ReadTextRequestAsync(
                (o, s) => {
                var login   = match.BoundVariables["login"];
                var data    = http.RequestCodec.From <ChangePasswordData>(s);
                var message = new UserManagementMessage.ChangePassword(
                    envelope, http.User, login, data.CurrentPassword, data.NewPassword);
                Publish(message);
            },
                x => Log.Debug(x, "Reply Text Content Failed."));
        }