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