每个路由的NancyFx身份验证

Emi*_*ian 3 authentication routes nancy

从我在源代码中看到的,RequiresAuthentication()对整个模块进行身份验证检查.有没有办法每条路线这样做?

bio*_*tal 5

我有同样的问题.然而,事实证明RequiresAuthentication模块级别和路由级别的工作.为了演示,这里有一些代码撕掉了我当前的项目(并不是为了简洁而显示所有路线).

public class RegisterModule : _BaseModule
{
    public RegisterModule() : base("/register")
    {
        Get["/basic-details"] = _ => View["RegisterBasicDetailsView", Model];

        Get["/select"] = _ =>
            {
                this.RequiresAuthentication();
                return View["RegisterSelectView", Model];
            };
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,这样做的唯一问题是模块中的所有受保护路由都需要调用RequiresAuthentication.在上面我的模块的情况下,我有另外5条路线(未示出),所有这些路线都需要保护,因此RequiresAuthentication在模块级别进行六次调用而不是一次.另一种方法是将未受保护的路由引入另一个模块,但我的判断是模块的扩散比额外的RequiresAuthentication调用更糟糕.