public override async Task ExecuteAsync(CancellationToken cancellationToken) { if (_channel.State != SessionState.NotAuthenticated) { await EndWithResultAsync(_channel, CommandResult.Bad, "LOGIN not valid at this point", cancellationToken); return; } UserData userData = await _userstore.GetUserWithPasswordAsync(_userName, _password, cancellationToken); if (userData == null) { await EndWithResultAsync(_channel, CommandResult.No, "credentials rejected", cancellationToken); return; } _channel.SetAuthenticatedUser(userData); await EndWithResultAsync( _channel, CommandResult.Ok, "login comleted, now in authenticated state", cancellationToken); }