Enables AspNetCore Sessions for use in Nancy
This is a lightweight middleware that integrates Nancy Sessions with AspNetCore Sessions, and then you can get use any other AspNetCore's session middleware in Nancy.
To enable this first in your Startup class's ConfigureServices do the following.
Nancy AspNetCore Session is available on NuGet:
Install-Package Nancy.AspNetCore.Session
Call services.AddNancyAspnetCoreSession() in Startup's ConfigureServices like the following:
public void ConfigureServices(IServiceCollection services)
{
services
//Add in-proc memory Session Cache Middleware,
//this can be any other middleware such as Redis Cache
.AddDistributedMemoryCache()
//Add AspNetCore Session
.AddSession()
//Wire up AspNetCore with Nancy
.AddNancyAspnetCoreSession();
}Call app.UseNancyAspnetCoreSession() in Startup's Configure like the following
public void Configure(IApplicationBuilder app)
{
app
.UseSession()
//Wire up AspNetCore with Nancy
.UseNancyAspnetCoreSession()
.UseOwin(x => {
x.UseNancy();
});
}And that's it. Nancy session is now wired up to AspNetCore session and you can access it using Nancy's Session like this:
public class SampleNancyModule:NancyModule
{
public SampleNancyModule()
{
Get("/{myname}", p =>
{
Session["sample"] = (string)p.myname;
return "Hello " + (Session["sample"]?.ToString() ?? "");
});
}
}