protected void btnAuthenticate_Click(object sender, EventArgs e) { string[] urls = txtUrls.Text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); txtUrls.Text = ""; foreach (string url in urls) { string urlWithoutHash = URLHelper.RemoveParameterFromUrl(url, "hash"); string newUrl = HttpUtility.UrlDecode(urlWithoutHash); string query = URLHelper.GetQuery(newUrl).TrimStart('?'); int index = newUrl.IndexOfCSafe("/rest"); if (index >= 0) { // Extract the domain string domain = URLHelper.GetDomain(newUrl); // Separate the query newUrl = URLHelper.RemoveQuery(newUrl.Substring(index)); // Rewrite the URL to physical URL string[] rewritten = BaseRESTService.RewriteRESTUrl(newUrl, query, domain, "GET"); newUrl = rewritten[0].TrimStart('~') + "?" + rewritten[1]; // Get the hash from real URL txtUrls.Text += URLHelper.AddParameterToUrl(urlWithoutHash, "hash", RESTService.GetHashForURL(newUrl, domain)) + Environment.NewLine; } else { txtUrls.Text += url + Environment.NewLine; } } }
/// <summary> /// Generate the secure URL (original URL with hash) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void HashGenerateSecureUrl(object sender, ObjectEventArgs e) { var url = e.Object.GetStringValue("HashUrl", string.Empty); var hashSecureUrl = ""; var urlWithoutHash = URLHelper.RemoveParameterFromUrl(url, "hash"); var newUrl = HttpUtility.UrlDecode(urlWithoutHash); var query = URLHelper.GetQuery(newUrl).TrimStart('?'); int index = newUrl.IndexOfCSafe("/rest", true); if (index >= 0) { var domain = URLHelper.GetDomain(newUrl); newUrl = URLHelper.RemoveQuery(newUrl.Substring(index)); var rewritten = BaseRESTService.RewriteRESTUrl(newUrl, query, domain, "GET"); newUrl = rewritten[0].TrimStart('~') + "?" + rewritten[1]; hashSecureUrl += URLHelper.AddParameterToUrl(urlWithoutHash, "hash", RESTService.GetHashForURL(newUrl, domain)) + Environment.NewLine; e.Object.SetValue("HashSecureUrl", hashSecureUrl); } }