我正在尝试测试以下过滤器:
using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.Filters;
namespace Hello
{
public class ValidationFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.ModelState.IsValid) {
filterContext.Result = new BadRequestObjectResult(filterContext.ModelState);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图使用Moq模拟ActionFilterAttribute.
我使用的是Mvc 6.0.0-rc1
我的第一次尝试:
var context = new ActionExecutingContext(
new ActionContext(Mock.Of<HttpContext>(), new RouteData(), new ActionDescriptor()),
new IFilterMetadata[] { filter, },
new Dictionary<string, object>(),
controller: new object());
Run Code Online (Sandbox Code Playgroud)
但我无法覆盖ModelState.它看起来只是readonly:https://github.com/aspnet/Mvc/blob/6.0.0-rc1/src/Microsoft.AspNet.Mvc.Abstractions/ActionContext.cs#L25
然后我尝试了:
var contextMock = new Mock<ActionExecutingContext>(
new ActionContext(Mock.Of<HttpContext>(), new RouteData(), new ActionDescriptor()),
new IFilterMetadata[] { filter, },
new Dictionary<string, …Run Code Online (Sandbox Code Playgroud) 我正在使用rails-api构建一个公共的json api.
我想回应OPTIONS HTTP方法以利用跨源资源共享.
我这样做:
headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
Run Code Online (Sandbox Code Playgroud)
它可以工作,但有些URL不支持所有HTTP方法.在那些情况下,我撒谎.
我不想为每个URL配置Access-Control-Allow-Methods.
有没有办法根据我的路线响应Access-Control-Allow-Methods?
令牌生成前触发器:使用此Lambda触发器,您可以在生成身份令牌之前自定义身份令牌:https : //docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation。 html
我正在寻找一种通过CloudFormation配置此触发器的方法。就像是:
UserPool:
Type: AWS::Cognito::UserPool
Properties:
LambdaConfig:
# Next line does not work:
PreTokenGeneration: [lambda ARN]
Run Code Online (Sandbox Code Playgroud)
我找到了其他触发器的文档,但是缺少此触发器。这是缺少的功能还是没有记录?