zoukankan      html  css  js  c++  java
  • C# 非EF注册登录与EF注册登录

    非EF注册登录

    第一步:创建LoginController,添加Index视图

     @using (Ajax.BeginForm("CheckLogin", "Login", new { }, new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterLogin", LoadingElementId = "msg" }, new { id = "loginForm" }))
            {
                <table>
                     <tr>
                         <td>用户名</td>
                         <td><input type="text" name="username" /></td>
                     </tr>
                     <tr>
                         <td>密码</td>
                         <td><input type="text" name="pwd" /></td>
                     </tr>
                     <tr>
                         <td>验证码</td>
                         <td>
                             <input type="text" name="vCode" />
                             <img src="/Login/ShowVerificateCode?id=1" id="vCodeImage" /><a href="javascript:;" onclick="changeVerificateCode();">看不清</a><br />
                         </td>
                     </tr>
                    <tr>
                        <td colspan="2">
                            <input type="submit" name="loginBtn" value="登录" />
            <div id="msg" style="display:none">正在登录,请稍后....</div>
                        </td>
                    </tr>
                </table>
                
            }
    

      第二步:在控制器写返回验证码那个方法和校验登录

    public ActionResult ShowVerificateCode()
            {
                string vCode = Common.VerificateCode.CreateValidateCode(4);
                Session["vCode"] = vCode;
                byte[] buffer = Common.VerificateCode.CreateValidateGraphic(vCode);
                return File(buffer,"image/jpeg");
            }
    
            public ActionResult CheckLogin()
            {
                string verificateCode = Session["vCode"] == null ? string.Empty : Session["vCode"].ToString();
                if (string.IsNullOrEmpty(verificateCode)) return Content("no:验证码错误");
                Session["vCode"] = null;
                string code = Request["vCode"];
                if (!code.Equals(verificateCode, StringComparison.InvariantCultureIgnoreCase)) return Content("no:验证码错误");
                string username = Request["username"];
                string pwd= Request["pwd"];
                Model.UserInfo userInfo = UserInfoService.LoadEntity(username,pwd);
                if (userInfo == null) return Content("no:用户名或密码错误");
                return Content("yes:登录成功");
            }
    

      第三步:数据层代码

    public List<Model.UserInfo> GetList()
            {
                string sql = "select * from UserInfo";
                DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text);
                List<Model.UserInfo> list = null;
                if (dt.Rows.Count>0)
                {
                    list = new List<Model.UserInfo>();
                    Model.UserInfo userInfo = null;
                    foreach (DataRow row in dt.Rows)
                    {
                        userInfo = new Model.UserInfo();
                        LoadEntity(userInfo,row);
                        list.Add(userInfo);
                    }
                }
                return list;
            }
    
            public Model.UserInfo LoadEntity(string username, string pwd)
            {
                string sql = "select * from UserInfo where UName=@UName and UPwd=@UPwd";
                SqlParameter[] pars = {
                                   new SqlParameter("@UName", SqlDbType.NVarChar, 32) { Value = username },
                new SqlParameter("@UPwd", SqlDbType.NVarChar, 16) { Value = pwd }
                                   };
                DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text,pars);
                Model.UserInfo userInfo = null;
                if (dt.Rows.Count>0)
                {
                    userInfo = new Model.UserInfo();
                    LoadEntity(userInfo, dt.Rows[0]);
                }
                return userInfo;
            }
    
            public List<Model.UserInfo> GetPageList(int pageStart, int pageEnd)
            {
                string sql = "select * from (select *,ROW_NUMBER() over(order by id) as num from UserInfo) as t where t.num>=@pageStart and t.num<=@pageEnd";
                SqlParameter[] pars = { 
                                      new SqlParameter("@pageStart",SqlDbType.Int){Value=pageStart},new SqlParameter("@pageEnd",SqlDbType.Int){Value=pageEnd}
                                      };
                DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text,pars);
                List<Model.UserInfo> list = null;
                if (dt.Rows.Count > 0)
                {
                    list = new List<Model.UserInfo>();
                    Model.UserInfo userInfo = null;
                    foreach (DataRow row in dt.Rows)
                    {
                        userInfo = new Model.UserInfo();
                        LoadEntity(userInfo, row);
                        list.Add(userInfo);
                    }
                }
                return list;
            }
    
            public int GetRecordCount()
            {
                string sql = "select count(*) from UserInfo";
                return Convert.ToInt32(SqlHelper.ExecuteScalar(sql, CommandType.Text));
            }      
    
            private void LoadEntity(Model.UserInfo userInfo, DataRow row)
            {
                userInfo.UName = row["UName"] != DBNull.Value ? row["UName"].ToString() : string.Empty;
                userInfo.UPwd = row["UPwd"] != DBNull.Value ? row["UPwd"].ToString() : string.Empty;
                userInfo.SubTime = Convert.ToDateTime(row["SubTime"]);
                userInfo.Remark = row["Remark"] != DBNull.Value ? row["Remark"].ToString() : string.Empty;
                userInfo.ModifiedOn = Convert.ToDateTime(row["ModifiedOn"]);
                userInfo.DelFlag = Convert.ToInt16(row["DelFlag"]);
                userInfo.Sort = row["Sort"] != DBNull.Value ? row["Sort"].ToString() : string.Empty;
            }
    

      

  • 相关阅读:
    Spoj-ANTP Mr. Ant & His Problem
    Spoj-BIPCSMR16 Team Building
    cf575A Fibonotci
    cf660E Different Subsets For All Tuples
    cf468C Hack it!
    cf468B Two Sets
    cf701E Connecting Universities
    Spoj-BLMIRINA Archery Training
    Spoj-BITDIFF Bit Difference
    Spoj-VISIBLEBOX Decreasing Number of Visible Box
  • 原文地址:https://www.cnblogs.com/BOSET/p/7065193.html
Copyright © 2011-2022 走看看