这是NancyFx开源框架中的Basic认证,学习一下!

首先当然是新建一个空的Web,BasicDemo

 

继续在项目中添加Nuget包,记得安装的Nuget包是最新的预发行版

  • Nancy

  • Nancy.Authentication.Basic

  • Nancy.Hosting.Aspnet

之后就往项目中添加Models文件夹和Module文件夹,然后往Models文件夹里面添加UserValidator类

 

 public ClaimsPrincipal Validate(string username,string password)
        {            if (username=="Lexan"&&password=="password")
            {                return new ClaimsPrincipal(new GenericIdentity(username));
            }            //没有认证=>匿名
            return null;
        }

 

 

继续在Module文件里面添加MainModule类

        public MainModule()
        {
            Get("/",Lexan=>"地址栏输入/secure访问Secure页面");
        }

继续往Module文件夹里面添加SecureModule类

   public SecureModule() : base("/secure")
        {
            this.RequiresAuthentication();

            Get("/", args => "Hello " + this.Context.CurrentUser.Identity.Name);
        }

然后就在根目录添加BasicBootstrapper类,用来初始化项目的

protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {            base.ApplicationStartup(container, pipelines);
            pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(container.Resolve(),"Lexan"));
        }

运行一下写好的项目,登陆账号和密码写在了UserValidator类里面