Skip to content
This repository was archived by the owner on Jul 10, 2021. It is now read-only.

TomJerzak/emuses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

emuses

Latest version

Build status

  master develop
Windows Build status Build status
Linux / OS X Travis CI Build Status Travis CI Build Status

Overview

Emuses is simple session manager for .net core.

Installation

Emuses is available as a NuGet package. You can install it using the NuGet Package Console window:

PM> Install-Package Emuses

Getting Started

See our sample project (Emuses.Example) or use the instructions below.

1. Storage

1.1 Save sessions to PostgreSQL.

Database configuration:

CREATE USER emuses WITH LOGIN;
ALTER USER emuses WITH PASSWORD 'emuses';
  
CREATE DATABASE emuses WITH OWNER = emuses ENCODING = 'UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1;
CREATE TABLE public.sessions
(
  session_id character varying(50) NOT NULL,
  expiration_date timestamp without time zone NOT NULL,
  version character varying(50) NOT NULL,
  session_timeout integer NOT NULL
) WITH (OIDS = FALSE) TABLESPACE pg_default;
ALTER TABLE public.sessions OWNER to emuses;

Startup.cs

  public void ConfigureServices(IServiceCollection services)
  {
    ...
    services.AddSingleton<IHostedService, SessionClearTask>();
    services.AddScoped<ISessionStorage>(storage => new PostgresStorage("Host=127.0.0.1;Username=emuses;Password=emuses;Database=emuses"));

    services.AddMvc();
    ...
  }
  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
    ...
    app.UseEmuses(options =>
    {
      options.OpenSessionPage = "/Account/Login";
      options.SessionExpiredPage = "/Account/Expired";
      options.NoSessionAccessPages = new List<string> {"/Account/Login", "Account/Logout"};
      options.Storage = new PostgresStorage("Host=127.0.0.1;Username=emuses;Password=emuses;Database=emuses");
    });

    app.UseMvc(routes => ...
    ...
  }
1.2 Save sessions to files.

Startup.cs

  public void ConfigureServices(IServiceCollection services)
  {
    ...
    services.AddSingleton<IHostedService, SessionClearTask>();
    services.AddScoped<ISessionStorage>(storage => new FileStorage(@"C:\Temp\Emuses\"));

    services.AddMvc();
    ...
  }
  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
    ...
    app.UseEmuses(options =>
    {
      options.OpenSessionPage = "/Account/Login";
      options.SessionExpiredPage = "/Account/Expired";
      options.NoSessionAccessPages = new List<string> {"/Account/Login", "Account/Logout"};
      options.Storage = new FileStorage(@"C:\Temp\Emuses\");
    });

    app.UseMvc(routes => ...
    ...
  }

2. Dashboard

PM> Install-Package Emuses.Dashboard

About

Simple session manager for .net core.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages