Walter.Web.FireWall.CookieStore 2020.10.12.1

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.

     To integrate the Cookie Store database use the UseDBCookieStore extension method as shown bellow
     services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
        , domainName: new Uri("https://www.your-domain.com/", UriKind.Absolute)
        , options =>
     {
       //your firewall settings
     }).UseDBCookieStore();     
    
    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.10.12.1
dotnet add package Walter.Web.FireWall.CookieStore --version 2020.10.12.1
<PackageReference Include="Walter.Web.FireWall.CookieStore" Version="2020.10.12.1" />
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.10.12.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Walter.Web.FireWall.CookieStore, 2020.10.12.1"
#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.10.12.1

// Install Walter.Web.FireWall.CookieStore as a Cake Tool
#tool nuget:?package=Walter.Web.FireWall.CookieStore&version=2020.10.12.1
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

05 October 2020
     - Update terms
     - update NuGet package references
     
     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.14.2025 0 6/15/2021
2021.6.13.2035 0 6/14/2021
2021.6.12.1154 8 6/13/2021
2021.6.9.1120 20 6/9/2021
2021.6.3.1509 114 6/3/2021
2021.5.31.1533 84 5/31/2021
2021.5.31.1415 101 5/31/2021
2021.5.25.1732 102 5/25/2021
2021.5.24.1128 126 5/24/2021
2021.5.24.1019 90 5/24/2021
2021.5.12.1054 35 5/12/2021
2021.5.12.637 34 5/12/2021
2021.5.8.1226 47 5/8/2021
2021.5.5.1901 56 5/6/2021
2021.5.3.1621 34 5/4/2021
2021.5.1.905 66 5/1/2021
2021.4.28.1511 52 4/28/2021
2021.4.20.1520 49 4/21/2021
2021.4.16.738 44 4/21/2021
2021.4.14.1216 73 4/16/2021
2021.4.9.1538 55 4/13/2021
2021.4.8.947 66 4/13/2021
2021.4.6.1235 59 4/6/2021
2021.4.5.1653 73 4/5/2021
2021.4.1.913 66 4/1/2021
2021.3.31.2003 109 4/1/2021
2021.3.18.1622 69 3/18/2021
2021.3.3.1259 93 3/3/2021
2021.3.2.1415 54 3/2/2021
2021.3.1.11 70 2/28/2021
2021.3.1.1 79 2/27/2021
2021.3.1 91 2/27/2021
2021.2.23.6 68 2/23/2021
2021.2.21.1 56 2/21/2021
2021.2.20.1 69 2/20/2021
2021.2.19.2 61 2/19/2021
2021.2.18.6 58 2/19/2021
2021.2.17.1 64 2/17/2021
2021.2.16.1 69 2/16/2021
2021.2.15.3 68 2/15/2021
2021.2.15.1 62 2/14/2021
2021.2.14.3 65 2/14/2021
2021.2.12.6 56 2/12/2021
2021.2.12.2 52 2/12/2021
2021.2.11.1 56 2/11/2021
2021.2.10.1 53 2/10/2021
2021.2.8.1 65 2/9/2021
2021.2.7.2 78 2/7/2021
2021.2.7.1 55 2/6/2021
2020.12.27.6 124 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 201 12/19/2020
2020.12.16.1 113 12/16/2020
2020.12.15.1 100 12/15/2020
2020.12.14.5 112 12/14/2020
2020.12.14.4 110 12/14/2020
2020.12.14.3 131 12/14/2020
2020.12.5.1 186 12/5/2020
2020.12.4.4 140 12/4/2020
2020.12.4.3 110 12/4/2020
2020.12.4.1 129 12/4/2020
2020.12.3.1 118 12/3/2020
2020.12.2.4 116 12/2/2020
2020.12.2.3 149 12/2/2020
2020.12.1.1 130 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 147 10/9/2020
2020.10.8.1 116 10/8/2020
2020.10.6.8 143 10/7/2020
2020.10.6.6 114 10/7/2020
2020.10.6.5 146 10/7/2020
2020.10.6.4 123 10/7/2020
2020.10.6.3 172 10/7/2020
2020.10.6.2 132 10/7/2020
2020.10.6.1 143 10/7/2020
2020.10.5.1 133 10/6/2020
2020.10.1.3 126 10/1/2020
2020.10.1.2 136 10/1/2020
2020.10.1.1 117 10/1/2020
2020.9.29.10 166 9/29/2020
2020.9.29.9 192 9/29/2020
2020.9.28.2 119 9/28/2020
2020.9.28.1 148 9/28/2020
2020.9.25.1 261 9/26/2020
2020.9.24.2 144 9/24/2020
2020.9.24 124 9/24/2020
2020.9.23.2 147 9/23/2020
2020.9.23.1 155 9/23/2020
2020.9.22.1 147 9/22/2020
2020.9.21.1 168 9/21/2020
Show less