Beispiel #1
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            //签名验证
            if (context.Request["id"] != null && context.Request["sign"] != null && context.Request["nonce_str"] != null)
            {
                string request_sign = context.Request["sign"];

                string nonce_str = context.Request["nonce_str"];
                string timestamp = context.Request["timestamp"];

                int id = int.Parse(context.Request["id"]);

                if (AgentSign.CheckRequestSign(request_sign, nonce_str, timestamp, id))
                {
                    if (!CheckConfig(id))
                    {
                        context.Response.Write("abort config");
                        context.Response.End();
                    }

                    AccessTokenObject tokenObject = new Token().Get();
                    context.Response.Write(JsonHelper.ScriptSerialize(tokenObject, false));
                }
                else
                {
                    context.Response.Write("abort signature");
                }
            }
            else
            {
                context.Response.Write("abort signature request");
            }
        }
Beispiel #2
0
        //ILog logs = LogManager.GetLogger("redirect_uri");

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            string code         = context.Request["code"];
            string state        = context.Request["state"];
            string callback_url = context.Request["callback_url"];

            if (!string.IsNullOrWhiteSpace(code) && !string.IsNullOrWhiteSpace(state) && callback_url.IndexOf("http://") != -1)
            {
                int id = int.Parse(state.Split(char.Parse("|"))[1]);
                callback_url = context.Server.UrlDecode(callback_url);

                Oauth2Token access_token = new Oauth2Token();

                Oauth2 oauth2 = access_token.Get(code, state);

                string paras;
                string nonce_str, timestamp, sign;
                AgentSign.SetSign(id, out nonce_str, out timestamp, out sign);

                if (oauth2.scope == "snsapi_base")
                {
                    paras        = "openid=" + oauth2.openid + "&scope=" + oauth2.scope;
                    paras       += "&nonce_str=" + nonce_str + "&timestamp=" + timestamp + "&sign=" + sign;
                    callback_url = SetCallbackUrl(callback_url, paras);
                }
                else if (oauth2.scope == "snsapi_userinfo")
                {
                    UserInfoApi userInfoEntity = new UserInfo().Get(oauth2.access_token, oauth2.openid);

                    paras  = "&scope=" + oauth2.scope + "&openid=" + userInfoEntity.openid + "&nickname=" + userInfoEntity.nickname + "&sex=" + userInfoEntity.sex;
                    paras += "&city=" + userInfoEntity.city + "&province=" + userInfoEntity.province + "&country=" + userInfoEntity.country;
                    paras += "&headimgurl=" + userInfoEntity.headimgurl + "&unionid=" + userInfoEntity.unionid;
                    paras += "&nonce_str=" + nonce_str + "&timestamp=" + timestamp + "&sign=" + sign;

                    //logs.Fatal("paras:" + paras);

                    callback_url = SetCallbackUrl(callback_url, paras);
                }

                //logs.Fatal("callback_url:" + callback_url);

                context.Response.Redirect(callback_url);
            }
        }
Beispiel #3
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            //签名验证
            if (context.Request["id"] != null && context.Request["sign"] != null && context.Request["nonce_str"] != null)
            {
                string request_sign = context.Request["sign"];

                string nonce_str = context.Request["nonce_str"];
                string timestamp = context.Request["timestamp"];

                int id = int.Parse(context.Request["id"]);

                if (AgentSign.CheckRequestSign(request_sign, nonce_str, timestamp, id))
                {
                    if (context.Request["url"] == null)
                    {
                        context.Response.Write("abort request");
                        context.Response.End();
                    }

                    string url = context.Request["url"];

                    string encode = context.Request["encode"];
                    if (string.IsNullOrWhiteSpace(encode))
                    {
                        encode = "false";
                    }

                    Signature signature = new Signature();
                    context.Response.Write(signature.Get(url, encode));
                }
                else
                {
                    context.Response.Write("abort signature");
                }
            }
            else
            {
                context.Response.Write("abort signature request");
            }
        }
Beispiel #4
0
        public void ProcessRequest(HttpContext context)
        {
            //ILog logs = LogManager.GetLogger("index");

            context.Response.ContentType = "text/plain";


            //签名验证
            if (context.Request["id"] != null && context.Request["sign"] != null && context.Request["nonce_str"] != null)
            {
                string request_sign = context.Request["sign"];

                string nonce_str = context.Request["nonce_str"];
                string timestamp = context.Request["timestamp"];

                int    id = int.Parse(context.Request["id"]);
                string sn = new GZH.CL.Config.AgentConfig().GetItem(id).sn;

                if (AgentSign.CheckRequestSign(request_sign, nonce_str, timestamp, id))
                {
                    if (context.Request["scope"] == null || context.Request["redirect"] == null)
                    {
                        context.Response.Write("abort request");
                        context.Response.End();
                    }

                    if (!CheckConfig(id))
                    {
                        context.Response.Write("abort config");
                        context.Response.End();
                    }

                    string scope        = context.Request["scope"];
                    string callback_url = context.Request["redirect"];

                    if (!string.IsNullOrWhiteSpace(scope) && callback_url.IndexOf("http://") != -1)
                    {
                        string state = scope == "snsapi_userinfo" ? "1" : "0";
                        state += "|" + id;
                        string redirect_uri = "http://" + HttpContext.Current.Request.Url.Host + "/api/authorize/redirect_uri.ashx";
                        string requestUri   = ConfigSetting.GetWeixinWeb().AuthorizeUrl;

                        callback_url  = context.Server.UrlEncode(callback_url);
                        redirect_uri += "?callback_url=" + callback_url;

                        requestUri += "?appid=" + ConfigSetting.GetWeixin().AppID;
                        requestUri += "&redirect_uri=" + context.Server.UrlEncode(redirect_uri);
                        requestUri += "&response_type=code&scope=" + scope + "&state=" + state + "#wechat_redirect";


                        context.Response.Redirect(requestUri);
                    }
                }
                else
                {
                    context.Response.Write("abort signature");
                }
            }
            else
            {
                context.Response.Write("abort signature request");
            }
        }