• .net登录的一般模式


    思路:

    1、检查登录:

    private string CheckLogin(HttpContext context)
    {
        Model.TUser model = (Model.TUser)context.Session["USERModel"];
        if (model == null)
        {
            return "{"msg": "0", "msgbox": "当前为退出"}";
        }
        else
        {
            return "{"msg": "1", "msgbox": "当前为登录"}";
        }
    }
    

    2、点击登录:

    private string Login(HttpContext context)
    {
        BLL.TUser _blluser = new BLL.TUser();
        string loginname = context.Request.Params["loginname"];
        string password = context.Request.Params["password"];
        string issave = context.Request.Params["issave"];//是否保存密码
    
        Model.TUser model_user = _blluser.GetModel("UserLogin='" + loginname + "'");
    
        bool isSuccess = false;
        string cookiesPassword = "";
        //判断 Cookies 是否存在
        if (HttpContext.Current.Request.Cookies["password"] != null)
        {
            cookiesPassword = HttpContext.Current.Request.Cookies["password"].Value;
            if (password == cookiesPassword) /// 输入 和 Cookies 密码 一样
            {
                //登录成功
                isSuccess = true;
            }
        }
    
        //判断输入的密码和数据库的是否匹配
        if (!isSuccess)
        {
            if (password == model_user.PassWord)
            {
                //登录成功
                isSuccess = true;
            }
            else
            {
                //登录失败
                isSuccess = false;
            }
        }
    
        if (isSuccess)
        {
            context.Session["USERModel"] = model_user;
        }
        else
        {
            //登录失败 密码不对
            return "{"msg": "0", "msgbox": "密码错误"}";
        }
    
        //要保存,则写入cookie
        if (issave == "true")
        {
            HttpCookie cookieLogin = new HttpCookie("loginname");
            cookieLogin.Expires = DateTime.Now.AddDays(10);
            cookieLogin.Value = model_user.UserLogin;
            HttpContext.Current.Response.Cookies.Add(cookieLogin);
    
            HttpCookie cookiePassword = new HttpCookie("password");
            cookiePassword.Expires = DateTime.Now.AddDays(10);
            cookiePassword.Value = password;
            HttpContext.Current.Response.Cookies.Add(cookiePassword);
        }
        else
        {//设置cookie过期,删除cookie
            HttpCookie cookieLogin = new HttpCookie("loginname");
            cookieLogin.Expires = DateTime.Now.AddDays(-1);
            HttpContext.Current.Response.Cookies.Add(cookieLogin);
    
            HttpCookie cookiePassword = new HttpCookie("password");
            cookiePassword.Expires = DateTime.Now.AddDays(-1);
            HttpContext.Current.Response.Cookies.Add(cookiePassword);
        }
    
        return "{"msg": "1", "msgbox": "登录成功"}";
    }
    

    3、页面刷新时获取用户保存的账户名和密码并免登陆

    private string IsSaveUserLogin(HttpContext context)
    {
        ///判断 Cookies 是否存在
        if (HttpContext.Current.Request.Cookies["loginname"] == null || HttpContext.Current.Request.Cookies["password"] == null)
        {
            return "{"msg":-1, "msgbox": "帐号没保存", "loginname": "", "password": ""}";
        }
        else
        {
            string loginname = HttpContext.Current.Request.Cookies["loginname"].Value;
            string password = HttpContext.Current.Request.Cookies["password"].Value;
            //免登陆
            CookieLogin(context, loginname, password);
            return "{"msg":1, "msgbox": "帐号保存过", "loginname": "" + loginname + "", "password": "" + password + ""}";
        }
    }
    
    private void CookieLogin(HttpContext context, string cookiesLoginname, string cookiesPassword)
    {
        Model.TUser model_user = new Model.TUser();
        BLL.TUser _blluser = new BLL.TUser();
        bool isSuccess = false;
        ///判断 Cookies 是否存在
        if (!string.IsNullOrEmpty(cookiesLoginname) && !string.IsNullOrEmpty(cookiesPassword))
        {
            model_user = _blluser.GetModel("UserLogin='" + cookiesLoginname + "'");
            if (model_user.PassWord == cookiesPassword) /// 数据库 和 Cookies密码 一样
            {
                //登录成功
                isSuccess = true;
            }
        }
    
        if (isSuccess)
        {
            //登录成功
            context.Session["USERModel"] = model_user;
        }
        else
        {
            //登录失败 密码不对
            //return "{"msg": "0", "msgbox": "密码错误"}";
        }
    }
    

    4、用户退出-清除cookie和session

    private string UserExit(HttpContext context)
    {
        //清除cookie
        //HttpContext.Current.Request.Cookies.Clear();//无效
        HttpCookie cookieLogin = new HttpCookie("loginname");
        cookieLogin.Expires = DateTime.Now.AddDays(-1);
        HttpContext.Current.Response.Cookies.Add(cookieLogin);
    
        HttpCookie cookiePassword = new HttpCookie("password");
        cookiePassword.Expires = DateTime.Now.AddDays(-1);
        HttpContext.Current.Response.Cookies.Add(cookiePassword);
    
        context.Session["USERModel"] = null;
        context.Session.Clear();
        return "";
    }
    
  • 相关阅读:
    JAVA设计模式之桥接模式
    Pycharm新建模板默认添加作者时间等信息
    Handler机制(2)转载
    内部类学习
    设计模式-1依赖倒置原则示例
    正则表达式
    Service原理及例子
    Serializable接口
    设计模式之静态工厂模式
    Handler机制post方法使用
  • 原文地址:https://www.cnblogs.com/zhyue93/p/login.html
Copyright © 2020-2023  润新知