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();
}
});
}