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); }
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); }