示例#1
0
        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);
        }