Beispiel #1
0
        /// <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);
        }