public RegistrationDetails(OpenAuthenticationParameters parameters)
     : this()
 {
     if (parameters.UserClaims != null)
     {
         foreach (var claim in parameters.UserClaims)
         {
             //email, username
             if (string.IsNullOrEmpty(EmailAddress))
             {
                 if (claim.Contact != null)
                 {
                     EmailAddress = claim.Contact.Email;
                     UserName     = claim.Contact.Email;
                 }
             }
             //first name
             if (string.IsNullOrEmpty(FirstName))
             {
                 if (claim.Name != null)
                 {
                     FirstName = claim.Name.First;
                 }
             }
             //last name
             if (string.IsNullOrEmpty(LastName))
             {
                 if (claim.Name != null)
                 {
                     LastName = claim.Name.Last;
                 }
             }
         }
     }
 }
 public RegistrationDetails(OpenAuthenticationParameters parameters)
     : this()
 {
     if (parameters.UserClaims != null)
         foreach (var claim in parameters.UserClaims)
         {
             //email, username
             if (string.IsNullOrEmpty(EmailAddress))
             {
                 if (claim.Contact != null)
                 {
                     EmailAddress = claim.Contact.Email;
                     UserName = claim.Contact.Email;
                 }
             }
             //first name
             if (string.IsNullOrEmpty(FirstName))
                 if (claim.Name != null)
                     FirstName = claim.Name.First;
             //last name
             if (string.IsNullOrEmpty(LastName))
                 if (claim.Name != null)
                     LastName = claim.Name.Last;
         }
 }
Пример #3
0
        public RegistrationDetails(OpenAuthenticationParameters parameters)
            : this()
        {
            if (parameters.UserClaims != null)
            {
                foreach (var claim in parameters.UserClaims)
                {
                    //email, username
                    if (string.IsNullOrEmpty(EmailAddress))
                    {
                        if (claim.Contact != null)
                        {
                            EmailAddress = claim.Contact.Email;
                            UserName     = claim.Contact.Email;
                        }
                    }
                    //first name
                    if (string.IsNullOrEmpty(FirstName))
                    {
                        if (claim.Name != null)
                        {
                            FirstName = claim.Name.First;
                        }
                    }
                    //last name
                    if (string.IsNullOrEmpty(LastName))
                    {
                        if (claim.Name != null)
                        {
                            LastName = claim.Name.Last;
                        }
                    }

                    if (string.IsNullOrWhiteSpace(AvatarUrl))
                    {
                        if (claim.Media != null && claim.Media.Images != null)
                        {
                            AvatarUrl = claim.Media.Images.Default;
                        }
                    }


                    //email, username
                    if (string.IsNullOrEmpty(Password))
                    {
                        if (claim.Password != null)
                        {
                            Password = claim.Password.Password;
                        }
                    }
                }
            }
        }
        public virtual AuthorizationResult Authorize(OpenAuthenticationParameters parameters)
        {
            var userFound = _openAuthenticationService.GetUser(parameters);

            var userLoggedIn = _workContext.CurrentCustomer;

            if (AccountAlreadyExists(userFound, userLoggedIn))
            {
                _authenticationService.SignIn(userFound, false);
            }
            else
            {
                #region Register user

                var currentCustomer = _workContext.CurrentCustomer;
                var details         = new Nop.Plugin.ExternalAuth.Weixin.Authentication.External.RegistrationDetails(parameters);
                var randomPassword  = CommonHelper.GenerateRandomDigitCode(20);

                var registrationRequest = new CustomerRegistrationRequest(currentCustomer, string.Empty, details.UserName, randomPassword, PasswordFormat.Clear, _storeContext.CurrentStore.Id, true);

                var registrationResult = _customerRegistrationService.RegisterCustomer(registrationRequest);
                if (registrationResult.Success)
                {
                    //store other parameters (form fields)
                    if (!String.IsNullOrEmpty(details.NickName))
                    {
                        _genericAttributeService.SaveAttribute(currentCustomer, SystemCustomerAttributeNames.FirstName, details.NickName);
                    }

                    userFound = currentCustomer;
                    _openAuthenticationService.AssociateExternalAccountWithUser(currentCustomer, parameters);
                    ExternalAuthorizerHelper.RemoveParameters();

                    //authenticate
                    _authenticationService.SignIn(userFound ?? userLoggedIn, false);
                }
                else
                {
                    ExternalAuthorizerHelper.RemoveParameters();

                    var result = new AuthorizationResult(OpenAuthenticationStatus.Error);
                    foreach (var error in registrationResult.Errors)
                    {
                        result.AddError(string.Format(error));
                    }

                    return(result);
                }
                #endregion
            }

            return(new AuthorizationResult(OpenAuthenticationStatus.Authenticated));
        }
Пример #5
0
 public RegistrationDetails(OpenAuthenticationParameters parameters)
     : this()
 {
     if (parameters.UserClaims != null)
         foreach (var claim in parameters.UserClaims)
         {
             if (string.IsNullOrEmpty(EmailAddress))
             {
                 EmailAddress = claim.Contact.Email;
                 UserName = claim.Contact.Email;
             }
         }
 }
Пример #6
0
 public RegistrationDetails(OpenAuthenticationParameters parameters)
     : this()
 {
     if (parameters.UserClaims != null)
     {
         foreach (var claim in parameters.UserClaims)
         {
             if (string.IsNullOrEmpty(EmailAddress))
             {
                 EmailAddress = claim.Contact.Email;
                 UserName     = claim.Contact.Email;
             }
         }
     }
 }
Пример #7
0
 /// <summary>
 /// 获取授权id昵称
 /// </summary>
 /// <param name="parameters"></param>
 public RegistrationDetails(OpenAuthenticationParameters parameters)
     : this()
 {
     if (parameters.UserClaims != null)
     {
         foreach (var claim in parameters.UserClaims)
         {
             //username
             if (string.IsNullOrEmpty(UserName) && claim.Name != null)
             {
                 UserName = claim.Name.Alias;
             }
             if (string.IsNullOrEmpty(NickName) && claim.Name != null)
             {
                 NickName = claim.Name.First;
             }
         }
     }
 }
Пример #8
0
 /// <summary>
 /// Remove the association
 /// </summary>
 /// <param name="parameters">Open authentication parameters</param>
 public void RemoveAssociation(OpenAuthenticationParameters parameters)
 {
     _openAuthenticationService.RemoveAssociation(parameters);
 }
Пример #9
0
 /// <summary>
 /// Get the particular user with specified parameters
 /// </summary>
 /// <param name="parameters">Open authentication parameters</param>
 /// <returns>Customer</returns>
 public Customer GetUser(OpenAuthenticationParameters parameters)
 {
     return(_openAuthenticationService.GetUser(parameters));
 }
Пример #10
0
 /// <summary>
 /// Check that account exists
 /// </summary>
 /// <param name="parameters">Open authentication parameters</param>
 /// <returns>True if it exists; otherwise false</returns>
 public bool AccountExists(OpenAuthenticationParameters parameters)
 {
     return(_openAuthenticationService.AccountExists(parameters));
 }
Пример #11
0
 /// <summary>
 /// Accociate external account with customer
 /// </summary>
 /// <param name="customer">Customer</param>
 /// <param name="parameters">Open authentication parameters</param>
 public void AssociateExternalAccountWithUser(Customer customer, OpenAuthenticationParameters parameters)
 {
     _openAuthenticationService.AssociateExternalAccountWithUser(customer, parameters);
 }