| | |
| | | ToMessage mes = new ToMessage(); |
| | | RedisHelper redis = new RedisHelper(); |
| | | |
| | | #region[用户登录] |
| | | /// <summary> |
| | | /// 用户登录 |
| | | /// </summary> |
| | | /// <param name="username">用户名</param> |
| | | /// <param name="username">用户编码</param> |
| | | /// <param name="password">密码</param> |
| | | /// <returns></returns> |
| | | [Route(template: "LoginSave")] |
| | |
| | | { |
| | | List<User> mss = new List<User>(); |
| | | User ms = new User(); |
| | | //ms.guid=Guid.NewGuid().ToString(); |
| | | ms.guid = username + password + Guid.NewGuid().ToString(); |
| | | ms.userid = Convert.ToInt32(dt.Rows[0]["ID"].ToString()); |
| | | ms.usercode = dt.Rows[0]["USERCODE"].ToString(); |
| | | ms.username = dt.Rows[0]["USERNAME"].ToString(); |
| | |
| | | //User loginUser = JsonConvert.DeserializeObject<User>(HttpContext.Current.Session["User"].ToString()); |
| | | User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms)); |
| | | //如果redis登录用户中不存在当前用户 |
| | | if (redis.Get<User>("LoginUserID" + ms.userid, 0) == null) |
| | | if (redis.Get<User>("LoginUserID" + ms.usertype + ms.userid, 0) == null) |
| | | { |
| | | //redis.Remove("LoginUserID" + ms.userid, 0); |
| | | //写入redis(注意:redis类里面的失效时间必须在key创建完成之后才生效) |
| | | redis.Set<User>("LoginUserID" + ms.userid, ms, redis.secondsTimeOut, 0); |
| | | redis.Set<User>("LoginUserID" + ms.usertype + ms.userid, ms, redis.secondsTimeOut, 0); |
| | | //登录信息写入session |
| | | HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms); |
| | | //写入登录操作记录 |
| | |
| | | else //如果存在 |
| | | { |
| | | //获取redis中当前用户信息 |
| | | User r_loginUser = redis.Get<User>("LoginUserID" + ms.userid, 0); |
| | | User r_loginUser = redis.Get<User>("LoginUserID" + ms.usertype + ms.userid, 0); |
| | | //如果session中的用户usercode和redis中的用户usercode匹配 |
| | | if (r_loginUser.usercode.Equals(loginUser.usercode)) |
| | | { |
| | | mes.data = ms; |
| | | mes.code = "300"; |
| | | mes.Message = "当前账号已登录!"; |
| | | mes.code = "302"; |
| | | mes.Message = "当前账号已登录,是否强制下线!"; |
| | | } |
| | | else |
| | | { |
| | | //重置过期时间(注意:redis类里面的失效时间必须在key创建完成之后才生效) |
| | | redis.Set<User>("LoginUserID" + loginUser.userid, loginUser, redis.secondsTimeOut, 0); |
| | | redis.Set<User>("LoginUserID" + ms.usertype + loginUser.userid, loginUser, redis.secondsTimeOut, 0); |
| | | //登录信息写入session |
| | | HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms); |
| | | //写入登录操作记录 |
| | |
| | | mes.code = "300"; |
| | | mes.Message = e.Message; |
| | | } |
| | | |
| | | |
| | | return mes.ResponseMess(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[强制下线接口] |
| | | /// <summary> |
| | | /// 强制下线接口 |
| | | /// </summary> |
| | | /// <param name="userid">用户id</param> |
| | | /// <param name="usercode">用户编码</param> |
| | | /// <param name="username">用户名</param> |
| | | /// <param name="usertype">操作端PC/APP</param> |
| | | /// <returns></returns> |
| | | [Route(template: "ForcedOffline")] |
| | | [HttpPost] |
| | | public HttpResponseMessage ForcedOffline(int userid, string usercode, string username, string usertype) |
| | | { |
| | | try |
| | | { |
| | | redis.Remove("LoginUserID" + usertype + userid, 0); //删除redis |
| | | mes.code = "200"; |
| | | mes.count = 0; |
| | | mes.Message = "强制下线成功!"; |
| | | mes.data = null; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | return mes.ResponseMess(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[查询登录菜单] |
| | | /// <summary> |
| | |
| | | /// <param name="password">密码</param> |
| | | /// <param name="newpassword">新密码</param> |
| | | /// <returns></returns> |
| | | [ChannelActionFilter,Route(template: "UpdateUserPassword")] |
| | | [ChannelActionFilter, Route(template: "UpdateUserPassword")] |
| | | [HttpPost] |
| | | public HttpResponseMessage UpdateUserPassword(string usercode, string username, string password,string newpassword) |
| | | public HttpResponseMessage UpdateUserPassword(string usercode, string username, string password, string newpassword) |
| | | { |
| | | mes = LoginBLL.UpdateUserPassword(usercode,username, password,newpassword); |
| | | mes = LoginBLL.UpdateUserPassword(usercode, username, password, newpassword); |
| | | return mes.ResponseMess(mes); |
| | | } |
| | | #endregion |
| | |
| | | /// <param name="username">用户名</param> |
| | | /// <param name="usertype">操作端PC/APP</param> |
| | | /// <returns></returns> |
| | | [ChannelActionFilter, Route(template: "LoginOut")] |
| | | [Route(template: "LoginOut")] |
| | | [HttpPost] |
| | | public HttpResponseMessage LoginOut(int userid, string usercode, string username,string usertype) |
| | | [ChannelActionFilter] |
| | | public HttpResponseMessage LoginOut(int userid, string usercode, string username, string usertype) |
| | | { |
| | | mes = LoginBLL.LoginOut(userid,usercode, username, usertype); |
| | | mes = LoginBLL.LoginOut(userid, usercode, username, usertype); |
| | | return mes.ResponseMess(mes); |
| | | } |
| | | #endregion |