public static void RequestAccessToken(string appid, string appkey, string oauth_token, string oauth_token_secret, string oauth_vericode) { // 生成加密的验证数据 int oauth_nonce = DateTime.Today.Year + DateTime.Today.Month * DateTime.Today.Day * DateTime.Now.Second + DateTime.Now.Millisecond; int oauth_timestamp = Convert.ToInt32((DateTime.Now - TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime("1970-1-1"))).TotalSeconds); Dictionary <string, string> keyValues = new Dictionary <string, string>(); keyValues.Add("oauth_consumer_key", appid); keyValues.Add("oauth_nonce", oauth_nonce.ToString()); keyValues.Add("oauth_signature_method", "HMAC-SHA1"); keyValues.Add("oauth_timestamp", oauth_timestamp.ToString()); keyValues.Add("oauth_token", oauth_token); keyValues.Add("oauth_vericode", oauth_vericode); keyValues.Add("oauth_version", "1.0"); string key = string.Format("{0}&{1}", appkey, oauth_token_secret); string url = OAuthHelper.GenerationRequestUrl(OAuthHelper.QZONEOAUTH_ACCESS_TOKEN, keyValues, key); string result = OAuthHelper.RequestUrl(url); if (OAuthHelper.ValidationResult(result)) { NameValueCollection nvc = HttpUtility.ParseQueryString(result); OAuthHelper.OAuth_Token = nvc["oauth_token"]; OAuthHelper.OAuth_Token_Secret = nvc["oauth_token_secret"]; OAuthHelper.OpenId = nvc["openid"]; HttpContext.Current.Response.Redirect(OAuthHelper.SuccessRedirectUrl); } OAuthHelper.RedirectFailPage(result); }
/// <summary> /// 登录 /// </summary> /// <param name="appid"></param> /// <param name="appkey"></param> /// <param name="qqcallbackurl"></param> /// <param name="redirecturl"></param> /// <param name="onFail"></param> public static void Login(string appid, string appkey, string qqcallbackurl, string onSuccessRedirectUrl, string onFailRedirectUrl) { OAuthHelper.AppId = appid; OAuthHelper.AppKey = appkey; OAuthHelper.SuccessRedirectUrl = onSuccessRedirectUrl; OAuthHelper.FailRedirectUrl = onFailRedirectUrl; //// 生成加密的验证数据 int oauth_nonce = DateTime.Today.Year + DateTime.Today.Month * DateTime.Today.Day * DateTime.Now.Second + DateTime.Now.Millisecond; int oauth_timestamp = Convert.ToInt32((DateTime.Now - TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime("1970-1-1"))).TotalSeconds); Dictionary <string, string> keyValues = new Dictionary <string, string>(); keyValues.Add("oauth_consumer_key", OAuthHelper.AppId); keyValues.Add("oauth_nonce", oauth_nonce.ToString()); keyValues.Add("oauth_signature_method", "HMAC-SHA1"); keyValues.Add("oauth_timestamp", oauth_timestamp.ToString()); keyValues.Add("oauth_version", "1.0"); string key = string.Format("{0}&", OAuthHelper.AppKey); string url = OAuthHelper.GenerationRequestUrl(OAuthHelper.QZONEOAUTH_REQUEST_TOKEN, keyValues, key); string result = OAuthHelper.RequestUrl(url); if (OAuthHelper.ValidationResult(result)) { NameValueCollection nvc = HttpUtility.ParseQueryString(result); string redirectUrl = string.Format("{0}?oauth_consumer_key={1}&oauth_token={2}&oauth_callback={3}", OAuthHelper.QZONEOAUTH_AUTHORIZE, appid, nvc["oauth_token"], HttpContext.Current.Server.UrlEncode(qqcallbackurl)); OAuthHelper.OAuth_Token_Secret = nvc["oauth_token_secret"]; HttpContext.Current.Response.Redirect(redirectUrl); return; } OAuthHelper.RedirectFailPage(result); }