未调用NancyFx的按路由身份验证

时间:2019-12-13 09:24:35

标签: c# nancy

我正在尝试确定如何为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

0 个答案:

没有答案
相关问题