Exemplo n.º 1
0
        internal static void ExecuteAction(HttpContext context, InvokeInfo vkInfo)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (vkInfo == null)
            {
                throw new ArgumentNullException("vkInfo");
            }

            SetMvcVersionHeader(context);

            // 验证请求是否允许访问(身份验证)
            AuthorizeAttribute authorize = vkInfo.GetAuthorize();

            if (authorize != null)
            {
                if (authorize.AuthenticateRequest(context) == false)
                {
                    ExceptionHelper.Throw403Exception(context);
                }
            }

            // 调用方法
            object result = ExecuteActionInternal(context, vkInfo);



            // 处理方法的返回结果
            IActionResult executeResult = result as IActionResult;

            if (executeResult != null)
            {
                executeResult.Ouput(context);
            }
            else
            {
                if (result != null)
                {
                    // 普通类型结果
                    context.Response.ContentType = "text/plain";
                    context.Response.Write(result.ToString());
                }
            }
        }
Exemplo n.º 2
0
 protected BaseDescription(MemberInfo m)
 {
     this.OutputCache = m.GetMyAttribute <OutputCacheAttribute>();
     this.SessionMode = m.GetMyAttribute <SessionModeAttribute>();
     this.Authorize   = m.GetMyAttribute <AuthorizeAttribute>(true /* inherit */);
 }