Exemple #1
0
        /// <summary>
        /// 登录校验.
        /// </summary>
        /// <returns>校验状态.</returns>
        /// <param name="iUserInfo">用户信息.</param>
        private void loginCheck(OneSDKUserInfo iUserInfo)
        {
            this.UpdateStatus(SDKStatus.LoginChecking);
            if (true == string.IsNullOrEmpty(this._loginCheckBaseUrl))
            {
                this.Error("loginCheck()::The base url of login check is invalid!!!");
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return;
            }

            string _loginCheckUrl = this._loginCheckBaseUrl;

            this.Info("loginCheck()::Url:{0}", _loginCheckUrl);
            if (true == string.IsNullOrEmpty(_loginCheckUrl))
            {
                this.Error("loginCheck()::The url of login check is invalid!!!");
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return;
            }

            // 详细数据
            string _jsonData = GetLoginCheckInfoJson(iUserInfo);

            if (true == string.IsNullOrEmpty(_jsonData))
            {
                this.Error("createLoginCheckURL():JsonConvert Failed!!!(Data:{0})",
                           iUserInfo.ToString());
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return;
            }

            HttpWebResponse _response = executeHttpPost(_loginCheckUrl, _jsonData);

            if (null == _response)
            {
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return;
            }
            this.Info("loginCheck()::Result:{0}", _response.StatusCode);
            if (HttpStatusCode.OK != _response.StatusCode)
            {
                if (null != this._loginCheckFailed)
                {
                    this._loginCheckFailed(_response.StatusCode.ToString());
                }
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return;
            }

            if (null != this._loginCheckSuccessed)
            {
                this._loginCheckSuccessed(_response.StatusCode.ToString());
            }

            this.UpdateStatus(SDKStatus.LoginCheckSuccessed);
        }
Exemple #2
0
        /// <summary>
        /// 应用.
        /// </summary>
        /// <param name="iUserInfo">用户数据.</param>
        public void Apply(OneSDKUserInfo iUserInfo)
        {
            this.Reset();

            this.app      = iUserInfo.ProductCode;
            this.sdk      = iUserInfo.ChannelId;
            this.uin      = iUserInfo.ChannelUserId;
            this.sess     = iUserInfo.Token;
            this.channel  = iUserInfo.ChannelId;
            this.platform = BuildInfo.GetInstance().PlatformType.ToString();
            this.option   = "OneSDK";
        }
Exemple #3
0
        /// <summary>
        /// 取得登录校验用信息(Json格式).
        /// </summary>
        /// <returns>登录校验用信息(Json格式).</returns>
        /// <param name="iUserInfo">易接用户信息.</param>
        private string GetLoginCheckInfoJson(OneSDKUserInfo iUserInfo)
        {
            OneSDKLoginCheckInfo _checkInfo = new OneSDKLoginCheckInfo();

            if (null == _checkInfo)
            {
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return(null);
            }
            _checkInfo.Apply(iUserInfo);

            // 详细数据
            string _jsonData = UtilsJson <OneSDKLoginCheckInfo> .ConvertToJsonString(_checkInfo);

            if (true == string.IsNullOrEmpty(_jsonData))
            {
                this.Error("createLoginCheckURL():JsonConvert Failed!!!(Data:{0})",
                           _checkInfo.ToString());
                this.UpdateStatus(SDKStatus.LoginCheckFailed);
                return(null);
            }
            return(_jsonData);
        }
Exemple #4
0
        /// <summary>
        /// 解析登录信息.
        /// </summary>
        /// <returns>Json数据对象.</returns>
        /// <param name="iJsonDetail">Json详细.</param>
        public SDKAccountBaseInfo ParserLoginResponseInfo(string iJsonDetail)
        {
            // 登录完成
            this.UpdateStatus(SDKStatus.LoginCompleted);

            if (null == this._userInfo)
            {
                this._userInfo = new OneSDKUserInfo();
            }
            if (null == this._userInfo)
            {
                this.Error("ParserLoginResponseInfo()::Memory New Error!!!!");
                return(this._userInfo);
            }
            this._userInfo.Reset();

            SFJSONObject _sfjson = new SFJSONObject(iJsonDetail);

            if (null == _sfjson)
            {
                return(null);
            }
            string _status       = (string)_sfjson.get("result");
            string _customParams = (string)_sfjson.get("customParams");

            this.Info("ParserLoginResponseInfo()::CustomParams:{0}", _customParams);

            // 登出
            if (true == S_LOGOUT.Equals(_status))
            {
                this._sfUserInfo = null;
                this.UpdateStatus(SDKStatus.Logouted);

                // 重登录
                if (true == this._isLogin)
                {
                    this.ReLogin();
                }

                // 登录成功
            }
            else if (true == S_LOGIN_SUCCESS.Equals(_status))
            {
                this.UpdateStatus(SDKStatus.LoginCompleted);

                SFJSONObject _userinfoTmp = (SFJSONObject)_sfjson.get("userinfo");
                if (null != _userinfoTmp)
                {
                    this._userInfo.UserID        = long.Parse((string)_userinfoTmp.get("id"));
                    this._userInfo.ChannelId     = (string)_userinfoTmp.get("channelid");
                    this._userInfo.ChannelUserId = (string)_userinfoTmp.get("channeluserid");
                    this._userInfo.UserName      = (string)_userinfoTmp.get("username");
                    this._userInfo.Token         = (string)_userinfoTmp.get("token");
                    this._userInfo.ProductCode   = (string)_userinfoTmp.get("productcode");
                    this._sfUserInfo             = new SFOnlineUser(
                        this._userInfo.UserID,
                        this._userInfo.ChannelId,
                        this._userInfo.ChannelUserId,
                        this._userInfo.UserName,
                        this._userInfo.Token,
                        this._userInfo.ProductCode);
                }
                if (null != this._loginCheckCallback)
                {
                    // 校验数据
                    string _checkInfo = GetLoginCheckInfoJson(this._userInfo);
                    if (true == string.IsNullOrEmpty(_checkInfo))
                    {
                        this.Error("ParserLoginResponseInfo():JsonConvert Failed!!!(Data:{0})",
                                   this._userInfo.ToString());
                        this.UpdateStatus(SDKStatus.LoginCheckFailed);
                        return(null);
                    }
                    this.Info("ParserLoginResponseInfo()::CheckInfo:{0}", _checkInfo);
                    this._loginCheckCallback(_checkInfo, this._loginCheckSuccessed, this._loginCheckFailed);
                }
                else
                {
                    // 登录校验&更新状态
                    loginCheck(this._userInfo);
                }

                // 登录失败
            }
            else if (true == S_LOGIN_FAILED.Equals(_status))
            {
                this.UpdateStatus(SDKStatus.LoginFailed);
                // 重登录
                if (true == this._isLogin)
                {
                    this.ReLogin();
                }
            }
            this.Info("ParserLoginResponseInfo()::UserResultInfo:{0}", this._userInfo.ToString());
            return(this._userInfo);
        }