public async Task <IActionResult> LoginCallback(string returnUrl) { //authenticate Facebook user var authenticateResult = await this.HttpContext.AuthenticateAsync(LinkedInExternalAuthConstants.LinkedInAuthenticationScheme); if (!authenticateResult.Succeeded || !authenticateResult.Principal.Claims.Any()) { return(RedirectToRoute("Login")); } //create external authentication parameters var authenticationParameters = new ExternalAuthenticationParameters { ProviderSystemName = LinkedInExternalAuthConstants.ProviderSystemName, //AccessToken = await this.HttpContext.GetTokenAsync(FacebookDefaults.AuthenticationScheme, "oauth2_access_token"), Email = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email)?.Value, ExternalIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.NameIdentifier)?.Value, ExternalDisplayIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name)?.Value, Claims = authenticateResult.Principal.Claims.Select(claim => new ExternalAuthenticationClaim(claim.Type, claim.Value)).ToList() }; //authenticate Nop user return(_externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); }
public async Task <IActionResult> LoginCallback(string returnUrl) { var authenticateResult = await this.HttpContext.AuthenticateAsync(OAuth2AuthenticationDefaults.AuthenticationScheme); if (!authenticateResult.Succeeded || !authenticateResult.Principal.Claims.Any()) { return(RedirectToRoute("Login")); } var authenticationParameters = new ExternalAuthenticationParameters { ProviderSystemName = OAuth2AuthenticationDefaults.SystemName, AccessToken = await this.HttpContext.GetTokenAsync(OAuth2AuthenticationDefaults.AuthenticationScheme, OAuth2AuthenticationDefaults.AccessTokenName), Email = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email)?.Value, ExternalIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.NameIdentifier)?.Value, ExternalDisplayIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name)?.Value, Claims = authenticateResult.Principal.Claims.Select(claim => new ExternalAuthenticationClaim(claim.Type, claim.Value)).ToList() }; return(_externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); }
public async Task <IActionResult> LoginCallback(string returnUrl) { string authenticationName = string.Empty; var urlPath = _httpContextAccessor.HttpContext.Request.Path; if (urlPath.HasValue) { var socialMediaList = new SocialMediaList(); authenticationName = socialMediaList.SocialMedias.Where(x => "/" + x.CallBackPath.ToLower() == urlPath.Value).Select(x => x.Name).FirstOrDefault(); } //authenticate social user var authenticateResult = await this.HttpContext.AuthenticateAsync(authenticationName); if (!authenticateResult.Succeeded || !authenticateResult.Principal.Claims.Any()) { return(RedirectToRoute("Login")); } string email = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email)?.Value; if (string.IsNullOrEmpty(email)) { email = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name)?.Value + "@" + authenticateResult.Principal.Identity.AuthenticationType + ".com"; } //create external authentication parameters var authenticationParameters = new ExternalAuthenticationParameters { ProviderSystemName = AuthenticationDefaults.PluginSystemName, AccessToken = await this.HttpContext.GetTokenAsync(authenticationName, "access_token"), Email = email, ExternalIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.NameIdentifier)?.Value, ExternalDisplayIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name)?.Value, Claims = authenticateResult.Principal.Claims.Select(claim => new ExternalAuthenticationClaim(claim.Type, claim.Value)).ToList() }; //authenticate Nop user return(_externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); }
public async Task <IActionResult> FacebookLoginCallback(string returnUrl) { //authenticate Facebook user var authenticateResult = await HttpContext.AuthenticateAsync(FacebookDefaults.AuthenticationScheme); if (!authenticateResult.Succeeded || !authenticateResult.Principal.Claims.Any()) { return(RedirectToRoute("Login")); } //create external authentication parameters var authenticationParameters = new ExternalAuthParam { ProviderSystemName = FacebookAuthenticationDefaults.ProviderSystemName, AccessToken = await HttpContext.GetTokenAsync(FacebookDefaults.AuthenticationScheme, "access_token"), Email = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email)?.Value, Identifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.NameIdentifier)?.Value, Name = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name)?.Value, Claims = authenticateResult.Principal.Claims.ToList() }; //authenticate Grand user return(await _externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); }
public async Task <IActionResult> LoginCallback(string returnUrl) { //authenticate Facebook user var authenticateResult = await this.HttpContext.AuthenticateAsync(LinkedInAuthenticationDefaults.LINKED_IN_AUTHENTICATION_SCHEME); if (!authenticateResult.Succeeded || !authenticateResult.Principal.Claims.Any()) { return(RedirectToRoute("Login")); } //create external authentication parameters var authenticationParameters = new ExternalAuthenticationParameters { ProviderSystemName = LinkedInAuthenticationDefaults.PROVIDER_SYSTEM_NAME, Email = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email)?.Value, ExternalIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.NameIdentifier)?.Value, ExternalDisplayIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name)?.Value, Claims = authenticateResult.Principal.Claims.Select(claim => new ExternalAuthenticationClaim(claim.Type, claim.Value)).ToList() }; //authenticate Nop user return(_externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); }
public async Task <IActionResult> LoginCallback(string returnUrl) { //authenticate Facebook user var authenticateResult = await this.HttpContext.AuthenticateAsync(OpenIdConnectDefaults.AuthenticationScheme); if (!authenticateResult.Succeeded || !authenticateResult.Principal.Claims.Any()) { return(RedirectToRoute("IdentityServerLogin")); } //create external authentication parameters var authenticationParameters = new ExternalAuthenticationParameters { ProviderSystemName = IdentityServerAuthenticationDefaults.ProviderSystemName, AccessToken = await this.HttpContext.GetTokenAsync(OpenIdConnectDefaults.AuthenticationScheme, "access_token"), Email = authenticateResult.Principal.FindFirst(claim => claim.Type == "email")?.Value, ExternalIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == "sub")?.Value, ExternalDisplayIdentifier = authenticateResult.Principal.FindFirst(claim => claim.Type == "name")?.Value, Claims = authenticateResult.Principal.Claims.Select(claim => new ExternalAuthenticationClaim(claim.Type, claim.Value)).ToList() }; //authenticate Nop user return(_externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); }
public IActionResult SignIn(SignInViewModel model, string returnUrl) { if (!_authenticationPluginManager .IsPluginActive("ExternalAuth.NovellActiveDirectory", _workContext.CurrentCustomer, _storeContext.CurrentStore.Id)) { throw new NopException("Novell Active Directory authentication module cannot be loaded"); } if (string.IsNullOrEmpty(_novellActiveDirectoryExternalAuthSettings.LdapPath)) { throw new NopException("Novell Active Directory authentication module not configured"); } IActionResult result; if (string.IsNullOrEmpty(model.AdUserName)) { ExternalAuthorizerHelper.AddErrorsToDisplay(_localizationService.GetResource("Plugins.ExternalAuth.NovellActiveDirectory.WindowsUserNotAvailable")); result = new RedirectToActionResult("Login", "Customer", (!string.IsNullOrEmpty(returnUrl)) ? new { ReturnUrl = returnUrl } : null); } else { LdapUser ldapUser; try { ldapUser = _ldapService.GetUserByUserName(model.AdUserName); if (null == ldapUser) { ExternalAuthorizerHelper.AddErrorsToDisplay(_localizationService.GetResource("Plugins.ExternalAuth.NovellActiveDirectory.UserNotFound")); return(new RedirectToActionResult("Login", "Customer", (!string.IsNullOrEmpty(returnUrl)) ? new { ReturnUrl = returnUrl } : null)); } } catch (Exception e) { ExternalAuthorizerHelper.AddErrorsToDisplay(_localizationService.GetResource("Plugins.ExternalAuth.NovellActiveDirectory.LdapError : " + e)); return(new RedirectToActionResult("Login", "Customer", (!string.IsNullOrEmpty(returnUrl)) ? new { ReturnUrl = returnUrl } : null)); } try { bool flag6 = _ldapService.Authenticate(ldapUser.DistinguishedName, model.AdPassword); if (flag6) { ExternalAuthenticationParameters authenticationParameters = new ExternalAuthenticationParameters { ProviderSystemName = "ExternalAuth.NovellActiveDirectory", AccessToken = Guid.NewGuid().ToString(), Email = ldapUser.Email, ExternalIdentifier = ldapUser.Email, ExternalDisplayIdentifier = ldapUser.Email }; return(_externalAuthenticationService.Authenticate(authenticationParameters, returnUrl)); } } catch (Exception e) { ExternalAuthorizerHelper.AddErrorsToDisplay(_localizationService.GetResource("Plugins.ExternalAuth.NovellActiveDirectory.LdapError : " + "auth " + e)); return(new RedirectToActionResult("Login", "Customer", (!string.IsNullOrEmpty(returnUrl)) ? new { ReturnUrl = returnUrl } : null)); } } ExternalAuthorizerHelper.AddErrorsToDisplay( _localizationService.GetResource("Plugins.ExternalAuth.NovellActiveDirectory.LdapError")); result = new RedirectToActionResult("Login", "Customer", (!string.IsNullOrEmpty(returnUrl)) ? new { ReturnUrl = returnUrl } : null); return(result); }