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;
        }

  

原文地址:https://www.cnblogs.com/BOSET/p/7065193.html