zoukankan      html  css  js  c++  java
  • 步步为营-76-用户登录(Session+Cookie)

    说明:cookie是保存在浏览器的.Session是存储在服务器的

    1 同样UI页面还是web前端提供

    1.1 首先,经过验证码校验:将系统产生的验证码放入到Session中,然后取Session值
    注意几点 1:放入Session时需要实现 IRequiresSessionState接口(因为是ashx,一般处理程序)

         2:使用前先判断是否为空
                3:用完验证码Session值注销(否则会有漏洞)

    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Linq;
    using System.Web;
    using System.Drawing.Imaging;
    using System.Web.SessionState;
    
    namespace _06_图片处理
    {
        /// <summary>
        /// ValidateCode 的摘要说明
        /// </summary>
        public class ValidateCode : IHttpHandler,IRequiresSessionState
        {
    
            public void ProcessRequest(HttpContext context)
            {
                //01 验证码是图片,所以修改Type
                context.Response.ContentType = "image/jpeg";
                //02 创建画布
                Bitmap bm = new Bitmap(70,30);
                          
                //03 创建绘图工具
                Graphics g =   Graphics.FromImage(bm);
                //03-01 设置背景色
                g.Clear(Color.Green);
                //04 准备绘制
                string strArry = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                string vCode = string.Empty;
                Random r = new Random ();
                for (int i = 0; i < 4; i++)
                {
                    vCode += strArry[r.Next(strArry.Length)];
                }
                //05 开始绘制
                g.DrawString(vCode,new Font (new FontFamily("宋体"),20),new SolidBrush(Color.Red),0,0);
                //06 保存
                bm.Save(context.Response.OutputStream,ImageFormat.Jpeg);
                //07 将验证码的值写入Session中,方便以后校验
               context.Session["ValidateCode"] = vCode;
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    ValidateCode 验证码
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_04_用户登录_cookie_Session_.Login" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">
        <title>网站管理后台登录
        </title>
        <script src="Script/jquery-1.7.1.min.js"></script>
         <script>
             $(function () {
                 $("#changeCode").click(function () {
                     $('#Image1').attr("src", $('#Image1').attr("src") + '1');
                 });
             })
        </script>
        <link href="./网站管理后台登录_files/style.css" rel="stylesheet" type="text/css">
        
        <style type="text/css">
            <!--
            body {
                margin-top: 150px;
            }
            -->
        </style>
    
       
    </head>
    <body>
        <form name="form1" method="post" action="" id="form1">
            <div>
                <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTk5MTEyNDkyMmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFCGJ0bkxvZ2luDPRvv9LGLqiVqStAd5fp6Kr+5/0=">
            </div>
    
            <div>
    
                <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQLemczKAwLd+/CSBQK1qbSRCwLChPzDDQKC3IeGDDY6Y328gLlSy6Sd5458JxEqkhYO">
            </div>
            <div>
                <table width="549" height="287" border="0" align="center" cellpadding="0" cellspacing="0" background="./网站管理后台登录_files/login_bg.jpg">
                    <tbody>
                        <tr>
                            <td width="23">
                                <img src="./网站管理后台登录_files/login_leftbg.jpg" width="23" height="287"></td>
                            <td width="503" valign="top">
                                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                    <tbody>
                                        <tr>
                                            <td width="49%" valign="bottom">
                                                <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td height="100" valign="top" class="login_text">
                                                                <div align="left">
                                                                    网站后台管理系统
                                                                </div>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td>
                                                                <div align="right">
                                                                    <img src="./网站管理后台登录_files/login_img.jpg" width="104" height="113"></div>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                            </td>
                                            <td width="2%">
                                                <img src="./网站管理后台登录_files/login_line.jpg" width="6" height="287"></td>
                                            <td width="49%">
                                                <div align="right">
                                                    <table width="223" border="0" cellspacing="0" cellpadding="0">
                                                        <tbody>
                                                            <tr>
                                                                <td>
                                                                    <img src="./网站管理后台登录_files/login_tit.jpg" width="223" height="30"></td>
                                                            </tr>
                                                            <tr>
                                                                <td>
                                                                    <table width="100%" border="0" cellspacing="10" cellpadding="0">
                                                                        <tbody>
                                                                            <tr>
                                                                                <td width="28%">
                                                                                    <div align="left">用户名:</div>
                                                                                </td>
                                                                                <td width="72%">
                                                                                    <div align="left">
                                                                                        <span class="style1">
                                                                                            <input name="txtClientID" type="text" id="txtClientID" class="form2" style="height: 15px;  140px;">
                                                                                        </span>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">密&nbsp;码:</div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <span class="style1">
                                                                                            <input name="txtPassword" type="password" id="txtPassword" class="form2" style="height: 15px;  140px;"></span>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">验证码:</div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <img id="Image1" src="./网站管理后台登录_files/ValidateCode.ashx?1" style="border- 0px;">&nbsp;
                                <a href="#" id="changeCode">换一张</a>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">验证码:</div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <span class="style1">
                                                                                            <input name="txtCode" type="text" size="8" id="txtCode" class="form2" style="height: 15px;"></span>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                        </tbody>
                                                                    </table>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td align="center">
                                                                    <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                                                        <tbody>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="center"><a href="http://www.800kb.com/ClientManager/#"></a></div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="center">
                                                                                        
                                                                                        <input type="image" name="btnLogin" id="btnLogin" src="./网站管理后台登录_files/login_menu2.jpg" style="border- 0px;"><a href="Login.aspx.cs"></a>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                        </tbody>
                                                                    </table>
                                                                </td>
                                                            </tr>
                                                        </tbody>
                                                    </table>
                                                </div>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </td>
                            <td width="23">
                                <img src="./网站管理后台登录_files/login_rigbg.jpg" width="23" height="287"></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </form>
    
    
    </body>
    </html>
    aspx
    using NewsBLL;
    using NewsModel;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace _04_用户登录_cookie_Session_
    {
        public partial class Login : System.Web.UI.Page
        {
            UserInfoBll bll = new UserInfoBll();
            UserInfo userInfo = new UserInfo();
            protected void Page_Load(object sender, EventArgs e)
            {
                //01 判断get请求还是post请求
                if (Request["txtCode"] != null)
                {
                    //02 检查验证码是否正确
                    if (CheckValidateCode())
                    {
                       //03 检查用户名 密码是否正确
                        //03-01 获取用户名和密码
                        string userName = Request["txtClientID"];
                        string userPwd = Request["txtPassword"];
                        //03-02 根据用户名获取用户信息
                        int userId;
                        if (int.TryParse(userName, out userId))
                        {
                            userInfo = bll.GetUserInfoByUserId(userId);
                            if (userInfo != null)
                            {
                                if (userInfo.UserPwd == userPwd)
                                {
                                    Response.Write("登录成功");
                                }
                                else
                                {
                                    Response.Write("密码错误");
                                }
                            }
                            else {
                                Response.Write("用户不存在");
                            }
                           
                        }
                        else
                        {
                            Response.Write("用户名为数字");
                        }
                       
    
                    }
                    else {
                        Response.Write("验证码不正确");
                    }
                }
            }
    
            #region 01 检查验证码
            private bool CheckValidateCode()
            {
                //01-01 获取验证码的值,将系统产生的验证码放入到Session中,然后取Session值
                //注意两点 1:放入Session时需要实现 IRequiresSessionState接口(因为是ashx,一般处理程序)
                //注意两点 2:用完验证码Session值注销(否则会有漏洞)
                if (Session["ValidateCode"] == null)
                {
                    return false;
                }
                string validateCode = Session["ValidateCode"].ToString();
                //01-02 获取文本框中输入的值
                string vCode = Request["txtCode"];
    
                //01-03 判断是否相等
                if (vCode.Equals(validateCode, StringComparison.InvariantCultureIgnoreCase))
                {
                    //使用后注销session值
                    Session["ValidateCode"] = null;
                    return true;
                }
                else
                {
                    return false;
                }
    
            }
            #endregion
    
    
        }
    }
    aspx.cs

    1.2  如果登录成功,创建session,跳转到ShowUserInfo界面
                                    Session["UserInfo"] = userInfo;
                                    Response.Redirect("ShowUserInfo.aspx");

    1.3 为了防止用户直接通过地址访问,所以进入ShowUserInfo等界面时需要判断Session值

    using NewsModel;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace _04_用户登录_cookie_Session_
    {
        public partial class ShowUserInfo : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                //判断Session["userInfo"]是否为空
                if (Session["userInfo"] == null)
                {
                    Response.Redirect("Login.aspx");
                }
                else {
                    Response.Write("欢迎" + ((UserInfo)Session["userInfo"]).UserName+"登录本系统");
                }
            }
        }
    }
    ShowUserInfo

    1.4 但是如果以后每个页面都需要做同样的验证,会出现大量重复代码,而且一旦需求变更,不利于系统维护,
        封装一个类,继承Page类=>添加Page_Init(object sender,EventArgs e)方法  进行Session校验.

       注意:Page_Init 这里用到了页面生命周期大致分为:页请求=>启动=>初始化=>加载=>执行=>呈现=>卸载 等周期

     我们在aspx.cs 中写的代码是在加载阶段Page_Load();而Page_Init是在初始化阶段.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.UI;
     
    
    namespace NewsCommon
    {
       public  class CheckSession:Page
        {
           public void Page_Init(object sender,EventArgs e)
           {
               //判断Session["userInfo"]是否为空
               if (Session["userInfo"] == null)
               {
                   Response.Redirect("Login.aspx");
               }
           }
        }
    }
    NewsCommon===CheckSession

    1.5 同时,ShowUserInfo页面继承CheckSession

    using NewsCommon;
    using NewsModel;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace _04_用户登录_cookie_Session_
    {
        public partial class ShowUserInfo : CheckSession
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                //判断Session["userInfo"]是否为空==通过NewsCommon中的CheckSession校验             
                    Response.Write("欢迎" + ((UserInfo)Session["userInfo"]).UserName+"登录本系统");
                 
            }
        }
    }
    ShowUserInfo

    1.6 另外添加"记住我"和退出功能==多值cookie 41行和95行

      1 using NewsBLL;
      2 using NewsModel;
      3 using System;
      4 using System.Collections.Generic;
      5 using System.Linq;
      6 using System.Web;
      7 using System.Web.UI;
      8 using System.Web.UI.WebControls;
      9 
     10 namespace _04_用户登录_cookie_Session_
     11 {
     12     public partial class Login : System.Web.UI.Page
     13     {
     14         UserInfoBll bll = new UserInfoBll();
     15       public  UserInfo userInfo = new UserInfo();
     16         protected void Page_Load(object sender, EventArgs e)
     17         {
     18             //01 判断get请求还是post请求
     19             if (Request["txtCode"] != null)
     20             {
     21                 //02 检查验证码是否正确
     22                 if (CheckValidateCode())
     23                 {
     24                     //03 检查用户名 密码是否正确
     25                     //03-01 获取用户名和密码
     26                     string userName = Request["txtClientID"];
     27                     string userPwd = Request["txtPassword"];
     28                     //03-02 根据用户名获取用户信息
     29                     int userId;
     30                     if (int.TryParse(userName, out userId))
     31                     {
     32                         userInfo = bll.GetUserInfoByUserId(userId);
     33                         if (userInfo != null)
     34                         {
     35                             if (userInfo.UserPwd == userPwd)
     36                             {
     37                                 //01 登录成功,创建session
     38                                 Session["UserInfo"] = userInfo;
     39                                 //02 判断是否选中"记住我1周"的cookie判断
     40                                 //写入cookie====多值cookie
     41                                 if (Request["Remember"] == "on")
     42                                 {
     43                                     Response.Cookies["userInfo"]["UserId"] = userInfo.UserId.ToString();
     44                                     Response.Cookies["userInfo"]["UserName"] = userInfo.UserName;
     45                                     Response.Cookies["userInfo"]["UserPwd"] = userInfo.UserPwd;
     46                                     Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(7);
     47 
     48                                 }
     49                                 //删除cookie
     50                                 if (Request["Forget"] == "on")
     51                                 {
     52                                     Session["UserInfo"] = null;
     53                                     Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(-7);
     54                                     Response.Write("退出成功,Session值已清除,cookie值已清除");
     55                                     //程序不再往下走
     56                                     Response.End();
     57 
     58                                 }
     59                                 //03跳转页面
     60                                 Response.Redirect("ShowUserInfo.aspx");
     61                             }
     62                             else
     63                             {
     64                                 Response.Write("密码错误");
     65                             }
     66                         }
     67                         else
     68                         {
     69                             Response.Write("用户不存在");
     70                         }
     71 
     72                     }
     73                     else
     74                     {
     75                         Response.Write("用户名为数字");
     76                     }
     77 
     78 
     79                 }
     80                 else
     81                 {
     82                     Response.Write("验证码不正确");
     83                 }
     84             }
     85             else 
     86             {
     87                 //get 请求
     88                 //01 判断Session值是否存在
     89                 if ( Session["UserInfo"]!= null)
     90                 {
     91                     //如果 Session["UserInfo"]存在,直接进行跳转
     92                     Response.Redirect("ShowUserInfo.aspx");
     93                 }
     94                 //02 判断Cookie值是否存在
     95                 if ((Request.Cookies["userInfo"]) != null)
     96                 {
     97                     userInfo.UserId = Convert.ToInt32(Request.Cookies["userInfo"]["UserId"]);
     98                     userInfo.UserName = Request.Cookies["userInfo"]["UserName"];
     99                     userInfo.UserPwd = Request.Cookies["userInfo"]["UserPwd"];
    100                 }
    101             }
    102         }
    103 
    104         #region 01 检查验证码
    105         private bool CheckValidateCode()
    106         {
    107             //01-01 获取验证码的值,将系统产生的验证码放入到Session中,然后取Session值
    108             //注意两点 1:放入Session时需要实现 IRequiresSessionState接口(因为是ashx,一般处理程序)
    109             //注意两点 2:用完验证码Session值注销(否则会有漏洞)
    110             if (Session["ValidateCode"] == null)
    111             {
    112                 return false;
    113             }
    114             string validateCode = Session["ValidateCode"].ToString();
    115             //01-02 获取文本框中输入的值
    116             string vCode = Request["txtCode"];
    117 
    118             //01-03 判断是否相等
    119             if (vCode.Equals(validateCode, StringComparison.InvariantCultureIgnoreCase))
    120             {
    121                 //使用后注销session值
    122                 Session["ValidateCode"] = null;
    123                 return true;
    124             }
    125             else
    126             {
    127                 return false;
    128             }
    129 
    130         }
    131         #endregion
    132 
    133 
    134     }
    135 }
    aspx.cs
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_04_用户登录_cookie_Session_.Login" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">
        <title>网站管理后台登录
        </title>
        <script src="Script/jquery-1.7.1.min.js"></script>
        <script>
            $(function () {
                $("#changeCode").click(function () {
                    $('#Image1').attr("src", $('#Image1').attr("src") + '1');
                });
            })
        </script>
        <link href="./网站管理后台登录_files/style.css" rel="stylesheet" type="text/css">
    
        <style type="text/css">
            <!--
            body {
                margin-top: 150px;
            }
            -->
        </style>
    
    
    </head>
    <body>
        <form name="form1" method="post" action="" id="form1">
            <div>
                <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTk5MTEyNDkyMmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFCGJ0bkxvZ2luDPRvv9LGLqiVqStAd5fp6Kr+5/0=">
            </div>
    
            <div>
    
                <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQLemczKAwLd+/CSBQK1qbSRCwLChPzDDQKC3IeGDDY6Y328gLlSy6Sd5458JxEqkhYO">
            </div>
            <div>
                <table width="549" height="287" border="0" align="center" cellpadding="0" cellspacing="0" background="./网站管理后台登录_files/login_bg.jpg">
                    <tbody>
                        <tr>
                            <td width="23">
                                <img src="./网站管理后台登录_files/login_leftbg.jpg" width="23" height="287"></td>
                            <td width="503" valign="top">
                                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                    <tbody>
                                        <tr>
                                            <td width="49%" valign="bottom">
                                                <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td height="100" valign="top" class="login_text">
                                                                <div align="left">
                                                                    网站后台管理系统
                                                                </div>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td>
                                                                <div align="right">
                                                                    <img src="./网站管理后台登录_files/login_img.jpg" width="104" height="113">
                                                                </div>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                            </td>
                                            <td width="2%">
                                                <img src="./网站管理后台登录_files/login_line.jpg" width="6" height="287"></td>
                                            <td width="49%">
                                                <div align="right">
                                                    <table width="223" border="0" cellspacing="0" cellpadding="0">
                                                        <tbody>
                                                            <tr>
                                                                <td>
                                                                    <img src="./网站管理后台登录_files/login_tit.jpg" width="223" height="30"></td>
                                                            </tr>
                                                            <tr>
                                                                <td>
                                                                    <table width="100%" border="0" cellspacing="10" cellpadding="0">
                                                                        <tbody>
                                                                            <tr>
                                                                                <td width="28%">
                                                                                    <div align="left">用户名:</div>
                                                                                </td>
                                                                                <td width="72%">
                                                                                    <div align="left">
                                                                                        <span class="style1">
                                                                                            <input name="txtClientID" type="text" id="txtClientID" value="<%=userInfo.UserId %>" class="form2" style="height: 15px;  140px;">
                                                                                        </span>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">密&nbsp;码:</div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <span class="style1">
                                                                                            <input name="txtPassword" type="password" id="txtPassword" value="<%=userInfo.UserPwd %>"  class="form2" style="height: 15px;  140px;"></span>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">验证码:</div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <img id="Image1" src="./网站管理后台登录_files/ValidateCode.ashx?1" style="border- 0px;">&nbsp;
                                <a href="#" id="changeCode">换一张</a>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">验证码:</div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <span class="style1">
                                                                                            <input name="txtCode" type="text" size="8" id="txtCode" class="form2" style="height: 15px;"></span>
                                                                                    </div>
                                                                                </td>
    
                                                                            </tr>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <input type="checkbox" id="Forget" name="Forget" />退出 </div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="left">
                                                                                        <input type="checkbox" id="Remember" name="Remember" />记住我1周</div>
    
                                                                                </td>
                                                                            </tr>
                                                                        </tbody>
                                                                    </table>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td align="center">
                                                                    <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                                                        <tbody>
                                                                            <tr>
                                                                                <td>
                                                                                    <div align="center"><a href="http://www.800kb.com/ClientManager/#"></a></div>
                                                                                </td>
                                                                                <td>
                                                                                    <div align="center">
    
                                                                                        <input type="image" name="btnLogin" id="btnLogin" src="./网站管理后台登录_files/login_menu2.jpg" style="border- 0px;"><a href="Login.aspx.cs"></a>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                        </tbody>
                                                                    </table>
                                                                </td>
                                                            </tr>
                                                        </tbody>
                                                    </table>
                                                </div>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </td>
                            <td width="23">
                                <img src="./网站管理后台登录_files/login_rigbg.jpg" width="23" height="287"></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </form>
    
    
    </body>
    </html>
    aspx

  • 相关阅读:
    在DNN站点中加上Tabs效果,并实现在tab中添加模块
    真正的机器人操作系统Android
    将使用AJAX的DNN模块部署到.net 2.0站点上的问题
    顶级企业招聘N多技术人员,有信心的请来看看,薪资不错
    {欢迎加入成都程序员QQ群82041229}
    用C#编程实现检查Scroll Lock键的状态
    成都程序员求职、招聘QQ群29359494 欢迎加入
    帮朋友发个“招10年以上开发经验的技术人员”
    vs2008中,不能将控件拖到页面上之问题解决
    DNN中使用XSD dataset之tableadapter出错
  • 原文地址:https://www.cnblogs.com/YK2012/p/7040462.html
Copyright © 2011-2022 走看看