/// <summary> /// 用户登录 /// </summary> /// <param name="userInfo">用户</param> /// <param name="userName">用户名</param> /// <param name="password">密码</param> /// <param name="openId">单点登录标识</param> /// <param name="createOpenId">重新创建单点登录标识</param> /// <param name="returnStatusCode">返回状态码</param> /// <param name="returnStatusMessage">返回状消息</param> /// <returns>用户实体</returns> public UserInfo UserLogOn(UserInfo userInfo, string userName, string password, string openId, bool createOpenId, out string returnStatusCode, out string returnStatusMessage) { returnStatusCode = StatusCode.DbError.ToString(); string returnCode = string.Empty; string returnMessage = string.Empty; UserInfo returnUserInfo = null; var parameter = ParameterUtil.CreateWithLog(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessRDIWriteDbWithLock(userInfo, parameter, locker, dbProvider => { var userManager = new PiUserManager(dbProvider, userInfo); // 先侦测是否在线 //userLogOnManager.CheckOnLine(); // 再进行登录 returnUserInfo = userManager.LogOn(userName, password, openId, createOpenId); returnCode = userManager.ReturnStatusCode; returnMessage = userManager.GetStateMessage(returnCode); }); returnStatusCode = returnCode; returnStatusMessage = returnMessage; return(returnUserInfo); }