Beispiel #1
0
        public async Task <IActionResult> GetExternalLogins([FromBody][Required] GetExternalLogins getExternalLogins, CancellationToken cancellationToken = default)
        {
            var logins = await this.SecurityManager
                         .GetExternalLoginsAsync(getExternalLogins, cancellationToken);

            return(this.Ok(logins));
        }
        public async Task <IList <ExternalLoginModel> > Handle(GetExternalLogins request, CancellationToken cancellationToken)
        {
            var user = await _userManager.GetUserAsync(request.User);

            if (user == null)
            {
                return(null);
                // return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            var result = await _userManager.GetLoginsAsync(user);

            return(result.Select(x => new Models.ExternalLoginModel
            {
                LoginProvider = x.LoginProvider,
                ProviderKey = x.ProviderKey,
                ProviderDisplayName = x.ProviderDisplayName
            }).ToList());
        }
Beispiel #3
0
        public async Task <IList <ExternalLoginModel> > ExternalLogins(GetExternalLogins request)
        {
            request.User = _currentUserProvider.GetUser();

            return(await _mediator.Send(request));
        }
Beispiel #4
0
        /// <summary>
        /// Gets external logins for a user.
        /// </summary>
        /// <param name="getExternalLogins">The <see cref="GetExternalLogins"/>.</param>
        /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param>
        /// <returns>A collection of <see cref="GetExternalLogin"/>.</returns>
        public virtual async Task <IEnumerable <GetExternalLogin> > GetExternalLoginsAsync(GetExternalLogins getExternalLogins, CancellationToken cancellationToken = default)
        {
            if (getExternalLogins == null)
            {
                throw new ArgumentNullException(nameof(getExternalLogins));
            }

            var user = await this.UserManager
                       .FindByIdAsync(getExternalLogins.UserId);

            var logins = await this.UserManager
                         .GetLoginsAsync(user);

            return(logins
                   .Select(x => new GetExternalLogin
            {
                UserId = user.Id,
                ProviderKey = x.ProviderKey,
                LoginProvider = x.LoginProvider,
                AllowRemoval = user.PasswordHash != null || logins.Count > 1
            }));
        }