static string ParseUrl(string value, Uri url) { string EndVal = ""; try { if (value.Contains("?") || value.Contains("<") || value.Contains(">") || value.Contains(":") || value.Contains(";")) { EndVal = ""; } else if (value.Substring(0, 1) == "/" && value.Substring(0, 2) != "//") { EndVal = url.Scheme + "://" + url.Host + Path.GetDirectoryName(url.AbsolutePath) + value; } else if (value.Substring(0, 2) == "//") { EndVal = url.Scheme + ":" + value + Path.GetDirectoryName(url.AbsolutePath); } else if (value.Substring(0, 1) == "#" || value.Contains("#")) { EndVal = ""; } //else if (value.Substring(0, 11) == "javascript:") //{ // EndVal = ""; //} //else if (value.Substring(0, 7) == "mailto:") //{ // EndVal = ""; //} //else if (value.Substring(0, 4) == "tel:") //{ // EndVal = ""; //} else if (value.Substring(0, 6) == "../../") { value = value.Substring(6); EndVal = url.Scheme + "://" + url.Host + Path.GetFullPath(Path.Combine(url.AbsolutePath, @"..\..\..\")).Substring(2) + value; } else if (value.Substring(0, 2) == "./") { value = value.Substring(1); EndVal = url.Scheme + "://" + url.Host + Path.GetDirectoryName(url.AbsolutePath) + value; } else if (value.Substring(0, 3) == "../") { value = value.Substring(3); EndVal = url.Scheme + "://" + url.Host + Path.GetFullPath(Path.Combine(url.AbsolutePath, @"..\..\")).Substring(2) + value; } else if (value.Substring(0, 5) != "https" && value.Substring(0, 4) != "http") { EndVal = url.Scheme + "://" + url.Host + Path.GetDirectoryName(url.AbsolutePath) + "/" + value; } else { EndVal = value; } } catch (ArgumentOutOfRangeException ex) { Errors.Add(ex.Message); } EndVal = EndVal.Replace("\\", "/"); return(EndVal); }