Renci.SshNet.PasswordAuthenticationMethod.Session_UserAuthenticationPasswordChangeRequiredReceived C# (CSharp) Method

Session_UserAuthenticationPasswordChangeRequiredReceived() private method

private Session_UserAuthenticationPasswordChangeRequiredReceived ( object sender, MessageEventArgs e ) : void
sender object
e MessageEventArgs
return void
        private void Session_UserAuthenticationPasswordChangeRequiredReceived(object sender, MessageEventArgs<PasswordChangeRequiredMessage> e)
        {
            _session.UnRegisterMessage("SSH_MSG_USERAUTH_PASSWD_CHANGEREQ");

            ThreadAbstraction.ExecuteThread(() =>
            {
                try
                {
                    var eventArgs = new AuthenticationPasswordChangeEventArgs(Username);

                    //  Raise an event to allow user to supply a new password
                    if (PasswordExpired != null)
                    {
                        PasswordExpired(this, eventArgs);
                    }

                    //  Send new authentication request with new password
                    _session.SendMessage(new RequestMessagePassword(ServiceName.Connection, Username, _password, eventArgs.NewPassword));
                }
                catch (Exception exp)
                {
                    _exception = exp;
                    _authenticationCompleted.Set();
                }
            });
        }