Walter.Web.FireWall
2024.9.12.1923
Prefix Reserved
See the version list below for details.
dotnet add package Walter.Web.FireWall --version 2024.9.12.1923
NuGet\Install-Package Walter.Web.FireWall -Version 2024.9.12.1923
<PackageReference Include="Walter.Web.FireWall" Version="2024.9.12.1923" />
paket add Walter.Web.FireWall --version 2024.9.12.1923
#r "nuget: Walter.Web.FireWall, 2024.9.12.1923"
// Install Walter.Web.FireWall as a Cake Addin #addin nuget:?package=Walter.Web.FireWall&version=2024.9.12.1923 // Install Walter.Web.FireWall as a Cake Tool #tool nuget:?package=Walter.Web.FireWall&version=2024.9.12.1923
How to get started
This package 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
Unsupported You can't deploy the firewall as an embedded dll in a single file deployment as the firewall will validate the code signing certificate of the assembly. Make sure that you exclude Walter.Web.Firewall.dll from your deploy, for help see the documentation
Get started
The below sample shows how you integrate and enable the firewall in your project.
services.AddFireWall(options =>
{
//generate access specify to generate a .connect file that can be used with the remote desktop management software (open source)
options.Administration.GenerateConnectFile = true;
options.Administration.DisplayName = "My HomePage";
//white list IP addresses,and block all other or leave blank to allow all IP will accept single IP, IP with CIDR, or IP with subnet mask
//options.Administration.WhiteList("84.195.151.208", "81.206.151.236", "10.0.0.1-255.255.255.0");
options.Administration.Users.Seed(userName: "admin", password: "pa$$word1234", access: AdminAccess.Full, GeoLocation.EUROPE);
options.Administration.Users.GuestAccess(GeoLocation.ALL);
options.FireWallMode = Walter.Web.FireWall.FireWallProtectionModes.WebSiteWithApi;
options.ProtectedEndPointTypes.Add(typeof(BaseController));
options.TrackUsers = true;
options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
options.ContactDetails.Address = "Your address";
options.ContactDetails.EMail = "support@myDomain.com";
options.ContactDetails.Name = "Support";
options.ContactDetails.Phone = "+352 1111 2222 3333";
options.ContactDetails.Country = GeoLocation.Luxembourg;
options.Rules.AllowNonAspNetRequests = 1;
options.Rules.AllowNonAspNetRequestsIn = TimeSpan.FromMinutes(20);
options.Rules.RedirectNonAspNetRequestsTo = new Uri("/Home/Blocked", UriKind.Relative);
options.Rules.RedirectUrlPhishingTo = new Uri("/Home/404", UriKind.Relative);
options.Rules.AllowWhiteListing = false;
options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
options.Rules.AllowWhiteListing = false;
options.Rules.Headers.AddDefaultSecurePolicy()
.AddStrictTransportSecurityNoCache()
.AddXssProtectionBlockAndReport()
.AddFrameOptionsDeny()
.AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Self | Walter.Web.FireWall.TrustingSites.SubDomains | Walter.Web.FireWall.TrustingSites.GenerateNonce, allowInline:false)
;
})
.UseDatabase(DatabaseConnections.FireWallState, "dbo", TimeSpan.FromDays(365))
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseFireWall(enablePortScannerListners: false)//set to true if you use honey-pot configuration nuget package walter.net.honeypot
.UseSecurityHeadersMiddleware();
}
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.
There are a ton of configuration options available using the many annotations
namespace MyProject.Controllers
{
using Walter.Web.FireWall;
using Walter.Web.FireWall.Annotations;
using Walter.BOM.Geo;
[Geo(blockLocation: GeoLocation.AFRICA | GeoLocation.LATIN_AMERICA | GeoLocation.Netherlands)]
[Users(users: UserTypes.IsHuman | UserTypes.IsSearchEngine)]
[BlockDuration(duration: 60, sliding: true, doubleDurationPerIncedent: true)]
public sealed class MembersController : Controller
{
private readonly ILogger<MembersController> _logger;
private readonly IPageRequest _page;
public HomeController(ILogger<MembersController> logger,IPageRequest page)
{
_logger = logger;
_page=page;
}
public IActionResult Index()
{
return View();
}
[Ignore]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
//the page field will contain all the errors the user ran into
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
in your razor pages you can use the firewall tag helpers after importing the tag helpers by adding the following to _ViewImports.cshtml
@using Walter.Web.FireWall
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Walter.Web.FireWall
You can use the tag helper in your razor pages like this
<head>
...
@section CSS
{
<style firewall-style-nonce>
h1{
background-color:azure;
}
</style>
}
<head/>
<body>
...
<script firewall-detect></script>
<script firewall-script-nonce>
console.warn("nonce works :-)");
</script>
<body/>
This is just a small set of options of what's possible and additional functionality can be injected using the plugin system by using any of the NuGet packages starting with the name walter.web.firewall.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Walter.BOM (>= 2024.9.12.1923)
- Walter.DataTools.MsSql (>= 2024.9.12.1923)
- Walter.IO (>= 2024.9.12.1923)
- Walter.Net.HoneyPot (>= 2024.9.12.1923)
- Walter.Net.LookWhosTalking (>= 2024.9.12.1923)
- Walter.Net.Networking (>= 2024.9.12.1923)
-
net7.0
- Walter.BOM (>= 2024.9.12.1923)
- Walter.DataTools.MsSql (>= 2024.9.12.1923)
- Walter.IO (>= 2024.9.12.1923)
- Walter.Net.HoneyPot (>= 2024.9.12.1923)
- Walter.Net.LookWhosTalking (>= 2024.9.12.1923)
- Walter.Net.Networking (>= 2024.9.12.1923)
-
net8.0
- Walter.BOM (>= 2024.9.12.1923)
- Walter.DataTools.MsSql (>= 2024.9.12.1923)
- Walter.IO (>= 2024.9.12.1923)
- Walter.Net.HoneyPot (>= 2024.9.12.1923)
- Walter.Net.LookWhosTalking (>= 2024.9.12.1923)
- Walter.Net.Networking (>= 2024.9.12.1923)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Walter.Web.FireWall:
Package | Downloads |
---|---|
Walter.Web.FireWall.EventLog
Reporting interface for the firewall and the windows to support structured logging to the windows EventLog. The Package extends the reporting functionality to NuGet package Walter.Web.Firewall and is easily activated by dependency injection during service configuration services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute) , options => { //your firewall settings }).UseEventLogLogging(options=>{ options.LogName = "FireWall"; options.SourceName = "www.your-domain.com"; }); More information on how to use this Add-On is available in this manual https://www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf |
|
Walter.Web.FireWall.SqlLogger
Package that enable SQL Server database storage and logging to NuGet package Walter.Web.Firewall The NuGet package is easily activated by dependency injection during service configuration services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute) , options => { //your firewall settings }).UseDataBase(ConfigurationManager.ConnectionStrings["FireWallState"].ConnectionString) .UseFireWallReportingDatabase(ConfigurationManager.ConnectionStrings["FireWallReporting"].ConnectionString); More information on how to use this Add-On is available in this manual https://www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf |
|
Walter.Web.FireWall.Geo.Native
Free FireWall native Geo-country code API with limited accuracy. The Package adds functionality to NuGet package Walter.Web.Firewall More information on how to use this Add-On is available in this manual https://www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf This free API library may not give accurate results as it uses unchecked public domain data |
|
Walter.Web.FireWall.SMTPLogger
The Package adds E-Mail based reporting functionality to NuGet package Walter.Web.Firewall and allows for the logging of incidents via E-Mail by using a E-Mail buffer and sends the emails at configured intervals. The NuGet package is easily activated by dependency injection during service configuration services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute) , options => { //your firewall settings }).UseSMTPReportingDatabase(options =>{ options.Archive = TimeSpan.FromDays(180); options.Server = "mail.server.com"; options.UserName = "noreply@your-domain.com"; options.Password = "pa$$w0rd1234"; options.Port = 8889; options.From = "noreply@your-domain.com"; options.IgnoreServerCertificateErrors = true; options.DefaultEmail = "webmaster@your-domain.com"; options.Archive = TimeSpan.FromDays(60); options.MailingList.AddRange(new[] { new EMailAddress("Security Admin","security@your-domain.com") { Frequency= TimeSpan.FromHours(1), Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation }, new EMailAddress("WAF","info@your-domain.com"){ Frequency= TimeSpan.FromHours(1), Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } , }); }); More information on how to use this Add-On is available in this manual https://www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf as well as on-line at https://www.asp-waf.com/NuGet |
|
Walter.Web.FireWall.DiskLogger
Reporting interface for the firewall and the windows to support logging to disk as well as start Post-Reporting work-flows like PowerShel scripts or executables. The Package extends the reporting functionality to NuGet package Walter.Web.Firewall and is easily activated by dependency injection during service configuration services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute) , options => { //your options }).UseDiskLogging(opt=>{ opt.DataDirectory = @"D:\Web-FireWall\FireWall"; opt.PowerShellOption = PowerShellFilesOption.GenerateIfMissing; opt.Commandline = new System.Diagnostics.ProcessStartInfo(@"D:\jobs\FireWall.bat"){UseShellExecute = true}; }); More information on how to use this Add-On is available in this manual https://www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2024.9.27.1406 | 254 | 9/27/2024 |
2024.9.17.1417 | 306 | 9/17/2024 |
2024.9.12.1923 | 352 | 9/12/2024 |
2024.9.6.1352 | 400 | 9/7/2024 |
2024.9.1.1159 | 318 | 9/1/2024 |
2024.8.26.1150 | 357 | 8/26/2024 |
2024.8.19.1411 | 377 | 8/19/2024 |
2024.8.17.1000 | 367 | 8/17/2024 |
2024.8.12.1622 | 350 | 8/13/2024 |
2024.8.5.1010 | 309 | 8/5/2024 |
2024.8.1.1545 | 389 | 8/16/2024 |
2024.7.28.629 | 175 | 7/28/2024 |
2024.7.26.1512 | 190 | 7/26/2024 |
2024.7.26.828 | 184 | 7/26/2024 |
2024.7.11.1604 | 323 | 7/11/2024 |
2024.7.9.1520 | 333 | 7/9/2024 |
2024.7.4.1425 | 376 | 7/4/2024 |
2024.7.3.1249 | 315 | 7/3/2024 |
2024.7.2.1536 | 392 | 7/2/2024 |
2024.6.28.953 | 380 | 6/28/2024 |
2023.11.13.1117 | 1,516 | 11/13/2023 |
2023.10.26.1502 | 1,385 | 10/29/2023 |
2023.10.12.1926 | 1,514 | 10/12/2023 |
2023.9.14.812 | 1,641 | 9/14/2023 |
2023.9.7.1748 | 1,662 | 9/7/2023 |
2023.9.7.1241 | 1,667 | 9/7/2023 |
2023.9.6.1001 | 1,635 | 9/6/2023 |
2023.9.5.1246 | 1,646 | 9/5/2023 |
2023.9.5.1032 | 1,641 | 9/5/2023 |
2023.8.31.1522 | 1,653 | 8/31/2023 |
2023.8.29.1040 | 1,729 | 8/29/2023 |
2023.8.17.901 | 1,776 | 8/17/2023 |
2023.8.9.1314 | 1,870 | 8/9/2023 |
2023.8.2.750 | 1,917 | 8/2/2023 |
2023.7.12.830 | 1,933 | 7/12/2023 |
2023.7.5.1419 | 2,060 | 7/6/2023 |
2023.6.14.1628 | 2,107 | 6/14/2023 |
2023.6.11.1304 | 2,173 | 6/11/2023 |
2023.5.30.1640 | 2,131 | 5/30/2023 |
2023.5.4.1552 | 2,245 | 5/4/2023 |
2023.5.1.1524 | 2,136 | 5/1/2023 |
2023.4.29.910 | 2,333 | 4/29/2023 |
2023.4.12.1236 | 2,340 | 4/12/2023 |
2023.3.22.1456 | 2,469 | 3/22/2023 |
2023.3.14.1356 | 2,559 | 3/14/2023 |
2023.3.1.810 | 2,633 | 3/1/2023 |
2023.2.25.11857 | 2,606 | 2/25/2023 |
2023.2.22.27 | 2,593 | 2/22/2023 |
2023.2.15.1413 | 2,679 | 2/15/2023 |
2023.2.11.1628 | 2,762 | 2/11/2023 |
2023.1.11.534 | 2,919 | 1/11/2023 |
2022.12.30.711 | 2,932 | 12/30/2022 |
2022.12.15.1108 | 2,929 | 12/15/2022 |
2022.12.14.648 | 2,982 | 12/14/2022 |
2022.11.27.1059 | 3,064 | 11/27/2022 |
2022.11.21.338 | 3,134 | 11/21/2022 |
2022.11.14.1819 | 3,191 | 11/14/2022 |
2022.11.13.917 | 3,172 | 11/13/2022 |
2022.10.31.740 | 5,627 | 11/1/2022 |
2022.10.15.652 | 5,992 | 10/15/2022 |
2022.10.1.810 | 6,355 | 10/1/2022 |
2022.9.26.1444 | 6,411 | 9/26/2022 |
2022.9.14.1508 | 6,560 | 9/14/2022 |
2022.9.14.809 | 6,591 | 9/14/2022 |
2022.9.8.1009 | 6,753 | 9/8/2022 |
2022.8.20.1007 | 6,682 | 8/20/2022 |
2022.8.1.1 | 6,676 | 7/31/2022 |
2022.7.1300 | 6,986 | 7/1/2022 |
2022.7.31.1016 | 6,940 | 7/31/2022 |
2022.7.15.841 | 7,002 | 7/15/2022 |
2022.6.21.647 | 6,830 | 6/21/2022 |
2022.5.18.638 | 6,913 | 5/19/2022 |
2022.5.16.853 | 7,039 | 5/19/2022 |
2022.5.16.816 | 7,025 | 5/16/2022 |
2022.5.4.1010 | 7,011 | 5/4/2022 |
2022.4.10.947 | 7,436 | 4/10/2022 |
2022.4.10.925 | 7,514 | 4/10/2022 |
2022.4.10.828 | 7,303 | 4/10/2022 |
2022.4.1.1545 | 7,615 | 4/1/2022 |
2022.3.31.823 | 6,351 | 3/31/2022 |
2022.3.26.1103 | 7,608 | 3/26/2022 |
2022.3.26.820 | 7,163 | 3/26/2022 |
2022.3.25.840 | 6,467 | 3/26/2022 |
2022.2.16.1131 | 7,702 | 2/17/2022 |
2022.2.16.834 | 7,465 | 2/17/2022 |
2022.2.15.824 | 1,307 | 2/17/2022 |
2022.2.11.1452 | 1,490 | 2/17/2022 |
2022.2.11.931 | 1,315 | 2/17/2022 |
2022.2.5.1114 | 7,866 | 2/5/2022 |
2022.1.17.1158 | 9,042 | 1/17/2022 |
2022.1.10.1505 | 9,141 | 1/10/2022 |
2022.1.10.537 | 9,202 | 1/10/2022 |
2022.1.5.1139 | 8,750 | 1/8/2022 |
2021.12.28.1452 | 9,943 | 12/28/2021 |
2021.12.16.812 | 9,614 | 12/16/2021 |
2021.11.23.1528 | 16,116 | 11/24/2021 |
2021.11.21.925 | 16,494 | 11/22/2021 |
2021.11.19.847 | 10,952 | 11/19/2021 |
2021.11.18.1824 | 9,981 | 11/16/2021 |
2021.11.10.852 | 11,152 | 11/10/2021 |
2021.11.9.2021 | 10,807 | 11/9/2021 |
2021.11.8.2109 | 8,160 | 11/9/2021 |
2021.11.8.1612 | 8,821 | 11/8/2021 |
2021.11.7.1021 | 8,581 | 11/8/2021 |
2021.11.3.1612 | 8,770 | 11/4/2021 |
2021.11.1.1102 | 7,645 | 11/1/2021 |
2021.10.25.1206 | 9,279 | 10/25/2021 |
2021.10.23.1310 | 9,188 | 10/25/2021 |
2021.10.19.1522 | 9,089 | 10/19/2021 |
2021.10.16.1325 | 9,101 | 10/18/2021 |
2021.10.9.1119 | 129 | 10/9/2024 |
2021.10.6.1546 | 9,103 | 10/6/2021 |
2021.10.5.1450 | 9,147 | 10/5/2021 |
2021.10.4.1155 | 9,092 | 10/5/2021 |
2021.10.1.753 | 9,291 | 10/1/2021 |
2021.9.27.1005 | 8,568 | 9/28/2021 |
2021.9.26.1913 | 9,433 | 9/26/2021 |
2021.9.19.1015 | 7,408 | 9/19/2021 |
2021.9.17.1702 | 5,208 | 9/17/2021 |
2021.9.17.1449 | 11,802 | 9/17/2021 |
2021.9.13.1600 | 7,018 | 9/13/2021 |
2021.9.12.1100 | 4,892 | 9/13/2021 |
2021.9.11.2004 | 8,331 | 9/11/2021 |
2021.9.9.1110 | 8,990 | 9/9/2021 |
2021.9.7.1901 | 9,038 | 9/8/2021 |
2021.9.7.1121 | 9,295 | 9/7/2021 |
2021.9.6.1518 | 8,565 | 9/7/2021 |
2021.9.4.1124 | 9,197 | 9/4/2021 |
2021.9.2.708 | 8,526 | 9/4/2021 |
2021.9.0.1259 | 8,421 | 9/2/2021 |
2021.8.2200 | 8,027 | 8/23/2021 |
2021.8.2100 | 9,049 | 8/23/2021 |
2021.8.22.900 | 9,003 | 8/22/2021 |
2021.8.18.1500 | 8,912 | 8/18/2021 |
2021.8.18.930 | 8,962 | 8/18/2021 |
2021.8.14.1600 | 8,700 | 8/16/2021 |
2021.8.14.829 | 3,813 | 8/14/2021 |
2021.8.9.1105 | 8,733 | 8/9/2021 |
2021.8.8.1612 | 8,484 | 8/8/2021 |
2021.8.8.1138 | 7,631 | 8/8/2021 |
2021.8.6.1044 | 8,605 | 8/6/2021 |
2021.8.4.1355 | 9,051 | 8/5/2021 |
2021.7.30.2118 | 9,034 | 7/31/2021 |
2021.7.27.926 | 8,886 | 7/28/2021 |
2021.7.23.931 | 8,893 | 7/26/2021 |
2021.7.22.1456 | 8,405 | 7/23/2021 |
2021.7.15.1547 | 8,458 | 7/15/2021 |
2021.7.13.812 | 8,454 | 7/13/2021 |
2021.7.8.1527 | 8,733 | 7/10/2021 |
2021.7.5.1649 | 7,419 | 7/5/2021 |
2021.6.29.1453 | 8,773 | 6/30/2021 |
2021.6.26.1753 | 9,228 | 6/27/2021 |
2021.6.25.1849 | 8,960 | 6/25/2021 |
2021.6.24.1518 | 8,690 | 6/24/2021 |
2021.6.20.729 | 8,422 | 6/20/2021 |
2021.6.15.2006 | 8,300 | 6/15/2021 |
2021.6.14.2025 | 8,200 | 6/15/2021 |
2021.6.13.2035 | 8,375 | 6/14/2021 |
2021.6.12.1154 | 7,773 | 6/13/2021 |
2021.6.9.1120 | 7,969 | 6/9/2021 |
2021.6.3.1509 | 7,749 | 6/3/2021 |
2021.5.31.1533 | 7,941 | 5/31/2021 |
2021.5.31.1415 | 7,907 | 5/31/2021 |
2021.5.25.1732 | 6,893 | 5/25/2021 |
2021.5.24.1128 | 7,650 | 5/24/2021 |
2021.5.24.1019 | 7,520 | 5/24/2021 |
2021.5.12.1054 | 7,511 | 5/12/2021 |
2021.5.12.637 | 5,814 | 5/12/2021 |
2021.5.10.1442 | 6,959 | 5/11/2021 |
2021.5.8.1226 | 7,442 | 5/8/2021 |
2021.5.6.2037 | 6,583 | 5/6/2021 |
2021.5.5.1901 | 7,590 | 5/6/2021 |
2021.5.3.1621 | 7,716 | 5/4/2021 |
2021.5.1.905 | 7,917 | 5/1/2021 |
2021.4.28.1511 | 7,864 | 4/28/2021 |
2021.4.20.1520 | 7,697 | 4/21/2021 |
2021.4.16.949 | 1,212 | 4/21/2021 |
2021.4.16.738 | 7,927 | 4/21/2021 |
2021.4.14.1216 | 8,090 | 4/16/2021 |
2021.4.9.1538 | 7,873 | 4/13/2021 |
2021.4.8.947 | 7,996 | 4/13/2021 |
2021.4.6.1235 | 7,999 | 4/6/2021 |
2021.4.5.1653 | 7,662 | 4/5/2021 |
2021.4.1.913 | 7,918 | 4/1/2021 |
2021.3.31.2003 | 7,837 | 4/1/2021 |
2021.3.18.1622 | 8,362 | 3/18/2021 |
2021.3.3.1259 | 7,682 | 3/3/2021 |
2021.3.2.1415 | 8,130 | 3/2/2021 |
2021.3.1.11 | 7,678 | 2/28/2021 |
2021.3.1.1 | 7,929 | 2/27/2021 |
2021.3.1 | 7,581 | 2/27/2021 |
2021.2.23.6 | 6,838 | 2/23/2021 |
2021.2.23.4 | 1,259 | 2/23/2021 |
2021.2.21.1 | 7,495 | 2/21/2021 |
2021.2.20.1 | 7,456 | 2/20/2021 |
2021.2.19.2 | 7,376 | 2/19/2021 |
2021.2.18.6 | 6,407 | 2/19/2021 |
2021.2.17.1 | 7,395 | 2/17/2021 |
2021.2.16.1 | 7,836 | 2/16/2021 |
2021.2.15.3 | 7,700 | 2/15/2021 |
2021.2.15.1 | 7,755 | 2/14/2021 |
2021.2.14.3 | 7,198 | 2/14/2021 |
2021.2.12.6 | 7,571 | 2/12/2021 |
2021.2.12.2 | 7,777 | 2/12/2021 |
2021.2.11.1 | 6,036 | 2/11/2021 |
2021.2.10.1 | 7,191 | 2/10/2021 |
2021.2.8.1 | 7,658 | 2/9/2021 |
2021.2.7.2 | 7,741 | 2/7/2021 |
2021.2.7.1 | 7,947 | 2/6/2021 |
2020.12.27.1 | 7,219 | 12/27/2020 |
2020.12.26.5 | 7,236 | 12/27/2020 |
2020.12.26.4 | 1,214 | 12/27/2020 |
2020.12.26.3 | 7,212 | 12/27/2020 |
2020.12.19.1 | 7,806 | 12/19/2020 |
2020.12.16.1 | 7,196 | 12/16/2020 |
2020.12.15.1 | 7,893 | 12/15/2020 |
2020.12.14.5 | 13,140 | 12/14/2020 |
Major releases that add functionality other than optimization and minor bug fixing
22 April 2024
-Update add .net 8
26 October 2023
- Update Package references
12 October 2023
- Build using SDK-7.0.402 and SDK-6.0.415
- Update Package references
14 September 2023
- SDK 7.0.401/SDK 6.0.414
- Update to new NuGet Packages
8 August 2023
- Updare SDK framework to match security release on .net 6 and .net 7