improve cookie system
This commit is contained in:
parent
1c9dfcefea
commit
7cf43c654a
|
@ -3,6 +3,8 @@
|
||||||
<component name="ContentModelStore">
|
<component name="ContentModelStore">
|
||||||
<e p="$USER_HOME$/Library/Caches/Rider2019.3/extResources" t="IncludeRecursive" />
|
<e p="$USER_HOME$/Library/Caches/Rider2019.3/extResources" t="IncludeRecursive" />
|
||||||
<e p="$USER_HOME$/Library/Caches/Rider2019.3/resharper-host/local/Transient/ReSharperHost/v193/SolutionCaches/_c3stream.-879192168.00" t="ExcludeRecursive" />
|
<e p="$USER_HOME$/Library/Caches/Rider2019.3/resharper-host/local/Transient/ReSharperHost/v193/SolutionCaches/_c3stream.-879192168.00" t="ExcludeRecursive" />
|
||||||
|
<e p="$APPLICATION_CONFIG_DIR$/javascript/extLibs/http_kit.fontawesome.com_c1a632a160.js" t="IncludeRecursive" />
|
||||||
|
<e p="$APPLICATION_CONFIG_DIR$/javascript/extLibs/http_pro.fontawesome.com_releases_v5.11.2_css_all.css" t="IncludeRecursive" />
|
||||||
<e p="$PROJECT_DIR$" t="IncludeRecursive">
|
<e p="$PROJECT_DIR$" t="IncludeRecursive">
|
||||||
<e p=".gitignore" t="Include" />
|
<e p=".gitignore" t="Include" />
|
||||||
<e p="appsettings.Development.json" t="Include" />
|
<e p="appsettings.Development.json" t="Include" />
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
@page
|
@page
|
||||||
@model ConferenceModel
|
@model ConferenceModel
|
||||||
@using System.Net
|
@using System.Net
|
||||||
@using Microsoft.AspNetCore.Http
|
|
||||||
@using static ConferenceModel
|
@using static ConferenceModel
|
||||||
@{
|
@{
|
||||||
int tagFormat;
|
int tagFormat;
|
||||||
|
@ -21,18 +20,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
c3stream.UpdateCookie(Request, Response, $"/Conference?c={Request.Query["c"]}&");
|
||||||
Response.Cookies.Append("bookmark", Request.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
|
||||||
Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + Request.Query["bookmark"]);
|
|
||||||
}
|
|
||||||
else if (!Request.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(Request.Cookies["bookmark"], "D", out _)) {
|
|
||||||
var guid = Guid.NewGuid().ToString();
|
|
||||||
Response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
|
||||||
Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + guid);
|
|
||||||
}
|
|
||||||
else if (!Request.Query.ContainsKey("bookmark") || Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
|
||||||
Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + Request.Cookies["bookmark"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewData["Title"] = Request.Query["c"];
|
ViewData["Title"] = Request.Query["c"];
|
||||||
var wc = new WebClient();
|
var wc = new WebClient();
|
||||||
|
|
|
@ -1,20 +1,8 @@
|
||||||
@page
|
@page
|
||||||
@using Microsoft.AspNetCore.Http
|
|
||||||
@model IndexModel
|
@model IndexModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Home";
|
ViewData["Title"] = "Home";
|
||||||
if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
c3stream.UpdateCookie(Request, Response, $"/?");
|
||||||
Response.Cookies.Append("bookmark", Request.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
|
||||||
Response.Redirect("/?bookmark=" + Request.Query["bookmark"]);
|
|
||||||
}
|
|
||||||
else if (!Request.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(Request.Cookies["bookmark"], "D", out _)) {
|
|
||||||
var guid = Guid.NewGuid().ToString();
|
|
||||||
Response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
|
||||||
Response.Redirect("/?bookmark=" + guid);
|
|
||||||
}
|
|
||||||
else if (!Request.Query.ContainsKey("bookmark") || Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
|
||||||
Response.Redirect("/?bookmark=" + Request.Cookies["bookmark"]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
@page
|
@page
|
||||||
@using Microsoft.AspNetCore.Http
|
|
||||||
@model InfoModel
|
@model InfoModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Info";
|
ViewData["Title"] = "Info";
|
||||||
|
@ -10,18 +9,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
c3stream.UpdateCookie(Request, Response, $"/Info?guid={Request.Query["guid"]}&");
|
||||||
Response.Cookies.Append("bookmark", Request.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
|
||||||
Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + Request.Query["bookmark"]);
|
|
||||||
}
|
|
||||||
else if (!Request.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(Request.Cookies["bookmark"], "D", out _)) {
|
|
||||||
var guid = Guid.NewGuid().ToString();
|
|
||||||
Response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
|
||||||
Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + guid);
|
|
||||||
}
|
|
||||||
else if (!Request.Query.ContainsKey("bookmark") || Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
|
||||||
Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + Request.Cookies["bookmark"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
ConferenceModel.ReadEventMetadata();
|
ConferenceModel.ReadEventMetadata();
|
||||||
var talk = ConferenceModel.EventMetadata.FirstOrDefault(p => p.Guid == Request.Query["guid"]);
|
var talk = ConferenceModel.EventMetadata.FirstOrDefault(p => p.Guid == Request.Query["guid"]);
|
||||||
|
|
20
c3stream.cs
20
c3stream.cs
|
@ -1,6 +1,8 @@
|
||||||
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using c3stream.Pages;
|
using c3stream.Pages;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
|
||||||
namespace c3stream {
|
namespace c3stream {
|
||||||
|
@ -20,6 +22,24 @@ namespace c3stream {
|
||||||
CreateHostBuilder(args).Build().Run();
|
CreateHostBuilder(args).Build().Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void UpdateCookie(HttpRequest resquest, HttpResponse response, string redirectUri) {
|
||||||
|
//if new bookmark is in uri
|
||||||
|
if (resquest.Query.ContainsKey("bookmark") && resquest.Cookies["bookmark"] != resquest.Query["bookmark"]) {
|
||||||
|
response.Cookies.Append("bookmark", resquest.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
||||||
|
response.Redirect(redirectUri + "bookmark=" + resquest.Query["bookmark"]);
|
||||||
|
}
|
||||||
|
//if no cookie exists or cookie is invalid
|
||||||
|
else if (!resquest.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(resquest.Cookies["bookmark"], "D", out _)) {
|
||||||
|
var guid = Guid.NewGuid().ToString();
|
||||||
|
response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
|
||||||
|
response.Redirect(redirectUri + "bookmark=" + guid);
|
||||||
|
}
|
||||||
|
//redir to cookie
|
||||||
|
else if (!resquest.Query.ContainsKey("bookmark")) {
|
||||||
|
response.Redirect(redirectUri + "bookmark=" + resquest.Cookies["bookmark"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
||||||
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
|
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue