Example #1
0
        /// <summary>
        /// 对已处理的消息进行cross加工
        /// </summary>
        /// <param name="msg"></param>
        public static void DealtMessage(ref Message msg)
        {
            try
            {
                var ct = ((HttpResponseMessageProperty)msg.Properties["httpResponse"]).Headers["Content-Type"];

                if (MimeTypes.Contains(ct))
                {
                    if (ct == MimeTypes[0])
                    {
                        if (!msg.Properties.ContainsKey("WebBodyFormatMessageProperty"))
                        {
                            msg.Properties.Add("WebBodyFormatMessageProperty", new WebBodyFormatMessageProperty(WebContentFormat.Json));
                        }
                        else if (msg.Properties["WebBodyFormatMessageProperty"] == new WebBodyFormatMessageProperty(WebContentFormat.Xml)) //强制将xml返回值改为json
                        {
                            msg.Properties.Remove("WebBodyFormatMessageProperty");
                            msg.Properties.Add("WebBodyFormatMessageProperty", new WebBodyFormatMessageProperty(WebContentFormat.Json));
                        }
                    }
                    var property = new HttpResponseMessageProperty();
                    property.StatusCode = HttpStatusCode.OK;
                    property.Headers.Add("Content-Type", ct);
                    property.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
                    property.Headers.Add("Access-Control-Allow-Origin", "*");
                    property.Headers.Add("Access-Control-Allow-Headers", "Content-Type,X-Requested-With,Accept");
                    property.Headers.Add("Access-Control-Max-Age", "1728000");
                    property.SuppressEntityBody = false;
                    property.SuppressPreamble   = false;
                    if (msg.Properties.ContainsKey("httpResponse"))
                    {
                        msg.Properties.Remove("httpResponse");
                    }
                    msg.Properties.Add("httpResponse", property);
                }
            }
            catch (Exception ex)
            {
                // Log4NetUtil.WriteErrLog("CrossDomain.DealtMessage", ex);
            }
        }
Example #2
0
        private bool Contains(string sMimeType)
        {
            if (string.IsNullOrWhiteSpace(sMimeType))
            {
                return(false);
            }

            if (MimeTypes.Contains(sMimeType) || m_oMimeTypesFromExtensions.Contains(sMimeType))
            {
                return(true);
            }

            foreach (var s in MimeTypePrefixes)
            {
                if (sMimeType.StartsWith(s))
                {
                    return(true);
                }
            }

            return(false);
        } // Contains