Ejemplo n.º 1
0
        public TenantInfo Find(int tenantId)
        {
            var tenant = _tenantCache.GetOrNull(tenantId);

            if (tenant == null)
            {
                return(null);
            }

            return(new TenantInfo(tenant.Id, tenant.TenancyName));
        }
Ejemplo n.º 2
0
        //[HttpGet]
        //public List<ExternalLoginProviderInfoModel> GetExternalAuthenticationProviders()
        //{
        //    return ObjectMapper.Map<List<ExternalLoginProviderInfoModel>>(_externalAuthConfiguration.Providers);
        //}

        //[HttpPost]
        //public async Task<ExternalAuthenticateResultModel> ExternalAuthenticate([FromBody] ExternalAuthenticateModel model)
        //{
        //    var externalUser = await GetExternalUserInfo(model);

        //    var loginResult = await _logInManager.LoginAsync(new UserLoginInfo(model.AuthProvider, model.ProviderKey, model.AuthProvider), GetTenancyNameOrNull());

        //    switch (loginResult.Result)
        //    {
        //        case AbpLoginResultType.Success:
        //        {
        //            var accessToken = CreateAccessToken(CreateJwtClaims(loginResult.Identity));
        //            return new ExternalAuthenticateResultModel
        //            {
        //                AccessToken = accessToken,
        //                EncryptedAccessToken = GetEncryptedAccessToken(accessToken),
        //                ExpireInSeconds = (int)_configuration.Expiration.TotalSeconds
        //            };
        //        }
        //        case AbpLoginResultType.UnknownExternalLogin:
        //        {
        //            var newUser = await RegisterExternalUserAsync(externalUser);
        //            if (!newUser.IsActive)
        //            {
        //                return new ExternalAuthenticateResultModel
        //                {
        //                    WaitingForActivation = true
        //                };
        //            }

        //            // Try to login again with newly registered user!
        //            loginResult = await _logInManager.LoginAsync(new UserLoginInfo(model.AuthProvider, model.ProviderKey, model.AuthProvider), GetTenancyNameOrNull());
        //            if (loginResult.Result != AbpLoginResultType.Success)
        //            {
        //                throw _abpLoginResultTypeHelper.CreateExceptionForFailedLoginAttempt(
        //                    loginResult.Result,
        //                    model.ProviderKey,
        //                    GetTenancyNameOrNull()
        //                );
        //            }

        //            return new ExternalAuthenticateResultModel
        //            {
        //                AccessToken = CreateAccessToken(CreateJwtClaims(loginResult.Identity)),
        //                ExpireInSeconds = (int)_configuration.Expiration.TotalSeconds
        //            };
        //        }
        //        default:
        //        {
        //            throw _abpLoginResultTypeHelper.CreateExceptionForFailedLoginAttempt(
        //                loginResult.Result,
        //                model.ProviderKey,
        //                GetTenancyNameOrNull()
        //            );
        //        }
        //    }
        //}

        //private async Task<User> RegisterExternalUserAsync(ExternalAuthUserInfo externalUser)
        //{
        //    var user = await _userRegistrationManager.RegisterAsync(
        //        externalUser.Name,
        //        externalUser.Surname,
        //        externalUser.EmailAddress,
        //        externalUser.EmailAddress,
        //        Authorization.Users.User.CreateRandomPassword(),
        //        true
        //    );

        //    user.Logins = new List<UserLogin>
        //    {
        //        new UserLogin
        //        {
        //            LoginProvider = externalUser.Provider,
        //            ProviderKey = externalUser.ProviderKey,
        //            TenantId = user.TenantId
        //        }
        //    };

        //    await CurrentUnitOfWork.SaveChangesAsync();

        //    return user;
        //}

        //private async Task<ExternalAuthUserInfo> GetExternalUserInfo(ExternalAuthenticateModel model)
        //{
        //    var userInfo = await _externalAuthManager.GetUserInfo(model.AuthProvider, model.ProviderAccessCode);
        //    if (userInfo.ProviderKey != model.ProviderKey)
        //    {
        //        throw new UserFriendlyException(L("CouldNotValidateExternalUser"));
        //    }

        //    return userInfo;
        //}



        private string GetTenancyNameOrNull()
        {
            if (!AbpSession.TenantId.HasValue)
            {
                return(null);
            }

            return(_tenantCache.GetOrNull(AbpSession.TenantId.Value)?.TenancyName);
        }