示例#1
0
        /// <summary>
        /// 调用UCenter API
        /// </summary>
        /// <param name="api"></param>
        /// <returns></returns>
        public static object CallUCenterAPI(HttpContext context, IUCenterAPI api)
        {
            //判断请求的主机
            string referer = context.Request.Headers["referer"];
            if (!Regex.IsMatch(referer, hostPattern)) return "404";

            //因为包含+传递过来为" ",则需先转码再解码
            string query = context.Server.UrlDecode(context.Server.UrlEncode(context.Request["code"]));
            //等同于以下这句
            //string query = context.Server.UrlEncode(context.Request["code"]).Replace("%2b","+").Replace("%2f","/");

            System.Collections.Specialized.NameValueCollection parameters = HttpUtility.ParseQueryString
                (Authcode.DiscuzAuthcodeDecode(query, UC_KEY));

            #region 记录参数
            /*
            StringBuilder sb = new StringBuilder();
            sb.Append(query).Append("\r\n");
            sb.Append(Authcode.DiscuzAuthcodeDecode(query, UC_KEY));
            foreach (string s in parameters.Keys)
            {
                sb.Append("\r\n").Append(s).Append(":" + parameters[s]);
            }
            TraceLog.Record(sb.ToString());
            */
            #endregion
            #region 记录日志
            /*
            StringBuilder sb = new StringBuilder();

            using (Stream stream = context.Request.InputStream)
            {
                byte[] buffer = new byte[100];
                int count;
                if (stream.Length != 0)
                {
                    do
                    {
                        count = stream.Read(buffer, 0, buffer.Length);
                        sb.Append(Encoding.Default.GetString(buffer));
                    } while (count != 0);
                }
            }
            string streamContent = sb.ToString();

            sb.Remove(0, sb.Length);

            NameValueCollection _params = context.Request.Params;

            foreach (string a in _params.Keys)
            {
                sb.Append("&").Append(a).Append("=").Append(_params[a]);
            }

            TraceLog.Record(Authcode.DiscuzAuthcodeDecode(query, UC_KEY)+"\r\nMethod:"+context.Request.HttpMethod+
                       "\r\nParams:"+sb.ToString()+"\r\nStream:"+streamContent+context.Request["action"]);

            */
            #endregion

            switch (parameters["action"])
            {
                case "test":
                    TraceLog.Record("与UCenter建立通信成功!");
                    return "1";
                case "addfeed":
                    return api.AddFeed();
                case "deleteuser":
                    return api.DeleteUser(parameters["ids"]);

                case "synlogin":
                    api.SyncLogin(parameters["username"], parameters["password"]);return "";

                case "synlogout":
                     api.SyncLogout();return"";

                case "updatepw":
                    return api.Edit(parameters["username"], parameters["oldpw"], parameters["newpw"], parameters["email"], true);

                case "getcreditsettings":
                    break;

                case "gettag":
                    break;

                case "renameuser":
                    return api.RenameUser(int.Parse(parameters["uid"]), parameters["oldusername"], parameters["newusername"]);

                case "updateapps":
                    break;

                case "updatebadwords":
                    break;

                case "updateclient":
                    break;

                case "updatecredit":
                    break;

                case "updatecreditsettings":
                    break;

                case "updatehosts":
                    break;
            }
            return "";
        }
示例#2
0
 static UCenter()
 {
     Client = new UCenterClient();
     Api = new UCenterApi();
 }
示例#3
0
 static UCenter()
 {
     Client = new UCenterClient();
     Api    = new UCenterApi();
 }
示例#4
0
文件: Request.cs 项目: zyuhua/devfw
        /// <summary>
        /// 调用UCenter API
        /// </summary>
        /// <param name="api"></param>
        /// <returns></returns>
        public static object CallUCenterAPI(HttpContext context, IUCenterAPI api)
        {
            //判断请求的主机
            string referer = context.Request.Headers["referer"];

            if (!Regex.IsMatch(referer, hostPattern))
            {
                return("404");
            }

            //因为包含+传递过来为" ",则需先转码再解码
            string query = context.Server.UrlDecode(context.Server.UrlEncode(context.Request["code"]));

            //等同于以下这句
            //string query = context.Server.UrlEncode(context.Request["code"]).Replace("%2b","+").Replace("%2f","/");

            System.Collections.Specialized.NameValueCollection parameters = HttpUtility.ParseQueryString
                                                                                (Authcode.DiscuzAuthcodeDecode(query, UC_KEY));

            #region 记录参数

            /*
             * StringBuilder sb = new StringBuilder();
             * sb.Append(query).Append("\r\n");
             * sb.Append(Authcode.DiscuzAuthcodeDecode(query, UC_KEY));
             * foreach (string s in parameters.Keys)
             * {
             *  sb.Append("\r\n").Append(s).Append(":" + parameters[s]);
             * }
             * TraceLog.Record(sb.ToString());
             */
            #endregion
            #region 记录日志

            /*
             * StringBuilder sb = new StringBuilder();
             *
             * using (Stream stream = context.Request.InputStream)
             * {
             *  byte[] buffer = new byte[100];
             *  int count;
             *  if (stream.Length != 0)
             *  {
             *      do
             *      {
             *          count = stream.Read(buffer, 0, buffer.Length);
             *          sb.Append(Encoding.Default.GetString(buffer));
             *      } while (count != 0);
             *  }
             * }
             * string streamContent = sb.ToString();
             *
             * sb.Remove(0, sb.Length);
             *
             * NameValueCollection _params = context.Request.Params;
             *
             * foreach (string a in _params.Keys)
             * {
             *  sb.Append("&").Append(a).Append("=").Append(_params[a]);
             * }
             *
             * TraceLog.Record(Authcode.DiscuzAuthcodeDecode(query, UC_KEY)+"\r\nMethod:"+context.Request.HttpMethod+
             *         "\r\nParams:"+sb.ToString()+"\r\nStream:"+streamContent+context.Request["action"]);
             *
             */
            #endregion

            switch (parameters["action"])
            {
            case "test":
                TraceLog.Record("与UCenter建立通信成功!");
                return("1");

            case "addfeed":
                return(api.AddFeed());

            case "deleteuser":
                return(api.DeleteUser(parameters["ids"]));

            case "synlogin":
                api.SyncLogin(parameters["username"], parameters["password"]); return("");

            case "synlogout":
                api.SyncLogout(); return("");

            case "updatepw":
                return(api.Edit(parameters["username"], parameters["oldpw"], parameters["newpw"], parameters["email"], true));

            case "getcreditsettings":
                break;

            case "gettag":
                break;

            case "renameuser":
                return(api.RenameUser(int.Parse(parameters["uid"]), parameters["oldusername"], parameters["newusername"]));



            case "updateapps":
                break;

            case "updatebadwords":
                break;

            case "updateclient":
                break;

            case "updatecredit":
                break;

            case "updatecreditsettings":
                break;

            case "updatehosts":
                break;
            }
            return("");
        }