1
0
mirror of https://git.teknik.io/Teknikode/Teknik.git synced 2023-08-02 14:16:22 +02:00

Added port designation for redirect and fixed identity server cookie domains

This commit is contained in:
Uncled1023 2019-01-28 18:19:01 -08:00
parent 06ffbf0220
commit 40a5dee36f
3 changed files with 28 additions and 2 deletions

View File

@ -6,6 +6,7 @@ namespace Teknik.Configuration
{ {
public class IdentityServerConfig public class IdentityServerConfig
{ {
public string Host { get; set; }
public string Authority { get; set; } public string Authority { get; set; }
public string ClientId { get; set; } public string ClientId { get; set; }
@ -19,6 +20,7 @@ namespace Teknik.Configuration
public IdentityServerConfig() public IdentityServerConfig()
{ {
Host = "localhost:5002";
Authority = "https://localhost:5002"; Authority = "https://localhost:5002";
ClientId = "mvc.client"; ClientId = "mvc.client";
ClientSecret = "mysecret"; ClientSecret = "mysecret";

View File

@ -24,6 +24,7 @@ using Microsoft.AspNetCore.Authorization;
using Teknik.IdentityServer.Models; using Teknik.IdentityServer.Models;
using IdentityServer4.Services; using IdentityServer4.Services;
using System.Collections.Generic; using System.Collections.Generic;
using Teknik.Utilities;
namespace Teknik.IdentityServer namespace Teknik.IdentityServer
{ {
@ -54,8 +55,14 @@ namespace Teknik.IdentityServer
// Resolve the services from the service provider // Resolve the services from the service provider
var config = sp.GetService<Config>(); var config = sp.GetService<Config>();
if (config.DevEnvironment)
{
Environment.EnvironmentName = EnvironmentName.Development;
}
services.ConfigureApplicationCookie(options => services.ConfigureApplicationCookie(options =>
{ {
options.Cookie.Domain = CookieHelper.GenerateCookieDomain(config.UserConfig.IdentityServerConfig.Host, false, Environment.IsDevelopment());
options.Cookie.Name = "TeknikAuth"; options.Cookie.Name = "TeknikAuth";
options.Cookie.SecurePolicy = CookieSecurePolicy.Always; options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict; options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict;
@ -65,7 +72,12 @@ namespace Teknik.IdentityServer
services.AddHttpsRedirection(options => services.AddHttpsRedirection(options =>
{ {
options.RedirectStatusCode = StatusCodes.Status301MovedPermanently; options.RedirectStatusCode = (Environment.IsDevelopment()) ? StatusCodes.Status307TemporaryRedirect : StatusCodes.Status308PermanentRedirect;
#if DEBUG
options.HttpsPort = 5050;
#else
options.HttpsPort = 443;
#endif
}); });
// Sessions // Sessions
@ -76,6 +88,7 @@ namespace Teknik.IdentityServer
// Set the anti-forgery cookie name // Set the anti-forgery cookie name
services.AddAntiforgery(options => services.AddAntiforgery(options =>
{ {
options.Cookie.Domain = CookieHelper.GenerateCookieDomain(config.UserConfig.IdentityServerConfig.Host, false, Environment.IsDevelopment());
options.Cookie.Name = "TeknikAuthAntiForgery"; options.Cookie.Name = "TeknikAuthAntiForgery";
options.Cookie.SecurePolicy = CookieSecurePolicy.Always; options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict; options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict;
@ -165,7 +178,7 @@ namespace Teknik.IdentityServer
IdleTimeout = TimeSpan.FromMinutes(30), IdleTimeout = TimeSpan.FromMinutes(30),
Cookie = new CookieBuilder() Cookie = new CookieBuilder()
{ {
Domain = null, Domain = CookieHelper.GenerateCookieDomain(config.UserConfig.IdentityServerConfig.Host, false, Environment.IsDevelopment()),
Name = "TeknikAuthSession", Name = "TeknikAuthSession",
SecurePolicy = CookieSecurePolicy.Always, SecurePolicy = CookieSecurePolicy.Always,
SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict

View File

@ -82,6 +82,16 @@ namespace Teknik
Environment.EnvironmentName = EnvironmentName.Development; Environment.EnvironmentName = EnvironmentName.Development;
} }
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = (Environment.IsDevelopment()) ? StatusCodes.Status307TemporaryRedirect : StatusCodes.Status308PermanentRedirect;
#if DEBUG
options.HttpsPort = 5050;
#else
options.HttpsPort = 443;
#endif
});
// Add Tracking Filter scopes // Add Tracking Filter scopes
//services.AddScoped<TrackDownload>(); //services.AddScoped<TrackDownload>();
//services.AddScoped<TrackLink>(); //services.AddScoped<TrackLink>();
@ -102,6 +112,7 @@ namespace Teknik
services.ConfigureApplicationCookie(options => services.ConfigureApplicationCookie(options =>
{ {
options.Cookie.Domain = CookieHelper.GenerateCookieDomain(config.Host, false, Environment.IsDevelopment());
options.Cookie.Name = "TeknikWeb"; options.Cookie.Name = "TeknikWeb";
options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest; options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict; options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict;