public void ValidatePassword(InputFieldValueChangedEvent e, PasswordInputNode passwordInput, [JoinByScreen] SingleNode <UidIndicatorComponent> uid, [JoinByScreen] SingleNode <PasswordErrorsComponent> strings)
 {
     if (passwordInput.inputField.Input == uid.component.Uid)
     {
         passwordInput.esm.Esm.ChangeState <InputFieldStates.InvalidState>();
         passwordInput.inputField.ErrorMessage = strings.component.PasswordEqualsLogin;
         passwordInput.interactivityPrerequisiteEsm.Esm.ChangeState <InteractivityPrerequisiteStates.NotAcceptableState>();
     }
 }
        public void Continue(ButtonClickEvent e, SingleNode <ContinueButtonComponent> buton, [JoinByScreen] SingleNode <EnterNewPasswordScreenComponent> screen, [JoinByScreen] PasswordInputNode password, [JoinAll] SingleNode <SessionSecurityPublicComponent> session)
        {
            byte[] digest = PasswordSecurityUtils.GetDigest(password.inputField.Input);
            RequestChangePasswordEvent eventInstance = new RequestChangePasswordEvent {
                HardwareFingerprint = HardwareFingerprintUtils.HardwareFingerprint,
                PasswordDigest      = PasswordSecurityUtils.RSAEncryptAsString(session.component.PublicKey, digest)
            };

            base.ScheduleEvent(eventInstance, session);
            screen.Entity.AddComponent <LockedScreenComponent>();
            session.Entity.AddComponent(new AutoLoginTokenAwaitingComponent(digest));
        }