public IActionResult GetAppPools(long timestamp, string sign)
        {
            if (IsSignParameter())
            {
                SortedDictionary <string, string> keys = new SortedDictionary <string, string>();
                keys[nameof(timestamp)] = timestamp.ToString();
                if (GetSignHash(keys).Equals(sign, System.StringComparison.CurrentCultureIgnoreCase) == false)
                {
                    return(StatusCode(404));
                }
            }
            var r = IISUtil.GetAppPools();

            return(Json(r));
        }
        public IActionResult DeleteVirtualDirectory(string siteName, string directoryName, long timestamp, string sign)
        {
            if (IsSignParameter())
            {
                SortedDictionary <string, string> keys = new SortedDictionary <string, string>();
                keys[nameof(siteName)]      = siteName.ToString();
                keys[nameof(directoryName)] = directoryName.ToString();
                keys[nameof(timestamp)]     = timestamp.ToString();
                if (GetSignHash(keys).Equals(sign, System.StringComparison.CurrentCultureIgnoreCase) == false)
                {
                    return(StatusCode(404));
                }
            }
            var b = IISUtil.DeleteVirtualDirectory(siteName, directoryName);

            return(Json(b));
        }
        public IActionResult CreateAppPool(string poolName, string version, bool isClassic, long timestamp, string sign)
        {
            if (IsSignParameter())
            {
                SortedDictionary <string, string> keys = new SortedDictionary <string, string>();
                keys[nameof(poolName)]  = poolName.ToString();
                keys[nameof(version)]   = version.ToString();
                keys[nameof(isClassic)] = isClassic.ToString();
                keys[nameof(timestamp)] = timestamp.ToString();
                if (GetSignHash(keys).Equals(sign, System.StringComparison.CurrentCultureIgnoreCase) == false)
                {
                    return(StatusCode(404));
                }
            }
            var b = IISUtil.CreateAppPool(poolName, version, isClassic);

            return(Json(b));
        }
        public IActionResult AddBinding(string siteName, string protocol, string bindingInformation, string certificateName, long timestamp, string sign)
        {
            if (IsSignParameter())
            {
                SortedDictionary <string, string> keys = new SortedDictionary <string, string>();
                keys[nameof(siteName)]           = siteName.ToString();
                keys[nameof(protocol)]           = protocol.ToString();
                keys[nameof(bindingInformation)] = bindingInformation.ToString();
                keys[nameof(certificateName)]    = certificateName.ToString();
                keys[nameof(timestamp)]          = timestamp.ToString();
                if (GetSignHash(keys).Equals(sign, System.StringComparison.CurrentCultureIgnoreCase) == false)
                {
                    return(StatusCode(404));
                }
            }

            var b = IISUtil.AddBinding(siteName, protocol, bindingInformation, certificateName);

            return(Json(b));
        }
 public IActionResult RecycleAppPool(string poolName, long timestamp, string sign)
 {
     if (IsSignParameter())
     {
         SortedDictionary <string, string> keys = new SortedDictionary <string, string>();
         keys[nameof(poolName)]  = poolName.ToString();
         keys[nameof(timestamp)] = timestamp.ToString();
         if (GetSignHash(keys).Equals(sign, System.StringComparison.CurrentCultureIgnoreCase) == false)
         {
             return(StatusCode(404));
         }
     }
     try
     {
         IISUtil.RecycleAppPool(poolName);
         return(Ok());
     }
     catch (Exception ex)
     {
     }
     return(StatusCode(404));
 }