通过Ajax和鉴权删除记录的方法

2017-05-28 11:28:51  访问(1449) 赞(0) 踩(0)

  • 几个部分:
    1、页面CS代码实现动态生成删除按钮
    2、页面Aspx代码实现Ajax调用
    3、枚举定义
    4、AjaxDeleteSlowXItem的Handler实现删除
    5、相关的鉴权代码
  • 
            /// <summary>
            /// 页面加密密钥 +
            /// </summary>
            protected readonly static string pageSignKey 
                =
                System.Configuration.ConfigurationManager.AppSettings
                ["SlowX.WebSite.BLL.WebSiteBasicBLL.pageSignKey"];
    
            /// <summary>
            /// 网站MD5加密 +
            /// </summary>
            /// <param name="text"></param>
            /// <returns></returns>
            public string WebSiteMD5(string text)
            {
                return GetGB2312MD5(text + pageSignKey);
            }
    
    
            /// <summary>
            /// 网站MD5校验 +
            /// </summary>
            /// <param name="text"></param>
            /// <returns></returns>
            public bool WebSiteMD5Check(string text,string sign)
            {
                return GetGB2312MD5(text + pageSignKey) == sign;
            }
    
    
            /// <summary>
            /// 获得GB2312编码的MD5值 - GetGB2312MD5 +
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            public string GetGB2312MD5(string s)
            {
                if (s == null)
                    s = "";
    
                MD5 md5 = new MD5CryptoServiceProvider();
    
                byte[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding("GB2312").GetBytes(s));
    
                StringBuilder sb = new StringBuilder(32);
    
                for (int i = 0; i < t.Length; i++)
                {
                    sb.Append(t[i].ToString("x").PadLeft(2, '0'));
                }
    
                return sb.ToString();
            }
    
    
  • // 删除记录 //
            function AjaxDeleteSlowXItem(oId, oEm, dt, sign) {
                if (!confirm("确定删除?"))
                    return;
    
                var ajaxUrl = "<%=strPhyPath %>/Ajax/Common/AjaxDeleteSlowXItem.ashx?id=" + oId + "&em=" + oEm + "&dt=" + dt + "&sign=" + sign;
    
                $.ajax({
                    cache: false,
                    async: true,
                    url: ajaxUrl,
                    type: 'post',
                    success: function(data) {
                        alert("删除成功");
                        window.location = window.location;
                    }
                });
    
            }
    
  • 
        /// <summary>
        /// 设定关联表格
        /// </summary>
        SlowX.WebLib.Enums.BllTable.EmBllTable m_EmBllTableV
            =
            SlowX.WebLib.Enums.BllTable.EmBllTable.None;
    
        /// <summary>
        /// 
        /// </summary>
        public  SlowX.WebLib.Enums.BllTable.EmBllTable EmBllTableV
        {
            get
            {
                return m_EmBllTableV;
            }
            set
            {
                m_EmBllTableV = value;
            }
        }
    
    
                    // 删除记录 //
                    if (EmBllTableV != SlowX.WebLib.Enums.BllTable.EmBllTable.None
                        && curId != 0)
                    {
                        string backDoorText = "";
    
                        string curStrId = curId.ToString();
    
                        string dt = DateTime.Now.ToString("yyyyMMddHHmmss");
    
                        string sign
                            =
                            WebSiteBLL.instance.WebSiteMD5(curId + dt + "#" + ((int)EmBllTableV).ToString());
    
                        backDoorText = "<span style=\"cursor:pointer;color:red;\" onclick=\"AjaxDeleteSlowXItem(" + curId + "," + ((int)EmBllTableV).ToString() + ",'" + dt + "','" + sign + "');\" >[删除]</span>";
    
    }
    
  • #region Enum
    
            /// <summary>
            /// 逻辑表
            /// </summary>
            public enum EmBllTable
            {
    
                /// <summary>
                /// None
                /// </summary>
                None = 1,
                /// <summary>
                /// Code
                /// </summary>
                Code,
                /// <summary>
                /// Image
                /// </summary>
                Image,
                /// <summary>
                /// News
                /// </summary>
                News
            }
    
            #endregion Enum
    
  • <%@ WebHandler Language="C#" Class="AjaxDeleteSlowXItem" %>
    
    using System;
    using System.Web;
    
    public class AjaxDeleteSlowXItem : IHttpHandler
    {
        
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "text/plain";
    
            string strId = context.Request.QueryString["id"];
            string emV = context.Request.QueryString["em"];
            string dt = context.Request.QueryString["dt"];
            string sign = context.Request.QueryString["sign"];
            
            if (strId == null || strId.Length == 0)
            {
                context.Response.Write("没有获得ID");
                return;
            }
    
            if (dt == null || dt.Length == 0)
            {
                context.Response.Write("参数错误");
                return;
            }
    
            if (sign == null || sign.Length == 0)
            {
                context.Response.Write("参数错误");
                return;
            }
    
            if (!WebSiteBLL.instance.WebSiteMD5Check
                (
                    strId + dt + "#"+emV,
                    sign)
                )
            {
                context.Response.Write("鉴权失败");
                return;
            }
    
            SlowX.WebLib.Business.UTB_WEB_CODE_ITEM
                bll_CodeItem
                =
                SlowX.WebLib.Business.UTB_WEB_CODE_ITEM.instance;
    
            try
            {
                int theResult = 0;
    
                SlowX.WebLib.Enums.BllTable.EmBllTable em
                    = SlowX.WebLib.Enums.BllTable.GetEmByString(emV);
    
                switch (em)
                {
                    case SlowX.WebLib.Enums.BllTable.EmBllTable.None:
                        break;
                    case SlowX.WebLib.Enums.BllTable.EmBllTable.Code:
                        //bll_CodeItem.
    
                        theResult = bll_CodeItem.CodeUpdateDelete(strId, null);
                        break;
                }
               
    
                if (theResult == 0)
                {
                    context.Response.Write("没有记录。");
                }
                else
                {
                    context.Response.Write("删除成功。");
                }
            }
            catch (Exception err)
            {
                context.Response.Write("发生异常:" + err.Message);
            }
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }
    

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)