欧美日韩一区二区三区四区不卡,日韩欧美视频一区二区三区四区,久久精品欧美一区二区三区不卡,国产精品久久久乱弄

咨詢電話:186 7916 6165 咨詢電話:186 7916 6165 (微信同號)    在線QQ:181796286
NEWS BLOG ·
學無止境
關注開優網絡 關注前沿
String.Format數字格式化輸出
ASP.NET公共類庫之日期格式處理類DateUtil.cs

ASP.NET公共類庫之瀏覽器輔助類Request.cs

發表日期:2015-09-05    文章編輯:南昌開優網絡    瀏覽次數:4006    標簽:ASP.NET應用

/**********************************************
 * 類作用:   瀏覽器輔助類
 * 建立人:   開優網絡
 ***********************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;

namespace Svnhost.Common
{
    public class Request
    {
        /// <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>
        /// <returns></returns>
        public static string GetHost()
        {
            return HttpContext.Current.Request.Url.Host;
        }


        /// <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 IsCrossSitePost()
        {

            // 如果不是提交則為true
            if (!Request.IsPost())
            {
                return true;
            }
            return IsCrossSitePost(Request.GetUrlReferrer(), Request.GetHost());
        }

        /// <summary>
        /// 判斷是否是跨站提交
        /// </summary>
        /// <param name="urlReferrer">上個頁面地址</param>
        /// <param name="host">論壇url</param>
        /// <returns></returns>
        public static bool IsCrossSitePost(string urlReferrer, string host)
        {
            if (urlReferrer.Length < 7)
            {
                return true;
            }
            Uri u = new Uri(urlReferrer);
            return u.Host != host;
        }

        /// <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)
        {

            if (HttpContext.Current.Request.QueryString[strName] == null)
            {
                return String.Empty;
            }
            return HttpContext.Current.Request.QueryString[strName];

        }
        /// <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)
        {
            if (HttpContext.Current.Request.Form[strName] == null)
            {
                return "";
            }
            return HttpContext.Current.Request.Form[strName];
        }

        /// <summary>
        /// 獲得Url或表單參數的值, 先判斷Url參數是否為空字符串, 如為True則返回表單參數的值
        /// </summary>
        /// <param name="strName">參數</param>
        /// <returns>Url或表單參數的值</returns>
        public static string GetString(string strName)
        {
            if ("".Equals(GetQueryString(strName)))
            {
                return GetFormString(strName);
            }
            else
            {
                return GetQueryString(strName);
            }
        }


        /// <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 TypeParse.StrToInt(HttpContext.Current.Request.QueryString[strName], defValue);
        }


        /// <summary>
        /// 獲得指定表單參數的int類型值
        /// </summary>
        /// <param name="strName">表單參數</param>
        /// <param name="defValue">缺省值</param>
        /// <returns>表單參數的int類型值</returns>
        public static int GetFormInt(string strName, int defValue)
        {
            return TypeParse.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參數的float類型值
        /// </summary>
        /// <param name="strName">Url參數</param>
        /// <param name="defValue">缺省值</param>
        /// <returns>Url參數的int類型值</returns>
        public static float GetQueryFloat(string strName, float defValue)
        {
            return TypeParse.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 TypeParse.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);
            }
        }

        /// <summary>
        /// 獲得當前頁面客戶端的IP
        /// </summary>
        /// <returns>當前頁面客戶端的IP</returns>
        public static string GetIP()
        {


            string result = String.Empty;

            result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (null == result || result == String.Empty)
            {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }

            if (null == result || result == String.Empty)
            {
                result = HttpContext.Current.Request.UserHostAddress;
            }

            if (null == result || result == String.Empty || !ValidateUtils.IsIP(result))
            {
                return "0.0.0.0";
            }

            return result;

        }


        /// <summary>
        /// 判斷是否有上傳的文件
        /// </summary>
        /// <returns>是否有上傳的文件</returns>
        public static bool IsPostFile()
        {
            for (int i = 0; i < HttpContext.Current.Request.Files.Count; i++)
            {
                if (HttpContext.Current.Request.Files[i].FileName != "")
                {
                    return true;
                }
            }
            return false;
        }

        /// <summary>
        /// 保存用戶上傳的文件
        /// </summary>
        /// <param name="path">保存路徑</param>
        public static void SaveRequestFile(string path)
        {
            if (HttpContext.Current.Request.Files.Count > 0)
            {
                HttpContext.Current.Request.Files[0].SaveAs(path);
            }
        }

        /// <summary>
        /// 保存上傳的文件
        /// </summary>
        /// <param name="MaxAllowFileCount">最大允許的上傳文件個數</param>
        /// <param name="MaxAllowFileSize">最大允許的文件長度(單位: KB)</param>
        /// <param name="AllowFileExtName">允許的文件擴展名, 以string[]形式提供</param>
        /// <param name="AllowFileType">允許的文件類型, 以string[]形式提供</param>
        /// <param name="Dir">目錄</param>
        /// <returns></returns>
        public static string[] SaveRequestFiles(int MaxAllowFileCount, int MaxAllowFileSize, string[] AllowFileExtName, string[] AllowFileType, string Dir)
        {
            string[] attachmentinfo = new string[MaxAllowFileCount];
            int fcount = Math.Min(MaxAllowFileCount, HttpContext.Current.Request.Files.Count);
            for (int i = 0; i < fcount; i++)
            {
                string filename = HttpContext.Current.Request.Files[i].FileName;
                string fileextname = filename.Substring(filename.LastIndexOf("."));
                string filetype = HttpContext.Current.Request.Files[i].ContentType;
                int filesize = HttpContext.Current.Request.Files[i].ContentLength;
                // 判斷 文件擴展名/文件大小/文件類型 是否符合要求
                if (ValidateUtils.InArray(fileextname, AllowFileExtName) && (filesize <= MaxAllowFileSize * 1024) && ValidateUtils.InArray(filetype, AllowFileType))
                {
                    HttpContext.Current.Request.Files[i].SaveAs(Dir + DateUtil.GetDateTime() + Environment.TickCount.ToString() + fileextname);
                    attachmentinfo[i] = Dir + DateUtil.GetDateTime() + Environment.TickCount.ToString() + fileextname;
                }
            }
            return attachmentinfo;

        }



    }
}
主站蜘蛛池模板: 海丰县| 黄冈市| 奉贤区| 乌鲁木齐县| 淅川县| 同仁县| 丽江市| 万宁市| 望都县| 韶关市| 连江县| 安多县| 枣庄市| 吴堡县| 蒙城县| 上思县| 措勤县| 西藏| 固阳县| 宜都市| 和硕县| 扬中市| 芒康县| 佛山市| 阳朔县| 荣昌县| 青川县| 宝丰县| 肇州县| 肥城市| 新绛县| 曲阳县| 祥云县| 华阴市| 三亚市| 甘孜| 富宁县| 南昌县| 罗平县| 原阳县| 和田县|