Mercurial > pub > bltoolkit
diff Demo/Asp.Net/Web/App_Code/WebUtility.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Demo/Asp.Net/Web/App_Code/WebUtility.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,59 @@ +using System; +using System.Text.RegularExpressions; +using System.Web; +using System.Web.Caching; +using System.Configuration; + +using PetShop.BusinessLogic; + +namespace PetShop.Web +{ + /// <summary> + /// Collection of utility methods for web tier + /// </summary> + public static class WebUtility + { + /// <summary> + /// Method to make sure that user's inputs are not malicious + /// </summary> + /// <param name="text">User's Input</param> + /// <param name="maxLength">Maximum length of input</param> + /// <returns>The cleaned up version of the input</returns> + public static string InputText(string text, int maxLength) + { + text = text.Trim(); + + if (string.IsNullOrEmpty(text)) + return string.Empty; + + text = Regex.Replace(text, "[\\s]{2,}", " "); // two or more spaces + text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|\\n)*?>)", "\n"); // <br> + text = Regex.Replace(text, "(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", " "); // + text = Regex.Replace(text, "<(.|\\n)*?>", string.Empty); // any other tags + text = text.Replace("'", "''"); + + if (text.Length > maxLength) + text = text.Substring(0, maxLength); + + return text; + } + + /// <summary> + /// Method to check whether input has other characters than numbers + /// </summary> + public static string CleanNonWord(string text) + { + return Regex.Replace(text, "\\W", ""); + } + + /// <summary> + /// Method to redirect user to search page + /// </summary> + /// <param name="key">Search keyword</param> + public static void SearchRedirect(string key) + { + HttpContext.Current.Response.Redirect( + string.Format("~/Search.aspx?keywords={0}", InputText(key, 255))); + } + } +}