C#中通过js实现个人用户和非个人用户的登陆

实现用户的登录功能,这里举一个个人和非个人用户的登录的例子

前台代码:

 

<ul class="login_list clearfix">
                    <li>
                        <input class="input_one" type="text" id="txtusername" placeholder="请输入帐号">

                    </li>
                    <li>
                        <input class="input_two" type="password" id="txtuserpwd" placeholder="请输入密码">

                    </li>
                    <li class="forget">
                        <input type="checkbox">
                        <span> 记住用户名</span >
                    </li>
                    <li class="dis">
                        <input class="check" placeholder="验证码" type="text" />
                        <img src="" />
                    </li>
                    <li class="lastt">< a class ="fr" href ="/about/zhmm.html" target ="_blank">忘记密码?</a ><span> 没有帐号?</span ><a class="zc" href="/reg.html" target="_blank"> 注册</a ></li>
                    <li class="msg">< em id ="msg"></em></ li>
                    <li class="dr">< a href ="javascript:void(0);" onclick ="userlogin();" class="un"> 登录</a ></li>
                </ul>

 

  引用JS文件lo_re.js(判断为不为空,为空的话提示消息):

function userlogin()
{
    var UserName=$("#txtusername" );
        if($.trim(UserName.val())==""){
            UserName.focus();
           $( "#msg").html(" 帐号不能为空! ");
            return;
        } else{
            $( "#msg").html("" );
        }
        var UserPwd=$("#txtuserpwd" );
        if($.trim(UserPwd.val())=="" ){
            UserPwd.focus();
            $( "#msg").html(" 密码不能为空! ");
            return;
        } else{
            $( "#msg").html("" );
        }
       $.post( "/JsData/userlogin.ashx" , { action: "login", username: UserName.val(),userpwd:UserPwd.val(), time: new Date().getTime() }, function(msg) {
            var data = eval("(" + msg + ")");
            var state=parseInt(data[0].state);
            if(state==1){              
                if(data[0].UserType=="0" ){ //非个人用户                   
                   $.cookie( "UserType", "0" , { path: "/" });
                   $.cookie( "UserName", data[0].UserName, { path: "/" });
                  
               } else{// 个人用户
                                      alert("恭喜您,登陆成功"); //登陆完成之后,会弹出此消息框提示(要在判断用户名、密码是否正确之后才能弹出此消息框)
                   $.cookie( "UserType", "1" , { path: "/" });
                   $.cookie( "UserID", data[0].id, { path: "/" });
               }
               location.href= "/";
             
            } else{
                 $( "#msg").html(" 账号或密码错误! ");
            }
        });
}

  /JsData/userlogin.ashx的文件中(这是一个判断的过程,确认传过来的值是登陆还是别的,如果是登陆的话,验证用户名和密码并返回数据)

usersDAL ud = new usersDAL ();
        protected string action = CRequest.GetString( "action");
        schoolsDAL sd = new schoolsDAL();
        schoolsModel sm = new schoolsModel();
        protected int cookie = CRequest.GetInt( "cookie",1);
        protected string username = CRequest.GetString( "username");
        public void ProcessRequest(HttpContext context)
        {
           
                if (action == "login" )
                {
                    if (username.IndexOf("@" ) != -1)
                    {
                        login(context);
                    }
                    else
                    {
                        wxlogin(context);
                    }
                }              
                else if (action == "chklogin")
                {
                    chklogin(context);
                }
                else if (action == "logout")
                {
                    logout(context);
                }
                else if (action == "autologin")
                {
                    autologin(context);
                }
          
        }
        /// <summary>
        /// 获取用户登陆状态
        /// </summary>
        private void chklogin(HttpContext context)
        {
            StringBuilder sb = new StringBuilder();
            if (DoUser .GetUserType() != "")
            {
                if (DoUser .GetUserType() == "1")
                {
                    sb.Append( "[" + GetUserInfo(int .Parse(DoUser.GetUserID())) + "]");
                }
                else if (DoUser.GetUserType() == "0")
                {
                    string userid = schoolsDAL .GetUserId(DoUser.GetUserName());
                    sb.Append( "[" + GetWxinfo(int .Parse(userid)) + "]");
                }
                else
                {
                    sb.Append( "[{\"state\":\"0\"}]" );
                }
            }
            else
            {
                sb.Append( "[{\"state\":\"0\"}]" );
            }
            context.Response.Write(sb.ToString());
            context.Response.End();
        }
        private void logout(HttpContext context)
        {
            DoClass.RemoveUserCookie();
            DoSession.DelALL();
            context.Response.Write( "ok");
        }
        private void login(HttpContext context)
        {
            StringBuilder sb = new StringBuilder();
            string username = CRequest .GetString("username");
            string userpwd = CRequest .GetString("userpwd");
            int UserID=ud.ChkLogin(username, encrypt.EncryptMd5(userpwd));
            if (UserID > 0)
            {
                DoUser.SetUserType("1" );//cookie 用户状态 1为个人 0 为非个人
                DoUser.SetUserID(UserID.ToString());
                sb.Append( "{\"state\":\"1\",\"UserType\":\"1\",\"id\":\"" + UserID + "\",\"UserName\":\"" + username + "\"}");              
            }
            else
            {
                sb.Append( "{\"state\":\"0\"}" );
            }
            context.Response.Write( "[" + sb.ToString() + "]" );
            context.Response.End();
        }
        private void wxlogin(HttpContext context)
        {
            StringBuilder sb = new StringBuilder();
            string username = CRequest .GetString("username");
            //string userid = schoolsDAL.GetUserId(username);
            string userpwd = CRequest .GetString("userpwd");
            int UserID=sd.ChkLogin(username, encrypt.EncryptMd5(userpwd));
            if (UserID > 0)
            {
                DoUser.SetUserType("0" );//cookie 用户状态 1 为个人 0 为非个人
                DoUser.SetUserName(username);
                sb.Append(GetWxinfo(UserID));

            }
            else
            {
                sb.Append( "{\"state\":\"0\"}" );
            }
            context.Response.Write( "[" + sb.ToString() + "]" );
            context.Response.End();
        }
        private void autologin(HttpContext context)
        {
            string username = sd.AutoLogin();
            if (username != "" )
            {
               
                DoUser.SetUserType("0" );//cookie 用户状态 1 为个人 0 为非个人
                DoUser.SetUserName(username);               
                int userid = Convert .ToInt32(schoolsDAL.GetUserId(username));
                context.Response.Write(GetWxinfo(userid));
            }
        }
        private string GetUserInfo(int userid)
        {
            string username = usersDAL .GetUserName(userid);
            StringBuilder sb = new StringBuilder();
            sb.Append( "{\"state\":\"1\",\"UserType\":\"1\",\"id\":\"" + userid + "\",\"UserName\":\"" + username + "\"}");  
            return sb.ToString();
        }
        private string GetWxinfo(int userid)
        {
            StringBuilder sb = new StringBuilder();
            sm = sd.GetModel(userid);
            if (sm != null )
            {
                string tel = peopleDAL .GetAdminTel(sm.adduser.ToString());

                sb.Append( "{\"state\":\"1\",\"UserType\":\"0\",\"id\":\"" + userid + "\",\"UserName\":\"" + username + "\",\"SchoolName\":\"" +sm.schoolname+"\",\"SchoolType\":\""+sm.is_off+"\",\"Tel\":\"" +tel+"\"}");
             
            }
            return sb.ToString();
        }
        public bool IsReusable
        {
            get
            {
                return false ;
            }
        }

  这就是用户的登陆,希望对你有帮助!

 

posted @ 2015-10-26 15:49  横十条  阅读(538)  评论(0编辑  收藏  举报