/// <summary> /// 验证BC端登陆用户信息 /// </summary> /// <param name="userName"></param> /// <param name="passWord"></param> public bool VerifyBCLoginUser(string userId, string passWord) { //先通过session,查出用户ID string pUserID = SysCurUser.GetCurUserID(); LogSwHelper.Sing.Info("BC验证,从Session中获取userid:" + pUserID); if (!string.IsNullOrEmpty(pUserID)) { CurUserM pUser = SysCurUser.GetCurUser(); if (pUser != null && pUser.UserId == userId) { var pwdCode = Emperor.UtilityLib.CyberUtils.Encrypt("Aes", 256, passWord, "TW" + userId); if (pUser.Password == pwdCode) { return(true); } } } else { //适用于登陆验证,通过用户ID获取当前用户 UserTM pUser = GetUserByID(userId, _da.GetUserByUserID); if (pUser != null && pUser.UserId == userId) { var pwdCode = Emperor.UtilityLib.CyberUtils.Encrypt("Aes", 256, passWord, "TW" + userId); if (pUser.Password == pwdCode) { return(true); } } } return(false); }
/// <summary> /// 验证WA端登陆用户信息 /// </summary> /// <param name="code"></param> /// <param name="agentid"></param> public void VerifyWALoginUser(string code, string agentid) { //先通过session,查出用户ID string pUserID = SysCurUser.GetCurUserID(); LogSwHelper.Sing.Info("WA验证,从Session中获取userid:" + pUserID); if (string.IsNullOrEmpty(pUserID)) { LogSwHelper.Sing.Info("获取code:" + code); LogSwHelper.Sing.Info("获取agentid:" + agentid); int iagentid = 0; if (int.TryParse(agentid, out iagentid)) { var pWeixinid = GetWeixinidByAPI(code, iagentid); if (string.IsNullOrEmpty(pWeixinid)) { throw new Exception(); } LogSwHelper.Sing.Info("从API中获取微信号:" + pWeixinid); //适用于登陆验证,通过微信号获取当前用户 UserTM pUser = GetUserByID(pWeixinid, _da.GetUserByWeixinid); //WA端验证的是微信号 if (pUser == null || pUser.WeixinId != pWeixinid) { throw new Exception(); } LogSwHelper.Sing.Info("从API中获取userid:" + pUser.UserId); } else { throw new Exception(); } } }
/// <summary> /// 获取当前用户所属租户ID /// </summary> /// <returns></returns> protected int GetCurTid() { var pCurSysUser = SysCurUser.GetCurUser(); if (pCurSysUser != null) { return(pCurSysUser.Tid); } return(-1); }
/// <summary> /// 获取标签 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public DataTable GetTags() { var tid = SysCurUser.GetCurUser().Tid; if (tid == -1) { return(null); } DataTable dt = _pADO.Query(SqlScriptHelper.Tag.SEL_TAGS, new string[] { "?tid" }, new object[] { tid }, string.Empty); return(dt); }
/// <summary> /// 获取租户所有部门对应用户关系 /// </summary> /// <returns></returns> public DataTable GetDep2UserRel() { var tid = SysCurUser.GetCurUser().Tid; if (tid == -1) { return(null); } DataTable dt = _pADO.Query(SqlScriptHelper.Department.SEL_DEP2USERREL, new string[] { "?tid" }, new object[] { tid }, string.Empty); return(dt); }
/// <summary> /// 获取用户 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public DataTable GetUsers() { var tid = SysCurUser.GetCurUser().Tid; if (tid == -1) { return(null); } var tbNameFull = SysCurUser.GetCurUser().TenantRoutes.Single(t => t.TbName == SqlScriptHelper.T_USER).TbNameFull; var sFIlter = string.Format(SqlScriptHelper.SEL_SINGLEUSER, tbNameFull, "1=1"); DataTable dt = _pADO.Query(sFIlter, new string[] { "?tid" }, new object[] { tid }, string.Empty); return(dt); }
/// <summary> /// 适用于登陆验证,通过用户ID获取当前用户 /// </summary> /// <param name="UserID"></param> /// <returns></returns> private CurUserM GetUserByID(string pID, Func <string, DataTable> pFunc) { //通过UserID获取用户 或 通过微信号获取用户,根据传入Func而定 DataTable dt = pFunc.Invoke(pID); if (dt.IsNull()) { return(null); } var pUsers = CommonFunction.GetEntitiesFromDataTable <CurUserM>(dt); var pUser = pUsers[0]; //获取租户路由信息 var dttr = _da.GetTenantRoutesByTid(pUser.Tid); if (!dttr.IsNull()) { var pTenRoutes = CommonFunction.GetEntitiesFromDataTable <TenantRouteM>(dttr); pUser.TenantRoutes = pTenRoutes; //获取用户所在部门 var dtDeparts = _da.GetDepartmentBySysUserID(pUser.Tid, pUser.SysUserId); if (!dtDeparts.IsNull()) { var pDepartments = CommonFunction.GetEntitiesFromDataTable <DepartmentTM>(dtDeparts); pUser.Departments = pDepartments; //获取用户及部门所属标签 var dtTags = _da.GetTagsBySysUserID(pUser.Tid, pUser.SysUserId, pDepartments.Select(p => p.SysDepartmentId).ToArray()); if (!dtTags.IsNull()) { var pTags = CommonFunction.GetEntitiesFromDataTable <TagTM>(dtTags); pUser.Tags = pTags; //获取标签所有菜单 var dtMenus = _da.GetMenuBySysTagID(pTags.Select(p => p.SysTagId).ToArray()); if (!dtMenus.IsNull()) { var pMenus = CommonFunction.GetEntitiesFromDataTable <MenuTM>(dtMenus); pUser.Menus = pMenus; } } } } //设置当前用户 SysCurUser.SetCurUser(pUser); return(pUser); }
public HttpResponseMessage Login([FromBody] UserPostParamVM param) { HttpResponseMessage response = new HttpResponseMessage(); string strUserName = param.Account; string strPassword = param.Password; var accountModel = new AccountHelper(); try { //验证用户是否是系统注册用户 if (accountModel.ValidateUserLogin(strUserName, strPassword)) { //创建用户ticket信息 var token = accountModel.CreateLoginUserTicket(strUserName, strPassword); ////读取用户权限数据 //accountModel.GetUserAuthorities(strUserName); //获取当前用户 var pCurUser = SysCurUser.GetCurUser(); response = Request.CreateResponse(HttpStatusCode.OK, new { userId = pCurUser.UserId, role = 1, token = token, time = 0, menu = pCurUser.Menus.Select(p => p.Href).Where(p => !string.IsNullOrEmpty(p)).ToList() }); } else { response = Request.CreateResponse(HttpStatusCode.Forbidden); //response = Request.CreateResponse(HttpStatusCode.OK, new { userId = string.Empty, role = 1, token = string.Empty, time = 0 }); } } catch (Exception ex) { Logger.Log4Net.Info("登陆错误" + ex.Message); response = Request.CreateResponse <string>(HttpStatusCode.InternalServerError, ex.Message); } return(response); }