예제 #1
0
        public async Task <IHttpActionResult> Getlogin_info(string username, string password)
        {
            try
            {
                HttpContextBase context  = (HttpContextBase)Request.Properties["MS_HttpContext"];
                String          clientIP = context.Request.UserHostAddress;

                login_info info = await db.login_info.SingleOrDefaultAsync(m => m.user_name.Equals(username) && m.user_pwd.Equals(password));

                if (info != null)
                {
                    int    userId = info.user_id;
                    string Token  = Guid.NewGuid().ToString();
                    var    dtNow  = DateTime.Now;

                    ticketauth tka = await db.ticketauth.SingleOrDefaultAsync(m => m.user_id == userId && m.state == 1 && m.user_type == 1);

                    if (tka != null)
                    {
                        tka.state = 0;
                        db.ticketauth.Attach(tka);
                        var stateEntity = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(tka);
                        stateEntity.SetModifiedProperty("state");
                        //db.ticketauth.Remove(tka);
                    }
                    ticketauth tmp = new ticketauth();
                    tmp.user_id     = userId;
                    tmp.token       = Token;
                    tmp.create_time = dtNow;
                    tmp.expire_time = dtNow.AddYears(1);
                    tmp.state       = 1;
                    tmp.user_type   = 1;
                    tmp.client_ip   = clientIP;
                    db.ticketauth.Add(tmp);
                    await db.SaveChangesAsync();

                    LoginToken res = new LoginToken();
                    res.code   = 100;
                    res.member = info;
                    res.token  = Token;
                    return(Ok(res));
                }
                else
                {
                    LoginToken res = new LoginToken();
                    res.code    = 101;
                    res.message = "错误的用户名或密码!";
                    return(Ok(res));
                }
            }catch (Exception e)
            {
                LoginToken res = new LoginToken();
                log.Error(e.Message);
                res.code    = 102;
                res.message = "未知错误:" + e.Message + "--" + e.InnerException.Message;
                return(Ok(res));
            }
        }
예제 #2
0
        public async Task <IHttpActionResult> Logoutlogin_info(string token)
        {
            ticketauth tka = await db.ticketauth.SingleAsync(m => m.token.Equals(token));

            if (tka != null)
            {
                db.ticketauth.Remove(tka);
                await db.SaveChangesAsync();
            }

            return(Ok());
        }
예제 #3
0
        public async Task <IHttpActionResult> GetWxLoginInfo(string openId)
        {
            try
            {
                HttpContextBase context      = (HttpContextBase)Request.Properties["MS_HttpContext"];
                String          clientIP     = context.Request.UserHostAddress;
                string          username     = context.Request.Headers.Get("username");
                string          userfullname = context.Request.Headers.Get("userfullname");
                string          avatarUrl    = context.Request.Headers.Get("avatarUrl");
                int             userId       = 0;
                wx_user         info         = await db.wx_user.SingleOrDefaultAsync(m => m.wx_id.Equals(openId));

                if (info != null)
                {
                    userId = info.sid;
                }
                else
                {
                    info             = new wx_user();
                    info.avatar_url  = avatarUrl;
                    info.create_time = DateTime.Now;
                    info.wx_id       = openId;
                    info.real_name   = userfullname;
                    info.wx_name     = username;
                    info.state       = 0;

                    db.wx_user.Add(info);
                    await db.SaveChangesAsync();

                    userId = info.sid;
                }


                string Token = Guid.NewGuid().ToString();
                var    dtNow = DateTime.Now;

                ticketauth tka = await db.ticketauth.SingleOrDefaultAsync(m => m.user_id == userId && m.state == 1 && m.user_type == 2);

                if (tka != null)
                {
                    tka.state = 0;
                    db.ticketauth.Attach(tka);
                    var stateEntity = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(tka);
                    stateEntity.SetModifiedProperty("state");
                }
                ticketauth tmp = new ticketauth();
                tmp.user_id     = userId;
                tmp.token       = Token;
                tmp.create_time = dtNow;
                tmp.expire_time = dtNow.AddYears(1);
                tmp.state       = 1;
                tmp.user_type   = 2;
                tmp.client_ip   = clientIP;
                db.ticketauth.Add(tmp);
                await db.SaveChangesAsync();

                WxLoginToken res = new WxLoginToken();
                res.code   = 100;
                res.member = info;
                res.token  = Token;
                return(Ok(res));
            }
            catch (Exception e)
            {
                WxLoginToken res = new WxLoginToken();
                log.Error(e.Message);
                res.code    = 102;
                res.message = "未知错误:" + e.Message + "--" + e.InnerException.Message;
                return(Ok(res));
            }
        }