public string EncodePermalink(string link, bool rooted) { var request = HttpContext.Current.Request; if (rooted) { var appPath = request.ApplicationPath; if (appPath.Equals("/")) { appPath = string.Empty; } return(string.Format("{0}://{1}{2}/default.aspx?_link={3}", request.Url.Scheme, request.Url.Authority, appPath, HttpUtility.UrlEncode(StringEncryptor.ToString(link)))); } else { var linkSegments = link.Split('?'); var arguments = string.Empty; if (linkSegments.Length > 1) { arguments = linkSegments[1]; } return(string.Format("{0}?_link={1}", linkSegments[0], HttpUtility.UrlEncode(StringEncryptor.FromString(arguments)))); } }