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()); } } }
protected BaseDescription(MemberInfo m) { this.OutputCache = m.GetMyAttribute <OutputCacheAttribute>(); this.SessionMode = m.GetMyAttribute <SessionModeAttribute>(); this.Authorize = m.GetMyAttribute <AuthorizeAttribute>(true /* inherit */); }