Exemplo n.º 1
0
        public SiteServiceAuthenModel GetAuthKey(Guid siteServiceId)
        {
            var siteService = siteServiceRepository.Get(siteServiceId);

            if (siteService == null)
            {
                throw new DataValidationException(MessageResource.Error_ReferenceDataNotExist, "Site service data");
            }
            var result = new SiteServiceAuthenModel()
            {
                SiteServiceId = siteService.Id,
                Key           = CryptoHelper.DecryptText(siteService.Secret)
            };

            return(result);
        }
Exemplo n.º 2
0
        public SiteServiceAuthenModel RegenerateAuthKey(Guid siteServiceId)
        {
            var siteService = siteServiceRepository.Get(siteServiceId);

            if (siteService == null)
            {
                throw new DataValidationException(MessageResource.Error_ReferenceDataNotExist, "Site service data");
            }
            siteService.Secret = CryptoHelper.EncryptText(GenerateRandom());
            unitOfWork.SaveChanges();
            var result = new SiteServiceAuthenModel()
            {
                SiteServiceId = siteService.Id,
                Key           = CryptoHelper.DecryptText(siteService.Secret)
            };

            return(result);
        }
        public AuthenticationResult AuthenticateSiteService([FromBody] SiteServiceAuthenModel request)
        {
            var siteService = unitOfWork.SiteServiceRepository.Get(request.SiteServiceId);

            if (siteService == null)
            {
                throw new DataValidationException("Site Service dose't exist");
            }
            var key           = CryptoHelper.DecryptText(siteService.Secret);
            var checksumIdStr = CryptoHelper.DecryptText(request.Key, key);

            try
            {
                var checksumId = Guid.Parse(checksumIdStr);
                if (checksumId != siteService.Id)
                {
                    throw new Exception();
                }
            }
            catch (Exception)
            {
                throw new DataValidationException("Invalid key");
            }
            var user = unitOfWork.UserRepository.GetAll().Where(t => t.Id == siteService.AuthenUserId && t.IsActive == true)
                       .FirstOrDefault();

            if (user == null)
            {
                throw new DataValidationException("Invalid user data");
            }

            var result = GetAuthResult(user);

            result.ResetPassword = (user.PasswordExpire.HasValue && user.PasswordExpire <= DateTime.Now) || user.ResetPassword == true;

            return(result);
        }