/// <summary> /// 按用户名登录(LDAP专用) /// </summary> /// <param name="userInfo">用户</param> /// <param name="userName">用户名</param> /// <param name="statusCode">返回状态码</param> /// <param name="statusMessage">返回状消息</param> /// <returns>用户实体</returns> public BaseUserInfo LogOnByUserName(BaseUserInfo userInfo, string userName, out string statusCode, out string statusMessage) { var parameter = ServiceParameter.CreateWithLog(userInfo , MethodBase.GetCurrentMethod()); BaseUserInfo returnUserInfo = null; string returnCode = string.Empty; string returnMessage = string.Empty; ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { // 先侦测是否在线 userLogOnManager.CheckOnLine(); // 然后获取用户密码 var userManager = new BaseUserManager(userInfo); // 是否从角色判断管理员 userManager.CheckIsAdministrator = true; BaseUserEntity userEntity = userManager.GetByUserName(userName); BaseUserLogOnEntity userLogOnEntity = userLogOnManager.GetObject(userEntity.Id); string password = userLogOnEntity.UserPassword; // 再进行登录 returnUserInfo = userManager.LogOnByUserName(userName, password, null, false, userInfo.IPAddress, userInfo.MACAddress, false); returnCode = userManager.StatusCode; returnMessage = userManager.GetStateMessage(); // 登录时会自动记录进行日志记录,所以不需要进行重复日志记录 // BaseLogManager.Instance.Add(userInfo, this.serviceName, MethodBase.GetCurrentMethod()); }); statusCode = returnCode; statusMessage = returnMessage; return(returnUserInfo); }
/// <summary> /// 按用户名登录(LDAP专用) /// </summary> /// <param name="taskId">任务标识</param> /// <param name="systemCode">子系统编码</param> /// <param name="userInfo">用户</param> /// <param name="userName">用户名</param> /// <returns>用户实体</returns> public UserLogonResult LogonByUserName(string taskId, string systemCode, BaseUserInfo userInfo, string userName) { var result = new UserLogonResult(); var parameter = ServiceInfo.Create(taskId, userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { // 先侦测是否在线 //userLogonManager.CheckOnline(); // 然后获取用户密码 var userManager = new BaseUserManager(userInfo); // 是否从角色判断管理员 userManager.CheckIsAdministrator = true; //根据用户名获取用户信息 var userEntity = userManager.GetByUserName(userName); if (userEntity != null) { var baseUserLogonManager = new BaseUserLogonManager(userInfo); //获取密码 var userLogonEntity = baseUserLogonManager.GetEntityByUserId(userEntity.Id); var password = userLogonEntity.UserPassword; //再进行登录,这里密码不能是AD的密码,所以不检验密码 result = userManager.LogonByUserName(userName, password, systemCode, null, null, null, false, false); //可以登录,但不建议,没有登录日志等 //result = userManager.LogonByOpenId(openId, string.Empty, string.Empty); } // 登录时会自动记录进行日志记录,所以不需要进行重复日志记录 //BaseLogManager.Instance.Add(userInfo, this.serviceName, MethodBase.GetCurrentMethod()); }); return(result); }