1. using System;  
    using System.Text;  
    using System.Web;  
    using System.Text.RegularExpressions;  
      
    namespace DTcms.Common  
    {  
        /// <summary>  
        /// Request操作类  
        /// </summary>  
        public class DTRequest  
        {  
            /// <summary>  
            /// 判断当前页面是否接收到了Post请求  
            /// </summary>  
            /// <returns>是否接收到了Post请求</returns>  
            public static bool IsPost()  
            {  
                return HttpContext.Current.Request.HttpMethod.Equals("POST");  
            }  
      
            /// <summary>  
            /// 判断当前页面是否接收到了Get请求  
            /// </summary>  
            /// <returns>是否接收到了Get请求</returns>  
            public static bool IsGet()  
            {  
                return HttpContext.Current.Request.HttpMethod.Equals("GET");  
            }  
      
            /// <summary>  
            /// 返回指定的服务器变量信息  
            /// </summary>  
            /// <param name="strName">服务器变量名</param>  
            /// <returns>服务器变量信息</returns>  
            public static string GetServerString(string strName)  
            {  
                if (HttpContext.Current.Request.ServerVariables[strName] == null)  
                    return "";  
      
                return HttpContext.Current.Request.ServerVariables[strName].ToString();  
            }  
      
            /// <summary>  
            /// 返回上一个页面的地址  
            /// </summary>  
            /// <returns>上一个页面的地址</returns>  
            public static string GetUrlReferrer()  
            {  
                string retVal = null;  
          
                try  
                {  
                    retVal = HttpContext.Current.Request.UrlReferrer.ToString();  
                }  
                catch{}  
                  
                if (retVal == null)  
                    return "";  
          
                return retVal;  
            }  
              
            /// <summary>  
            /// 得到当前完整主机头  
            /// </summary>  
            /// <returns></returns>  
            public static string GetCurrentFullHost()  
            {  
                HttpRequest request = System.Web.HttpContext.Current.Request;  
                if (!request.Url.IsDefaultPort)  
                    return string.Format("{0}:{1}", request.Url.Host, request.Url.Port.ToString());  
      
                return request.Url.Host;  
            }  
      
            /// <summary>  
            /// 得到主机头  
            /// </summary>  
            public static string GetHost()  
            {  
                return HttpContext.Current.Request.Url.Host;  
            }  
      
            /// <summary>  
            /// 得到主机名  
            /// </summary>  
            public static string GetDnsSafeHost()  
            {  
                return HttpContext.Current.Request.Url.DnsSafeHost;  
            }  
      
            /// <summary>  
            /// 获取当前请求的原始 URL(URL 中域信息之后的部分,包括查询字符串(如果存在))  
            /// </summary>  
            /// <returns>原始 URL</returns>  
            public static string GetRawUrl()  
            {  
                return HttpContext.Current.Request.RawUrl;  
            }  
      
            /// <summary>  
            /// 判断当前访问是否来自浏览器软件  
            /// </summary>  
            /// <returns>当前访问是否来自浏览器软件</returns>  
            public static bool IsBrowserGet()  
            {  
                string[] BrowserName = {"ie", "opera", "netscape", "mozilla", "konqueror", "firefox"};  
                string curBrowser = HttpContext.Current.Request.Browser.Type.ToLower();  
                for (int i = 0; i < BrowserName.Length; i++)  
                {  
                    if (curBrowser.IndexOf(BrowserName[i]) >= 0)  
                        return true;  
                }  
                return false;  
            }  
      
            /// <summary>  
            /// 判断是否来自搜索引擎链接  
            /// </summary>  
            /// <returns>是否来自搜索引擎链接</returns>  
            public static bool IsSearchEnginesGet()  
            {  
                if (HttpContext.Current.Request.UrlReferrer == null)  
                    return false;  
      
                string[] SearchEngine = {"google", "yahoo", "msn", "baidu", "sogou", "sohu", "sina", "163", "lycos", "tom", "yisou", "iask", "soso", "gougou", "zhongsou"};  
                string tmpReferrer = HttpContext.Current.Request.UrlReferrer.ToString().ToLower();  
                for (int i = 0; i < SearchEngine.Length; i++)  
                {  
                    if (tmpReferrer.IndexOf(SearchEngine[i]) >= 0)  
                        return true;  
                }  
                return false;  
            }  
      
            /// <summary>  
            /// 获得当前完整Url地址  
            /// </summary>  
            /// <returns>当前完整Url地址</returns>  
            public static string GetUrl()  
            {  
                return HttpContext.Current.Request.Url.ToString();  
            }  
      
            /// <summary>  
            /// 获得指定Url参数的值  
            /// </summary>  
            /// <param name="strName">Url参数</param>  
            /// <returns>Url参数的值</returns>  
            public static string GetQueryString(string strName)  
            {  
                return GetQueryString(strName, false);  
            }  
      
            /// <summary>  
            /// 获得指定Url参数的值  
            /// </summary>   
            /// <param name="strName">Url参数</param>  
            /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>  
            /// <returns>Url参数的值</returns>  
            public static string GetQueryString(string strName, bool sqlSafeCheck)  
            {  
                if (HttpContext.Current.Request.QueryString[strName] == null)  
                    return "";  
      
                if (sqlSafeCheck && !Utils.IsSafeSqlString(HttpContext.Current.Request.QueryString[strName]))  
                    return "unsafe string";  
      
                return HttpContext.Current.Request.QueryString[strName];  
            }  
      
      
            public static int GetQueryIntValue(string strName)  
            {  
                return GetQueryIntValue(strName, 0);  
            }  
      
            /// <summary>  
            /// 返回指定URL的参数值(Int型)  
            /// </summary>  
            /// <param name="strName">URL参数</param>  
            /// <param name="defaultvalue">默认值</param>  
            /// <returns>返回指定URL的参数值</returns>  
            public static int GetQueryIntValue(string strName, int defaultvalue)  
            {  
                if (HttpContext.Current.Request.QueryString[strName] == null || HttpContext.Current.Request.QueryString[strName].ToString() == string.Empty)  
                    return defaultvalue;  
                else  
                {  
                    Regex obj = new Regex("\\d+");  
                    Match objmach = obj.Match(HttpContext.Current.Request.QueryString[strName].ToString());  
                    if (objmach.Success)  
                        return Convert.ToInt32(objmach.Value);  
                    else  
                        return defaultvalue;  
                }  
            }  
      
      
            public static string GetQueryStringValue(string strName)  
            {  
                return GetQueryStringValue(strName, string.Empty);  
            }  
      
            /// <summary>  
            /// 返回指定URL的参数值(String型)  
            /// </summary>  
            /// <param name="strName">URL参数</param>  
            /// <param name="defaultvalue">默认值</param>  
            /// <returns>返回指定URL的参数值</returns>  
            public static string GetQueryStringValue(string strName, string defaultvalue)  
            {  
                if (HttpContext.Current.Request.QueryString[strName] == null || HttpContext.Current.Request.QueryString[strName].ToString() == string.Empty)  
                    return defaultvalue;  
                else  
                {  
                    Regex obj = new Regex("\\w+");  
                    Match objmach = obj.Match(HttpContext.Current.Request.QueryString[strName].ToString());  
                    if (objmach.Success)  
                        return objmach.Value;  
                    else  
                        return defaultvalue;  
                }  
            }  
            /// <summary>  
            /// 获得当前页面的名称  
            /// </summary>  
            /// <returns>当前页面的名称</returns>  
            public static string GetPageName()  
            {  
                string [] urlArr = HttpContext.Current.Request.Url.AbsolutePath.Split('/');  
                return urlArr[urlArr.Length - 1].ToLower();  
            }  
      
            /// <summary>  
            /// 返回表单或Url参数的总个数  
            /// </summary>  
            /// <returns></returns>  
            public static int GetParamCount()  
            {  
                return HttpContext.Current.Request.Form.Count + HttpContext.Current.Request.QueryString.Count;  
            }  
      
            /// <summary>  
            /// 获得指定表单参数的值  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <returns>表单参数的值</returns>  
            public static string GetFormString(string strName)  
            {  
                return GetFormString(strName, false);  
            }  
      
            /// <summary>  
            /// 获得指定表单参数的值  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>  
            /// <returns>表单参数的值</returns>  
            public static string GetFormString(string strName, bool sqlSafeCheck)  
            {  
                if (HttpContext.Current.Request.Form[strName] == null)  
                    return "";  
      
                if (sqlSafeCheck && !Utils.IsSafeSqlString(HttpContext.Current.Request.Form[strName]))  
                    return "unsafe string";  
      
                return HttpContext.Current.Request.Form[strName];  
            }  
            /// <summary>  
            /// 返回指定表单的参数值(Int型)  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <returns>返回指定表单的参数值(Int型)</returns>  
            public static int GetFormIntValue(string strName)  
            {  
                return GetFormIntValue(strName, 0);  
            }  
            /// <summary>  
            /// 返回指定表单的参数值(Int型)  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <param name="defaultvalue">默认值</param>  
            /// <returns>返回指定表单的参数值</returns>  
            public static int GetFormIntValue(string strName, int defaultvalue)  
            {  
                if (HttpContext.Current.Request.Form[strName] == null || HttpContext.Current.Request.Form[strName].ToString() == string.Empty)  
                    return defaultvalue;  
                else  
                {  
                    Regex obj = new Regex("\\d+");  
                    Match objmach = obj.Match(HttpContext.Current.Request.Form[strName].ToString());  
                    if (objmach.Success)  
                        return Convert.ToInt32(objmach.Value);  
                    else  
                        return defaultvalue;  
                }  
            }  
         /// <summary>  
            /// 返回指定表单的参数值(String型)  
         /// </summary>  
         /// <param name="strName">表单参数</param>  
            /// <returns>返回指定表单的参数值(String型)</returns>  
            public static string GetFormStringValue(string strName)  
            {  
                return GetQueryStringValue(strName, string.Empty);  
            }  
            /// <summary>  
            /// 返回指定表单的参数值(String型)  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <param name="defaultvalue">默认值</param>  
            /// <returns>返回指定表单的参数值</returns>  
            public static string GetFormStringValue(string strName, string defaultvalue)  
            {  
                if (HttpContext.Current.Request.Form[strName] == null || HttpContext.Current.Request.Form[strName].ToString() == string.Empty)  
                    return defaultvalue;  
                else  
                {  
                    Regex obj = new Regex("\\w+");  
                    Match objmach = obj.Match(HttpContext.Current.Request.Form[strName].ToString());  
                    if (objmach.Success)  
                        return objmach.Value;  
                    else  
                        return defaultvalue;  
                }  
            }  
      
            /// <summary>  
            /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值  
            /// </summary>  
            /// <param name="strName">参数</param>  
            /// <returns>Url或表单参数的值</returns>  
            public static string GetString(string strName)  
            {  
                return GetString(strName, false);  
            }  
      
            /// <summary>  
            /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值  
            /// </summary>  
            /// <param name="strName">参数</param>  
            /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>  
            /// <returns>Url或表单参数的值</returns>  
            public static string GetString(string strName, bool sqlSafeCheck)  
            {  
                if ("".Equals(GetQueryString(strName)))  
                    return GetFormString(strName, sqlSafeCheck);  
                else  
                    return GetQueryString(strName, sqlSafeCheck);  
            }  
            public static string GetStringValue(string strName)  
            {  
                return GetStringValue(strName, string.Empty);  
            }  
            /// <summary>  
            /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值  
            /// </summary>  
            /// <param name="strName">参数</param>  
            /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>  
            /// <returns>Url或表单参数的值</returns>  
            public static string GetStringValue(string strName, string defaultvalue)  
            {  
                if ("".Equals(GetQueryStringValue(strName)))  
                    return GetFormStringValue(strName, defaultvalue);  
                else  
                    return GetQueryStringValue(strName, defaultvalue);  
            }  
      
            /// <summary>  
            /// 获得指定Url参数的int类型值  
            /// </summary>  
            /// <param name="strName">Url参数</param>  
            /// <returns>Url参数的int类型值</returns>  
            public static int GetQueryInt(string strName)  
            {  
                return Utils.StrToInt(HttpContext.Current.Request.QueryString[strName], 0);  
            }  
      
            /// <summary>  
            /// 获得指定Url参数的int类型值  
            /// </summary>  
            /// <param name="strName">Url参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>Url参数的int类型值</returns>  
            public static int GetQueryInt(string strName, int defValue)  
            {  
                return Utils.StrToInt(HttpContext.Current.Request.QueryString[strName], defValue);  
            }  
      
            /// <summary>  
            /// 获得指定表单参数的int类型值  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <returns>表单参数的int类型值</returns>  
            public static int GetFormInt(string strName)  
            {  
                return GetFormInt(strName, 0);  
            }  
      
            /// <summary>  
            /// 获得指定表单参数的int类型值  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>表单参数的int类型值</returns>  
            public static int GetFormInt(string strName, int defValue)  
            {  
                return Utils.StrToInt(HttpContext.Current.Request.Form[strName], defValue);  
            }  
      
            /// <summary>  
            /// 获得指定Url或表单参数的int类型值, 先判断Url参数是否为缺省值, 如为True则返回表单参数的值  
            /// </summary>  
            /// <param name="strName">Url或表单参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>Url或表单参数的int类型值</returns>  
            public static int GetInt(string strName, int defValue)  
            {  
                if (GetQueryInt(strName, defValue) == defValue)  
                    return GetFormInt(strName, defValue);  
                else  
                    return GetQueryInt(strName, defValue);  
            }  
      
            /// <summary>  
            /// 获得指定Url参数的decimal类型值  
            /// </summary>  
            /// <param name="strName">Url参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>Url参数的decimal类型值</returns>  
            public static decimal GetQueryDecimal(string strName, decimal defValue)  
            {  
                return Utils.StrToDecimal(HttpContext.Current.Request.QueryString[strName], defValue);  
            }  
      
            /// <summary>  
            /// 获得指定表单参数的decimal类型值  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>表单参数的decimal类型值</returns>  
            public static decimal GetFormDecimal(string strName, decimal defValue)  
            {  
                return Utils.StrToDecimal(HttpContext.Current.Request.Form[strName], defValue);  
            }  
      
            /// <summary>  
            /// 获得指定Url参数的float类型值  
            /// </summary>  
            /// <param name="strName">Url参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>Url参数的int类型值</returns>  
            public static float GetQueryFloat(string strName, float defValue)  
            {  
                return Utils.StrToFloat(HttpContext.Current.Request.QueryString[strName], defValue);  
            }  
      
            /// <summary>  
            /// 获得指定表单参数的float类型值  
            /// </summary>  
            /// <param name="strName">表单参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>表单参数的float类型值</returns>  
            public static float GetFormFloat(string strName, float defValue)  
            {  
                return Utils.StrToFloat(HttpContext.Current.Request.Form[strName], defValue);  
            }  
              
            /// <summary>  
            /// 获得指定Url或表单参数的float类型值, 先判断Url参数是否为缺省值, 如为True则返回表单参数的值  
            /// </summary>  
            /// <param name="strName">Url或表单参数</param>  
            /// <param name="defValue">缺省值</param>  
            /// <returns>Url或表单参数的int类型值</returns>  
            public static float GetFloat(string strName, float defValue)  
            {  
                if (GetQueryFloat(strName, defValue) == defValue)  
                    return GetFormFloat(strName, defValue);  
                else  
                    return GetQueryFloat(strName, defValue);  
            }  
      
              
      
        }  
    }  



本文转载:CSDN博客