1
0
mirror of https://github.com/kataras/iris.git synced 2026-01-10 05:25:58 +00:00

.NET Core (no mvc) with Sessions vs Iris (no mvc) with Sessions

Former-commit-id: 04a9660645a824dfbc49414605aeff2b3ff88b55
This commit is contained in:
kataras
2017-08-21 13:29:49 +03:00
parent 14aa770869
commit 0c403fd0c6
8 changed files with 264 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace netcore_sessions
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}

View File

@@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Routing;
using Microsoft.AspNetCore.Http;
namespace netcore_sessions
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddRouting();
// Adds a default in-memory implementation of IDistributedCache.
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.Cookie.Name = ".cookiesession.id";
options.Cookie.HttpOnly = true;
options.IdleTimeout = TimeSpan.FromMinutes(1);
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var routeBuilder = new RouteBuilder(app);
routeBuilder.MapGet("setget", context =>{
context.Session.SetString("key", "value");
var value = context.Session.GetString("key");
if (String.IsNullOrEmpty(value)) {
return context.Response.WriteAsync("NOT_OK");
}
return context.Response.WriteAsync(value);
});
/*
Test them one by one by these methods:
routeBuilder.MapGet("get", context =>{
var value = context.Session.GetString("key");
if (String.IsNullOrEmpty(value)) {
return context.Response.WriteAsync("NOT_OK");
}
return context.Response.WriteAsync(value);
});
routeBuilder.MapPost("set", context =>{
context.Session.SetString("key", "value");
return context.Response.WriteAsync("OK");
});
routeBuilder.MapDelete("del", context =>{
context.Session.Remove("key");
return context.Response.WriteAsync("OK");
});
*/
var routes = routeBuilder.Build();
app.UseSession();
app.UseRouter(routes);
}
}
}

View File

@@ -0,0 +1,8 @@
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Error"
}
}
}

View File

@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
</Project>