我正在尝试确定如何为NancyFx启用按路由身份验证。
我试图复制本文档的内容,以使其适应新的路由约定。
https://github.com/NancyFx/Nancy/wiki/Authentication-overview
public class UserModule:NancyModule
{
public UserModule():base("/user")
{
Post("/new", async (x,ct) =>
{
this.RequiresAuthentication();
...
}
}
}
我的ModuleAuthentication类:
public static class ModuleAuthentication
{
public static void RequiresAuthentication(this NancyModule module)
{
module.Before.AddItemToEndOfPipeline(RequiresAuthentication);
}
private static Response RequiresAuthentication(NancyContext context)
{
Response response = null;
var token = context.Request.Headers["token"].FirstOrDefault();
if (string.IsNullOrWhiteSpace(token))
{
response = new Response { StatusCode = HttpStatusCode.Unauthorized };
}
return response;
}
}
似乎根本没有调用第二个require身份验证方法,但是如果我移动this.RequiresAuthentication(),它将起作用。路由之外的方法(即每个模块保护)。该方法已连接到模块本身的前一个管道,而不是各个路由。但是,我正在处理的项目需要按路由进行身份验证,因此我想知道是否仍然可行?非常感谢您的帮助:)。
版本:Nancy 2.0.0