コード例 #1
0
        private SocialUserInfo GetQQUserInfo()
        {
            SocialUserInfo result = null;

            string code = Request.QueryString.GetValue("Code", string.Empty);

            if (code.IsNotEmpty())
            {
                QQAccessTokenRequestParams requestParams = new QQAccessTokenRequestParams(
                    QQConnectionSettings.GetConfig().LoginCallback.ToString(),
                    code);

                QQAccessTokenResponseParams responseParams = QQLoginConnectionManager.GetAccessToken(requestParams);

                QQGetOpenIDRequestParams getOpenParams = new QQGetOpenIDRequestParams(responseParams.AccessToken);

                QQGetOpenIDResponseParams openIDResponse = QQLoginConnectionManager.GetOpenID(getOpenParams);

                QQGetUserInfoResponseParams getUserInfoResponse = QQLoginConnectionManager.GetUserInfo(new QQGetUserInfoRequestParams(getOpenParams.AccessToken, openIDResponse.OpenID));

                result = getUserInfoResponse.ToSocialUserInfo();
            }

            return(result);
        }
コード例 #2
0
ファイル: QQLogin.aspx.cs プロジェクト: wooln/AK47Source
        protected void Page_Load(object sender, EventArgs e)
        {
            //提供在获取到OpenID时的转发页面,主要用于脚本间的跨域访问
            Uri bridgeRelativeUrl = new Uri(this.ResolveUrl("OpenIDBridge.aspx"), UriKind.Relative);

            Uri bridgeUri = bridgeRelativeUrl.MakeAbsolute(this.Request.Url);

            QQAuthorizationCodeRequestParams requestParams =
                new QQAuthorizationCodeRequestParams(QQConnectionSettings.GetConfig().LoginCallback.ToString(),
                                                     bridgeUri.ToString());

            Response.Redirect(requestParams.ToUrl());
        }
コード例 #3
0
        /// <summary>
        /// 转换成申请授权码的Url
        /// </summary>
        /// <returns></returns>
        /// <remarks>http://wiki.connect.qq.com/%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7openid_oauth2-0</remarks>
        public string ToUrl()
        {
            this.AccessToken.CheckStringIsNullOrEmpty("AccessToken");

            QQConnectionSettings settings = QQConnectionSettings.GetConfig();

            string result = settings.OpenIDPath.ToString();

            NameValueCollection queryParams = new NameValueCollection();

            queryParams["access_token"] = this.AccessToken;

            return(UriHelper.CombineUrlParams(result, queryParams));
        }
コード例 #4
0
        /// <summary>
        /// 转换成申请访问码的Url
        /// </summary>
        /// <returns></returns>
        /// <remarks>http://wiki.connect.qq.com/openapi%e8%b0%83%e7%94%a8%e8%af%b4%e6%98%8e_oauth2-0</remarks>
        public string ToUrl()
        {
            this.AccessToken.CheckStringIsNullOrEmpty("AccessToken");
            this.OpenID.CheckStringIsNullOrEmpty("OpenID");

            QQConnectionSettings settings = QQConnectionSettings.GetConfig();

            string result = settings.GetUserInfoPath.ToString();

            NameValueCollection queryParams = new NameValueCollection();

            queryParams["access_token"]       = this.AccessToken;
            queryParams["oauth_consumer_key"] = settings.AppID;
            queryParams["openid"]             = this.OpenID;

            return(UriHelper.CombineUrlParams(result, queryParams));
        }
コード例 #5
0
        /// <summary>
        /// 转换成申请授权码的Url
        /// </summary>
        /// <returns></returns>
        /// <remarks>http://wiki.connect.qq.com/%e4%bd%bf%e7%94%a8authorization_code%e8%8e%b7%e5%8f%96access_token#Step1.EF.BC.9A.E8.8E.B7.E5.8F.96AuthorizationCode</remarks>
        public string ToUrl()
        {
            this.RedirectUri.CheckStringIsNullOrEmpty("RedirectUri");

            QQConnectionSettings settings = QQConnectionSettings.GetConfig();

            string result = settings.AuthorizationPath.ToString();

            NameValueCollection queryParams = new NameValueCollection();

            queryParams["response_type"] = "code";
            queryParams["client_id"]     = settings.AppID;
            queryParams["redirect_uri"]  = this.RedirectUri;
            queryParams["state"]         = this.State;
            queryParams["scope"]         = this.Scope;

            return(UriHelper.CombineUrlParams(result, queryParams));
        }
コード例 #6
0
        /// <summary>
        /// 转换成申请访问码的Url
        /// </summary>
        /// <returns></returns>
        /// <remarks>http://wiki.connect.qq.com/%e4%bd%bf%e7%94%a8authorization_code%e8%8e%b7%e5%8f%96access_token#Step2.EF.BC.9A.E9.80.9A.E8.BF.87AuthorizationCode.E8.8E.B7.E5.8F.96AccessToken</remarks>
        public string ToUrl()
        {
            this.RedirectUri.CheckStringIsNullOrEmpty("RedirectUri");
            this.Code.CheckStringIsNullOrEmpty("Code");

            QQConnectionSettings settings = QQConnectionSettings.GetConfig();

            string result = settings.AccessTokenPath.ToString();

            NameValueCollection queryParams = new NameValueCollection();

            queryParams["grant_type"]    = "authorization_code";
            queryParams["client_id"]     = settings.AppID;
            queryParams["client_secret"] = settings.AppKey;
            queryParams["redirect_uri"]  = this.RedirectUri;
            queryParams["code"]          = this.Code;

            return(UriHelper.CombineUrlParams(result, queryParams));
        }