Walter.Web.FireWall.CookieStore 2020.9.24

Cookie store for use with the firewall allowing to not store any GDPR data in cookies but keep all references local.
     You can read and write these cookies using the User in the page request object that is injected in all your controllers.
     You can see how to use it using this online documentation here:
     https://firewallapi.asp-waf.com/?topic=html/Overload-Walter.Web.FireWall.IUserIdentity.WriteCookie.htm
     
     Read about reading such a cookie is documented here:
     https://firewallapi.asp-waf.com/?topic=html/M-Walter.Web.FireWall.IUserIdentity.TryReadCookie.htm

There is a newer version of this package available.
See the version list below for details.
Install-Package Walter.Web.FireWall.CookieStore -Version 2020.9.24
dotnet add package Walter.Web.FireWall.CookieStore --version 2020.9.24
<PackageReference Include="Walter.Web.FireWall.CookieStore" Version="2020.9.24" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Walter.Web.FireWall.CookieStore --version 2020.9.24
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Walter.Web.FireWall.CookieStore, 2020.9.24"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Walter.Web.FireWall.CookieStore as a Cake Addin
#addin nuget:?package=Walter.Web.FireWall.CookieStore&version=2020.9.24

// Install Walter.Web.FireWall.CookieStore as a Cake Tool
#tool nuget:?package=Walter.Web.FireWall.CookieStore&version=2020.9.24
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

This package targets projects with dedicated servers and allows you to protect your firewall using annotations and pre-specified rules.
A full getting started document is available at www.asp-waf.com in form of a PDF, compiled help and simple instructions

The bellow sample shows how you integrate and enable the firewall in your project your cookies using the CookieStore.
This will

services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        options.Cypher.ApplicationPassword = "123456$even";
        options.ApplicationName = "Name as used for reporting";
        options.ApplicationTag = "ITIL Tag";
        options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
        options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

        //used by JavaScript in the browser
        options.WebServices.IsUserApiUrl = new Uri(Links.IsUserEndpoint, UriKind.Relative);
        options.WebServices.RegisterLinksApiUrl = new Uri(Links.SiteMapEndPoint, UriKind.Relative);
        options.WebServices.BeaconApiUrl = new Uri(Links.BeaconPoint, UriKind.Relative);
		
    }).UseCookieStore();
	
//protect each MVC controller
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

For those applications that can use SQL server you can use save the cookies in the database by setting a connection string in cookies config connection

services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        options.Cypher.ApplicationPassword = "123456$even";
        options.ApplicationName = "Name as used for reporting";
        options.ApplicationTag = "ITIL Tag";
        options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
        options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

        //used by JavaScript in the browser
        options.WebServices.IsUserApiUrl = new Uri(Links.IsUserEndpoint, UriKind.Relative);
        options.WebServices.RegisterLinksApiUrl = new Uri(Links.SiteMapEndPoint, UriKind.Relative);
        options.WebServices.BeaconApiUrl = new Uri(Links.BeaconPoint, UriKind.Relative);
		
		options.Cookies.ConnectionString = Configuration.GetConnectionString("FireWallCookieDatabase");
    }).UseDBCookieStore();
	
//protect each MVC controller
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

Or by specifying a database connection if you like to use different databases

services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        options.Cypher.ApplicationPassword = "123456$even";
        options.ApplicationName = "Name as used for reporting";
        options.ApplicationTag = "ITIL Tag";
        options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
        options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

        //used by JavaScript in the browser
        options.WebServices.IsUserApiUrl = new Uri(Links.IsUserEndpoint, UriKind.Relative);
        options.WebServices.RegisterLinksApiUrl = new Uri(Links.SiteMapEndPoint, UriKind.Relative);
        options.WebServices.BeaconApiUrl = new Uri(Links.BeaconPoint, UriKind.Relative);
		
		options.Cookies.ConnectionString = Configuration.GetConnectionString("FireWallCookieDatabase");
    }).UseDBCookieStore(Configuration.GetConnectionString("FireWallCookieDatabase"));
	
//protect each MVC controller
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

The firewall is fully configurable and has quite a few options that allow you to protect against fishing, scrubbing, cross-site attach and much more.
This is just a small set of options of what's possible

This package targets projects with dedicated servers and allows you to protect your firewall using annotations and pre-specified rules.
A full getting started document is available at www.asp-waf.com in form of a PDF, compiled help and simple instructions

The bellow sample shows how you integrate and enable the firewall in your project your cookies using the CookieStore.
This will

services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        options.Cypher.ApplicationPassword = "123456$even";
        options.ApplicationName = "Name as used for reporting";
        options.ApplicationTag = "ITIL Tag";
        options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
        options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

        //used by JavaScript in the browser
        options.WebServices.IsUserApiUrl = new Uri(Links.IsUserEndpoint, UriKind.Relative);
        options.WebServices.RegisterLinksApiUrl = new Uri(Links.SiteMapEndPoint, UriKind.Relative);
        options.WebServices.BeaconApiUrl = new Uri(Links.BeaconPoint, UriKind.Relative);
		
    }).UseCookieStore();
	
//protect each MVC controller
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

For those applications that can use SQL server you can use save the cookies in the database by setting a connection string in cookies config connection

services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        options.Cypher.ApplicationPassword = "123456$even";
        options.ApplicationName = "Name as used for reporting";
        options.ApplicationTag = "ITIL Tag";
        options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
        options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

        //used by JavaScript in the browser
        options.WebServices.IsUserApiUrl = new Uri(Links.IsUserEndpoint, UriKind.Relative);
        options.WebServices.RegisterLinksApiUrl = new Uri(Links.SiteMapEndPoint, UriKind.Relative);
        options.WebServices.BeaconApiUrl = new Uri(Links.BeaconPoint, UriKind.Relative);
		
		options.Cookies.ConnectionString = Configuration.GetConnectionString("FireWallCookieDatabase");
    }).UseDBCookieStore();
	
//protect each MVC controller
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

Or by specifying a database connection if you like to use different databases

services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        options.Cypher.ApplicationPassword = "123456$even";
        options.ApplicationName = "Name as used for reporting";
        options.ApplicationTag = "ITIL Tag";
        options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
        options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

        //used by JavaScript in the browser
        options.WebServices.IsUserApiUrl = new Uri(Links.IsUserEndpoint, UriKind.Relative);
        options.WebServices.RegisterLinksApiUrl = new Uri(Links.SiteMapEndPoint, UriKind.Relative);
        options.WebServices.BeaconApiUrl = new Uri(Links.BeaconPoint, UriKind.Relative);
		
		options.Cookies.ConnectionString = Configuration.GetConnectionString("FireWallCookieDatabase");
    }).UseDBCookieStore(Configuration.GetConnectionString("FireWallCookieDatabase"));
	
//protect each MVC controller
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

The firewall is fully configurable and has quite a few options that allow you to protect against fishing, scrubbing, cross-site attach and much more.
This is just a small set of options of what's possible

Release Notes

22 September 2020
     1. Release of database based cookie storage
     Documentation at:https://firewallapi.asp-waf.com/?topic=html/T-Microsoft.Extensions.DependencyInjection.CookieStoreBuilderExtensions.htm

     19 September 2020
     - Initial release with support for disk based cookie storage

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2021.6.9.1120 20 6/9/2021
2021.6.3.1509 114 6/3/2021
2021.5.31.1533 83 5/31/2021
2021.5.31.1415 100 5/31/2021
2021.5.25.1732 101 5/25/2021
2021.5.24.1128 125 5/24/2021
2021.5.24.1019 89 5/24/2021
2021.5.12.1054 34 5/12/2021
2021.5.12.637 33 5/12/2021
2021.5.8.1226 46 5/8/2021
2021.5.5.1901 55 5/6/2021
2021.5.3.1621 33 5/4/2021
2021.5.1.905 65 5/1/2021
2021.4.28.1511 51 4/28/2021
2021.4.20.1520 48 4/21/2021
2021.4.16.738 43 4/21/2021
2021.4.14.1216 71 4/16/2021
2021.4.9.1538 53 4/13/2021
2021.4.8.947 64 4/13/2021
2021.4.6.1235 58 4/6/2021
2021.4.5.1653 72 4/5/2021
2021.4.1.913 65 4/1/2021
2021.3.31.2003 108 4/1/2021
2021.3.18.1622 68 3/18/2021
2021.3.3.1259 92 3/3/2021
2021.3.2.1415 53 3/2/2021
2021.3.1.11 69 2/28/2021
2021.3.1.1 78 2/27/2021
2021.3.1 90 2/27/2021
2021.2.23.6 67 2/23/2021
2021.2.21.1 55 2/21/2021
2021.2.20.1 68 2/20/2021
2021.2.19.2 60 2/19/2021
2021.2.18.6 57 2/19/2021
2021.2.17.1 62 2/17/2021
2021.2.16.1 67 2/16/2021
2021.2.15.3 66 2/15/2021
2021.2.15.1 60 2/14/2021
2021.2.14.3 63 2/14/2021
2021.2.12.6 54 2/12/2021
2021.2.12.2 51 2/12/2021
2021.2.11.1 54 2/11/2021
2021.2.10.1 51 2/10/2021
2021.2.8.1 63 2/9/2021
2021.2.7.2 76 2/7/2021
2021.2.7.1 53 2/6/2021
2020.12.27.6 123 12/27/2020
2020.12.27.1 111 12/27/2020
2020.12.26.7 111 12/27/2020
2020.12.26.5 111 12/27/2020
2020.12.26.3 110 12/27/2020
2020.12.19.1 200 12/19/2020
2020.12.16.1 112 12/16/2020
2020.12.15.1 99 12/15/2020
2020.12.14.5 112 12/14/2020
2020.12.14.4 109 12/14/2020
2020.12.14.3 130 12/14/2020
2020.12.5.1 185 12/5/2020
2020.12.4.4 138 12/4/2020
2020.12.4.3 108 12/4/2020
2020.12.4.1 127 12/4/2020
2020.12.3.1 116 12/3/2020
2020.12.2.4 114 12/2/2020
2020.12.2.3 147 12/2/2020
2020.12.1.1 128 12/1/2020
2020.11.28.1 132 11/28/2020
2020.11.27.2 110 11/27/2020
2020.11.27.1 144 11/27/2020
2020.11.25.1 97 11/25/2020
2020.11.22.3 140 11/23/2020
2020.11.20.1 181 11/21/2020
2020.11.19.3 110 11/19/2020
2020.11.19.1 103 11/19/2020
2020.11.18.2 132 11/18/2020
2020.11.17.2 153 11/17/2020
2020.11.17.1 109 11/17/2020
2020.11.15.1 144 11/15/2020
2020.11.14.1 170 11/14/2020
2020.11.13.2 128 11/13/2020
2020.11.13.1 104 11/13/2020
2020.11.12.1 107 11/12/2020
2020.11.11.1 124 11/11/2020
2020.11.8.1 204 11/8/2020
2020.11.7.1 137 11/7/2020
2020.11.5.1 113 11/5/2020
2020.11.3.1 146 11/3/2020
2020.11.1.3 180 11/1/2020
2020.11.1.2 163 11/1/2020
2020.11.1.1 127 11/1/2020
2020.10.30.1 149 11/1/2020
2020.10.15.3 118 10/15/2020
2020.10.15.2 124 10/15/2020
2020.10.14.1 128 10/14/2020
2020.10.13.1 146 10/13/2020
2020.10.12.2 187 10/12/2020
2020.10.12.1 131 10/12/2020
2020.10.10.1 276 10/10/2020
2020.10.9.6 126 10/9/2020
2020.10.9.2 135 10/9/2020
2020.10.9.1 146 10/9/2020
2020.10.8.1 115 10/8/2020
2020.10.6.8 142 10/7/2020
2020.10.6.6 113 10/7/2020
2020.10.6.5 145 10/7/2020
2020.10.6.4 122 10/7/2020
2020.10.6.3 171 10/7/2020
2020.10.6.2 131 10/7/2020
2020.10.6.1 142 10/7/2020
2020.10.5.1 132 10/6/2020
2020.10.1.3 125 10/1/2020
2020.10.1.2 135 10/1/2020
2020.10.1.1 116 10/1/2020
2020.9.29.10 165 9/29/2020
2020.9.29.9 191 9/29/2020
2020.9.28.2 118 9/28/2020
2020.9.28.1 147 9/28/2020
2020.9.25.1 260 9/26/2020
2020.9.24.2 143 9/24/2020
2020.9.24 123 9/24/2020
2020.9.23.2 146 9/23/2020
2020.9.23.1 154 9/23/2020
2020.9.22.1 146 9/22/2020
2020.9.21.1 168 9/21/2020
Show less