本文介绍了每路线NancyFx认证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我在源$ C ​​$ C RequiresAuthentication看到()确实为整个模块的验证检查。有没有什么办法,每路做到这一点?


解决方案

 命名空间Kallist.Modules {    #区域命名空间    使用系统;
    使用南希;    #endregion    公共静态类ModuleExtensions {        #区域方法        公共静态响应WithAuthentication(这NancyModule模块,Func键<应变及GT; executeAuthenticated){
            如果((module.Context.CurrentUser = NULL)及!&安培;!string.IsNullOrWhiteSpace(module.Context.CurrentUser.UserName)){
                返回executeAuthenticated();
            }
            返回新的响应{状态code =的HTTPStatus code.Unauthorized};
        }        #endregion    }
}

From what I saw in the source code RequiresAuthentication() does an Authentication check for the whole module. Is there any way to do this per Route?

解决方案
namespace Kallist.Modules {

    #region Namespaces

    using System;
    using Nancy;

    #endregion

    public static class ModuleExtensions {

        #region Methods

        public static Response WithAuthentication(this NancyModule module, Func<Response> executeAuthenticated) {
            if ((module.Context.CurrentUser != null) && !string.IsNullOrWhiteSpace(module.Context.CurrentUser.UserName)) {
                return executeAuthenticated();
            }
            return new Response { StatusCode = HttpStatusCode.Unauthorized };
        }

        #endregion

    }
}

这篇关于每路线NancyFx认证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 21:06