Ejemplo n.º 1
0
        private void CorsCheck()
        {
            // 通常情况下,没有必要限制跨域,
            // 如果是希望确保安全调用,可以增加参数检查,单纯检查请求头可能没有意义
            // 所以,在ClownFish.Mvc中,默认是允许跨域,会自动应答。

            string origin = this.HttpContext.Request.Headers["Origin"];

            if (string.IsNullOrEmpty(origin))
            {
                return;
            }

            EventHandler <CorsCheckEventArgs> eventHandler = this.OnCorsCheck;

            if (eventHandler != null)
            {
                CorsCheckEventArgs e = new CorsCheckEventArgs {
                    Origin       = origin,
                    HttpContext  = this.HttpContext,
                    ActionMethod = this.InvokeInfo.Action.MethodInfo
                };

                // 如果希望限制跨域来源,可以在事件中检查,并将 e.IsForbidden 设置为 true
                eventHandler(this, e);

                if (e.IsForbidden)
                {
                    return;
                }
            }


            this.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", origin);
            this.HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "*");
            this.HttpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
        }
Ejemplo n.º 2
0
		private void CorsCheck()
		{
			// 通常情况下,没有必要限制跨域,
			// 如果是希望确保安全调用,可以增加参数检查,单纯检查请求头可能没有意义
			// 所以,在ClownFish.Mvc中,默认是允许跨域,会自动应答。

			string origin = this.HttpContext.Request.Headers["Origin"];

			if( string.IsNullOrEmpty(origin) )
				return;

			EventHandler<CorsCheckEventArgs> eventHandler = this.OnCorsCheck;
			if( eventHandler != null ) {
				CorsCheckEventArgs e = new CorsCheckEventArgs {
					Origin = origin,
					HttpContext = this.HttpContext,
					ActionMethod = this.InvokeInfo.Action.MethodInfo
				};

				// 如果希望限制跨域来源,可以在事件中检查,并将 e.IsForbidden 设置为 true
				eventHandler(this, e);

				if( e.IsForbidden )
					return;
			}


			this.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", origin);
			this.HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "*");
			this.HttpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
		}