Exemplo n.º 1
0
        /// <summary>
        /// 按唯一识别码登录
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="openId">唯一识别码</param>
        /// <param name="returnStatusCode">返回状态码</param>
        /// <param name="returnStatusMessage">返回状消息</param>
        /// <returns>用户实体</returns>
        public UserInfo LogOnByOpenId(UserInfo userInfo, string openId, out string returnStatusCode, out string returnStatusMessage)
        {
            string   returnCode     = string.Empty;
            string   returnMessage  = string.Empty;
            UserInfo returnUserInfo = null;
            var      parameter      = ParameterUtil.CreateWithLog(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var userManager = new PiUserManager(dbProvider, userInfo);
                // 先侦测是否在线
                userLogOnManager.CheckOnLine();
                // 再进行登录
                returnUserInfo = userManager.LogOnByOpenId(openId, null, null);
                returnCode     = userManager.ReturnStatusCode;
                returnMessage  = userManager.GetStateMessage(userManager.ReturnStatusCode);
            });
            returnStatusCode    = returnCode;
            returnStatusMessage = returnMessage;
            return(returnUserInfo);
        }