private void HandleMessage(PasswordRequestMessage message) { var verifed = false; var args = new PasswordUserAuthArgs(_session, message.Username, message.Password); if (UserAuth != null) { UserAuth(this, args); verifed = args.Result; } if (verifed) { _session.RegisterService(message.ServiceName, args); Succeed?.Invoke(this, message.ServiceName); _session.SendMessage(new SuccessMessage()); return; } else { _session.SendMessage(new FailureMessage()); // throw new SshConnectionException("Authentication fail.", DisconnectReason.NoMoreAuthMethodsAvailable); } }
private void HandleMessage(PasswordRequestMessage message) { var verifed = false; var args = new UserauthArgs(_session, message.Username, message.Password); if (Userauth != null) { Userauth(this, args); verifed = args.Result; } if (verifed) { _session.RegisterService(message.ServiceName, args); Succeed?.Invoke(this, message.ServiceName); _session.SendMessage(new SuccessMessage()); return; } else { _session.SendMessage(new FailureMessage()); } }
public void MustHandlePasswordRequestCorrectly() { var passwordRequested = false; var purpose = PasswordRequestPurpose.LocalAdministrator; var requestId = Guid.NewGuid(); var resetEvent = new AutoResetEvent(false); sut.PasswordRequested += (args) => { passwordRequested = args.Purpose == purpose && args.RequestId == requestId; resetEvent.Set(); }; sut.AuthenticationToken = Guid.Empty; var token = sut.Connect(Guid.Empty).CommunicationToken.Value; var message = new PasswordRequestMessage(purpose, requestId) { CommunicationToken = token }; var response = sut.Send(message); resetEvent.WaitOne(); Assert.IsTrue(passwordRequested); Assert.IsNotNull(response); Assert.IsInstanceOfType(response, typeof(SimpleResponse)); Assert.AreEqual(SimpleResponsePurport.Acknowledged, (response as SimpleResponse)?.Purport); }
private void HandleMessage(PasswordRequestMessage message) { var args = new UserauthArgs(null, null, null); if (this.Session.AuthenticationMethods == null || !this.Session.AuthenticationMethods.ContainsKey(AuthenticationMethod.Password)) { this.Session.SendMessage(new FailureMessage()); return; } // Handle authentication here if (message.Password != "password") { this.Session.SendMessage(new FailureMessage()); return; } this.AuthenticationSuccessful(message, args, AuthenticationMethod.Password); }