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); }
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()); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }