我有一个带有多个路由的nancy模块,并希望对每个路由共享的参数进行安全检查。我可以以某种方式将这个参数移动到层次结构中吗?检查是一行吗?
下面提供的示例
public SomeModule()
{
//ABC
Get["/prefix/{someSharedParameter}/ABC/{noneSharedParameterA}"] = parameters =>
{
this.RequiresSomethingArbitrary(parameters.someSharedParameter);
...
};
//XYZ
Get["/prefix/{someSharedParameter}/XYZ/{noneSharedParameterX}"] = parameters =>
{
this.RequiresSomethingArbitrary(parameters.someSharedParameter);
...
};
}
所以我希望能够在这里将检查RequiresSomethingArbitrary
放在模块级别,但不确定如何甚至是可能的。
public SomeModule(): base("/prefix/{someSharedParameter}")
{
this.RequiresSomethingArbitrary(Context.Parameters.someSharedParameter);
//ABC
Get["/ABC/{noneSharedParameterA}"] = parameters =>
{
...
};
//XYZ
Get["/XYZ/{noneSharedParameterX}"] = parameters =>
{
...
};
}
我也尝试过只检查上下文是否为null因为我认为它可能在初始化模块时失败但是这总是会跳过检查:
public SomeModule(): base("/prefix/{someSharedParameter}")
{
if (Context != null) {
//this is unreachable (?)
this.RequiresSomethingArbitrary(Context.Parameters.someSharedParameter);
}
//ABC
Get["/ABC/{noneSharedParameterA}"] = parameters =>
{
答案 0 :(得分:0)
<data>
<variable
name="login"
type="Common.Login"/>
</data>
您需要做的就是将支票移至构造函数。