private void ValueEncryption(JValue value, EncryptionEnum encryption)
 {
     if (value.Value != null)
     {
         if (encryption == EncryptionEnum.Encrypt)
         {
             value.Value = DependencyRegistar.Resolve <ICryptographicService>().GetEncryptedValue(value.Value.ToString());
         }
         else
         {
             value.Value = DependencyRegistar.Resolve <ICryptographicService>().GetDecryptedValue(value.Value.ToString());
         }
     }
 }
        private Uri UriEncryption(string url)
        {
            var uri        = new Uri(url);
            var uriBuilder = new UriBuilder(uri);

            var queryStringParams = uri.ParseQueryString();

            if (queryStringParams.Keys.Count > 0)
            {
                for (int i = 0; i < queryStringParams.Count; i++)
                {
                    if (queryStringParams.Keys[i].ToString().EndsWith("id", StringComparison.InvariantCultureIgnoreCase) ||
                        queryStringParams.Keys[i].ToString().EndsWith("ids", StringComparison.InvariantCultureIgnoreCase))
                    {
                        queryStringParams.Set(queryStringParams.Keys[i], DependencyRegistar.Resolve <ICryptographicService>().GetDecryptedValue(queryStringParams[i]));
                    }
                }

                uriBuilder.Query = queryStringParams.ToString();
            }

            return(uriBuilder.Uri);
        }
        protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var isEncryptionEnabled = DependencyRegistar.Resolve <IConfigurationManager>().GetAppSetting <bool>("IsEncryptionEnabled");

            if (isEncryptionEnabled)
            {
                request.RequestUri = UriEncryption(request.RequestUri.AbsoluteUri);

                if (request.Content != null)
                {
                    request.Content = ContentEncryption(await request.Content.ReadAsStringAsync(), EncryptionEnum.Decrypt);
                }
            }

            var response = await base.SendAsync(request, cancellationToken);

            if (isEncryptionEnabled && response.Content != null)
            {
                response.Content = ContentEncryption(await response.Content.ReadAsStringAsync(), EncryptionEnum.Encrypt);
            }

            return(response);
        }
Example #4
0
 //Configurating SimpleInjector
 public void ConfigureDI(HttpConfiguration config)
 {
     DependencyRegistar.Initialize(config);
 }