improve cookie system
This commit is contained in:
parent
1c9dfcefea
commit
7cf43c654a
|
@ -3,6 +3,8 @@
|
|||
<component name="ContentModelStore">
|
||||
<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="$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=".gitignore" t="Include" />
|
||||
<e p="appsettings.Development.json" t="Include" />
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
@page
|
||||
@model ConferenceModel
|
||||
@using System.Net
|
||||
@using Microsoft.AspNetCore.Http
|
||||
@using static ConferenceModel
|
||||
@{
|
||||
int tagFormat;
|
||||
|
@ -21,18 +20,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
||||
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"]);
|
||||
}
|
||||
c3stream.UpdateCookie(Request, Response, $"/Conference?c={Request.Query["c"]}&");
|
||||
|
||||
ViewData["Title"] = Request.Query["c"];
|
||||
var wc = new WebClient();
|
||||
|
|
|
@ -1,20 +1,8 @@
|
|||
@page
|
||||
@using Microsoft.AspNetCore.Http
|
||||
@model IndexModel
|
||||
@{
|
||||
ViewData["Title"] = "Home";
|
||||
if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
||||
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"]);
|
||||
}
|
||||
c3stream.UpdateCookie(Request, Response, $"/?");
|
||||
}
|
||||
|
||||
<div style="text-align: center">
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
@page
|
||||
@using Microsoft.AspNetCore.Http
|
||||
@model InfoModel
|
||||
@{
|
||||
ViewData["Title"] = "Info";
|
||||
|
@ -10,18 +9,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
|
||||
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"]);
|
||||
}
|
||||
c3stream.UpdateCookie(Request, Response, $"/Info?guid={Request.Query["guid"]}&");
|
||||
|
||||
ConferenceModel.ReadEventMetadata();
|
||||
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 c3stream.Pages;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace c3stream {
|
||||
|
@ -20,6 +22,24 @@ namespace c3stream {
|
|||
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) =>
|
||||
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue