public JsonResult PhoneLogin([FromForm] string phone, [FromForm] string code) { DataResult dr = new DataResult(); try { DataResult dataResult = ExaminePhoneAndCode(phone, code); if (dataResult.code != "200") { return(Json(dataResult)); } UserEntity userEntity = userBLL.GetByPhone(phone); if (userEntity == null) { int rows = userBLL.CreateToPhone(phone); } PhoneCodeBLL phoneCodeBLL = new PhoneCodeBLL(); phoneCodeBLL.Delete(phone); UserEntity user = userBLL.GetByPhone(phone); UserTokenBLL userTokenBLL = new UserTokenBLL(); UserTokenEntity userTokenEntity = userTokenBLL.GetByUserId(user.userId); UserTokenEntity userToken = new UserTokenEntity(); if (userTokenEntity == null) { userToken = userTokenBLL.Create(user.userId); } else { userToken = userTokenBLL.Update(userTokenEntity); } LoginResult loginResult = new LoginResult(); loginResult.token = userToken.token; loginResult.userEntity = user; dr.code = "200"; dr.data = loginResult; } catch (Exception ex) { dr.code = "999"; dr.msg = ex.Message; } return(Json(dr)); }
public JsonResult PhonePasswordLogin([FromForm] string phone, [FromForm] string password) { DataResult dr = new DataResult(); try { if (string.IsNullOrWhiteSpace(phone) || phone.Length != 11) { dr.code = "201"; dr.msg = "手机号码错误"; return(Json(dr)); } UserEntity user = userBLL.GetByPhoneAndPassword(phone, Helper.DataEncrypt.DataMd5(password)); if (user == null) { dr.code = "201"; dr.msg = "手机号码或密码错误错误"; return(Json(dr)); } UserTokenBLL userTokenBLL = new UserTokenBLL(); UserTokenEntity userTokenEntity = userTokenBLL.GetByUserId(user.userId); UserTokenEntity userToken = new UserTokenEntity(); if (userTokenEntity == null) { userToken = userTokenBLL.Create(user.userId); } else { userToken = userTokenBLL.Update(userTokenEntity); } LoginResult loginResult = new LoginResult(); loginResult.token = userToken.token; loginResult.userEntity = user; dr.code = "200"; dr.data = loginResult; } catch (Exception ex) { dr.code = "999"; dr.msg = ex.Message; } return(Json(dr)); }
/// <summary> /// 根据token获取个人信息 /// </summary> /// <param name="token"></param> /// <returns></returns> protected UserEntity GetUserByToken(string token) { if (!string.IsNullOrWhiteSpace(token)) { UserBLL userBLL = new UserBLL(); UserTokenBLL userTokenBLL = new UserTokenBLL(); UserTokenEntity userTokenEntity = userTokenBLL.GetByToken(token); UserEntity userEntity = userBLL.GetById(userTokenEntity.userId); return(userEntity); } else { return(null); } }
/// <summary> /// 获取菜单 /// </summary> /// <param name="info"></param> /// <returns></returns> private BaseDataInfo GetMenu(BaseDataInfo info) { if (string.IsNullOrEmpty(info.Token)) { info.Result = false; info.ErrCode = "0x00000000"; info.Msg = "未登录或登录超时"; return(info); } long userId = new UserTokenBLL().GetUserFid(info.Token); if (userId == 0) { info.Result = false; info.ErrCode = "0x00000000"; info.Msg = "未登录或登录超时"; return(info); } List <MenuInfo> menus = new MenuBLL().GetAppMenus(userId); DataTable dt = new DataTable(); dt.Columns.Add("Id"); dt.Columns.Add("DIsplayOrder"); dt.Columns.Add("MenuName"); dt.Columns.Add("IconUrl"); dt.Columns.Add("FunctionUrl"); foreach (var menu in menus) { DataRow dr = dt.NewRow(); dr["Id"] = menu.Id; dr["DIsplayOrder"] = menu.DisplayOrder; if (info.Language.ToLower() == "zh-cn") { dr["MenuName"] = menu.MenuNameCn; } else { dr["MenuName"] = menu.MenuName; } dr["IconUrl"] = menu.FavoritePic; dr["FunctionUrl"] = menu.LinkUrl; dt.Rows.Add(dr); } info.Tables.Add("Menu", dt); return(info); }
public JsonResult WxLogin([FromForm] string code) { DataResult dr = new DataResult(); try { if (string.IsNullOrWhiteSpace(code)) { dr.code = "201"; dr.msg = "参数错误"; return(Json(dr)); } //UserEntity userEntity = userBLL.GetById(10007); //userEntity.account = code; //userBLL.ActionDal.ActionDBAccess.Updateable(userEntity).ExecuteCommand(); AccessTokenEntity accessTokenEntity = WeChat.LoginHelper.GetAccessToken(code); if (!string.IsNullOrWhiteSpace(accessTokenEntity.errcode)) { dr.code = "201"; dr.msg = "获取AccessToken失败"; return(Json(dr)); } AccessTokenEntity accessToken = WeChat.LoginHelper.GetRefreshToken(accessTokenEntity.refresh_token); if (!string.IsNullOrWhiteSpace(accessToken.errcode)) { dr.code = "201"; dr.msg = "获取RefreshToken失败"; return(Json(dr)); } AccessTokenEntity tokenEntity = WeChat.LoginHelper.SetExpiresIn(accessToken); if (string.IsNullOrWhiteSpace(tokenEntity.access_token) || string.IsNullOrWhiteSpace(tokenEntity.openid)) { dr.code = "201"; dr.msg = "续期失败"; return(Json(dr)); } WeChat.WxUserEntity wxUserEntity = WeChat.LoginHelper.GetWxUser(tokenEntity.access_token, tokenEntity.openid); if (string.IsNullOrWhiteSpace(wxUserEntity.openid) || !string.IsNullOrWhiteSpace(wxUserEntity.errcode)) { dr.code = "201"; dr.msg = "获取用户信息失败"; return(Json(dr)); } WxUserBLL wxUserBLL = new WxUserBLL(); Entity.WxUserEntity wxUser = wxUserBLL.GetByOpenId(wxUserEntity.openid); if (wxUser == null) { int rows = CreateWxUser(wxUserEntity); if (rows > 0) { dr.code = "201"; dr.msg = "创建用户失败"; return(Json(dr)); } } Entity.WxUserEntity wx = wxUserBLL.GetByOpenId(wxUserEntity.openid); UserEntity user = userBLL.GetById(wx.userId); UserTokenBLL userTokenBLL = new UserTokenBLL(); UserTokenEntity userTokenEntity = userTokenBLL.GetByUserId(user.userId); UserTokenEntity userToken = new UserTokenEntity(); if (userTokenEntity == null) { userToken = userTokenBLL.Create(user.userId); } else { userToken = userTokenBLL.Update(userTokenEntity); } LoginResult loginResult = new LoginResult(); loginResult.token = userToken.token; loginResult.userEntity = user; dr.code = "200"; dr.data = loginResult; } catch (Exception ex) { dr.code = "999"; dr.msg = ex.Message; } return(Json(dr)); }
/// <summary> /// 重写,登录过滤 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuting(ActionExecutingContext filterContext) { //获取跳过验证的标签如果有则跳过验证 var isDefined = false; var controllerActionDescriptor = filterContext.ActionDescriptor as ControllerActionDescriptor; if (controllerActionDescriptor != null) { isDefined = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) .Any(a => a.GetType().Equals(typeof(SkipCheckLoginAttribute))); } if (isDefined) { return; } DataResult dr = new DataResult() { code = "300", msg = "参数是必需的" }; //dynamic rpas = filterContext.ActionArguments.First().Value as dynamic; var para = filterContext.HttpContext.Request.Form; //rpas["token"]; //if (rpas == null) //{ // filterContext.Result = new JsonResult(dr); // return; //} string token = para["token"]; if (string.IsNullOrWhiteSpace(token)) { dr.msg = "token为空!"; filterContext.Result = new JsonResult(dr); return; } UserTokenBLL userTokenBLL = new UserTokenBLL(); UserTokenEntity userTokenEntity = userTokenBLL.GetByToken(token); if (userTokenEntity == null) { dr.msg = "token错误!"; filterContext.Result = new JsonResult(dr); return; } int difference = 10000; if (DateTime.Now.Subtract(userTokenEntity.createDate).Minutes > difference) { dr.msg = "token过期!"; filterContext.Result = new JsonResult(dr); return; } userTokenBLL.UpdateTime(userTokenEntity); base.OnActionExecuting(filterContext); }