Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }