global Namespace

Classes

 | Class | Description
Public class | FireWallTrial | You can get started with the FireWallTrial license without having to register your instance and try all features that come with the firewall.
VESNX SA - Luxembourg. © Lambert Snellinx 2017-2021 all rights reserved
Help File generated with GhostDoc


FireWallTrial Class

You can get started with the FireWallTrial license without having to register your instance and try all features that come with the firewall.

Namespace: global
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static class FireWallTrial

Remarks

The Web Application Framework works by understanding the nature of a requests and maps the request to plausible activity specific to your application. If the request is malicious, if the reputation of the requester or of the device used is cause of concern, or the geographical location is not appropriate... Then the request may be re-directed, rejected or can be allowed for a defined amount of requests.

The framework works with a set of core classes that you are able to use for configuring your application's security design as well as classes that are accessible to you that you can use to monitor, interact, or overwrite the firewall response.

Trial key

The trial key will never expire however after 60 days it will automatically downgrade to an unregistered community license, get a license at www.asp-waf.com.

Have a look at the available firewall Add-ons for the firewall so that can enhance the functionality of the firewall. The Add.On NuGet packages all start with the name Walter.Web.FireWall.

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

   });

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
   );

See Also

FireWallTrial Members
global Namespace


FireWallTrial Members

The FireWallTrial type exposes the following members.

Fields

Name | Description
DomainKey | The trial domain key (get your own license at www.asp-waf.com)
License | The trial license token (get your own license at www.asp-waf.com)

See Also

FireWallTrial Class
global Namespace


FireWallTrial Fields

The FireWallTrial type exposes the following members.

Fields

Name | Description
DomainKey | The trial domain key (get your own license at www.asp-waf.com)
License | The trial license token (get your own license at www.asp-waf.com)

See Also

FireWallTrial Class
global Namespace


DomainKey Field

ASP-WAF Web application firewall for .Net 6, .Net 5, .Net Standard 2.1 and .Net Core 3.x

FireWallTrial..::..DomainKey Field

The trial domain key (get your own license at www.asp-waf.com)

Namespace: global
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const string DomainKey

See Also

FireWallTrial Class
global Namespace


License Field

FireWallTrial..::..License Field

The trial license token (get your own license at www.asp-waf.com)

Namespace: global
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const string License

See Also

FireWallTrial Class
global Namespace


Microsoft.Extensions.DependencyInjection Namespace

Classes

 | Class | Description
Public class | CookieStoreBuilderExtensions | AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database
Public class | DatabaseReportDesinationBuilderExtensions | Class allowing you to register the Database reporting destination
Public class | DataToolsExtensionMethod | ExtensionMethod for adding database tools to the application
Public class | DbState | Database state for the firewall allows you to specify the configuration options to use
Public class | EventLogReportingExtensions | Class allowing you to register the Windows EventLog reporting destination
Public class | FireWallBuilderExtensions | Firewall builder Extensions for enabling to integrate the firewall in .Net projects that are using dependency injection as well as a web service to communicate using HTTP protocol
Public class | FireWallDiskLoggingExtensions | Contains extension methods that allows you to add logging to disk for the firewall instance, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts.
Public class | HoneyPotServiceExtension | Helper class for configuring the honey-pot services
Public class | ILoggerReportingExtensions | Enables the FireWall to send incidents to the ILogger interface of the application using a specific log level.
Public class | MaxMindBuilderExtensions | MaxMind Extension builder helper method is used to configure the firewall's geographical awareness by using MaxMinds's data services. see MaxMind GEO implementations for the actual configuration.
Public class | NativeGeoExtension | Class NativeGeoExtension.
Public class | ServiceCollectionExtension | Class ServiceCollectionExtension allowing to registered derived implementations of a already registered service to re-use the same service without having to register the same class 2x ending up with 2 instances of the same type in the same scope.
Public class | SMPTLoggerBuilderExtensions | Extension method used to allow for an easy integration of standard SMTP email firewall reporting
Public class | UserStackBuilderExtensions | This extension method allows you to integrate Userstack.com service into the FireWall framework.
Public class | WhoisWhoisBackGroundProcessorExtensions | Extension method used to make background processing available for IWois interfaces extracting ISP WHOIS data for a given IP address

Interfaces

 | Interface | Description
Public interface | IFirewallDBServices | interface used by plug-in's to extend the firewall with database based add-ons
Public interface | IFirewallServices | Provide access to the .net dependency framework for registering ASP-WAF Add-on's


CookieStoreBuilderExtensions Class

AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.CookieStore (in Walter.Web.FireWall.CookieStore.dll)

Syntax

C#
public static class CookieStoreBuilderExtensions

Remarks

This extension method allows you to never store confidential data in the browser

Examples

Configure the application to use the cookie store
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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();

See Also

CookieStoreBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.IUserIdentity.WriteCookie(string, string, bool)]
[Walter.Web.FireWall.IUserIdentity.WriteCookie(string, string, TimeSpan, bool) ]
[Walter.Web.FireWall.IUserIdentity.WriteCookieAsync(string, string, TimeSpan, bool, System.Threading.CancellationToken) ]
[Walter.Web.FireWall.IUserIdentity.TryReadCookie(string, out string?)]


CookieStoreBuilderExtensions Members

The CookieStoreBuilderExtensions type exposes the following members.

Methods

Name Description
UseCookieStore<(Of <<'(T>)>>)
Add the cookie store to the firewall allowing for a disk based cookie store
AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database
UseDBCookieStore<(Of <<'(T>)>>)
Add the cookie storage factory by injecting and configuring a [ICookieFactory] allowing for a SQL based cookie store
AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database

See Also

CookieStoreBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


CookieStoreBuilderExtensions Methods

The CookieStoreBuilderExtensions type exposes the following members.

Methods

Name Description
UseCookieStore<(Of <<'(T>)>>)
Add the cookie store to the firewall allowing for a disk based cookie store
AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database
UseDBCookieStore<(Of <<'(T>)>>)
Add the cookie storage factory by injecting and configuring a [ICookieFactory] allowing for a SQL based cookie store
AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database

See Also

CookieStoreBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseCookieStore(T) Method

CookieStoreBuilderExtensions..::..UseCookieStore<(Of <(<'T>)>)> Method

Add the cookie store to the firewall allowing for a disk based cookie store
AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.CookieStore (in Walter.Web.FireWall.CookieStore.dll)

Syntax

C#
public static T UseCookieStore<T>(
    T service
)
where T : IFirewallServices

Type Parameters

T
the type of service to use for the registration

Parameters

service
Type: T
The service to register on

Return Value

The service using Disk based cookie storage

Remarks

Please note that on large applications you might prefer to have a database version as large amount of files on disk might cause the server to slow down. This version supports up-to 32000 active cookies.

Remarks

This extension method allows you to never store confidential data in the browser

Examples

Configure the application to use the cookie store
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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();

See Also

CookieStoreBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.IUserIdentity.WriteCookie(string, string, bool)]
[Walter.Web.FireWall.IUserIdentity.WriteCookie(string, string, TimeSpan, bool) ]
[Walter.Web.FireWall.IUserIdentity.WriteCookieAsync(string, string, TimeSpan, bool, System.Threading.CancellationToken) ]
[Walter.Web.FireWall.IUserIdentity.TryReadCookie(string, out string?)]


UseDBCookieStore(T) Method

CookieStoreBuilderExtensions..::..UseDBCookieStore<(Of <(<'T>)>)> Method

Add the cookie storage factory by injecting and configuring a [ICookieFactory] allowing for a SQL based cookie store
AllowRaiseIncident you to add a cookie-store to the firewall where the values stored in the cookies is replaced with values stored on disk or database

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.CookieStore (in Walter.Web.FireWall.CookieStore.dll)

Syntax

C#
public static T UseDBCookieStore<T>(
    T service,
    string connectionString
)
where T : IFirewallServices

Type Parameters

T
the type of service to use for the registration

Parameters

service
Type: T
The service to register on
connectionString
Type: String
The connection string to use

Return Value

The service using Disk based cookie storage

Remarks

This version supports as many active cookies as your database allows.

Remarks

This extension method allows you to never store confidential data in the browser

Examples

Configure the application to use the cookie store
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

       }).UseDBCookieStore(Configuration.GetConnectionString("FireWallCookieDatabase"));

See Also

CookieStoreBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.IUserIdentity.WriteCookie(string, string, bool)]
[Walter.Web.FireWall.IUserIdentity.WriteCookie(string, string, TimeSpan, bool) ]
[Walter.Web.FireWall.IUserIdentity.WriteCookieAsync(string, string, TimeSpan, bool, System.Threading.CancellationToken) ]
[Walter.Web.FireWall.IUserIdentity.TryReadCookie(string, out string?)]


DatabaseReportDesinationBuilderExtensions Class

Class allowing you to register the Database reporting destination

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SqlLogger (in Walter.Web.FireWall.SqlLogger.dll)

Syntax

C#
public static class DatabaseReportDesinationBuilderExtensions

See Also

DatabaseReportDesinationBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


DatabaseReportDesinationBuilderExtensions Members

Methods

Name | Description
UseFireWallReportingDatabase<(Of <<'(T>)>>)(T) | Use firewall database with the connection string found in FireWallConfig.UseDatabaseConnectionString using the same database for database state as well as firewall reporting
UseFireWallReportingDatabase<(Of <<'(T>)>>)(T, String) | Use firewall database with a different connection string allowing reporting to use a different location as the firewall's state storage

See Also

DatabaseReportDesinationBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


DatabaseReportDesinationBuilderExtensions Methods

Methods

Name | Description
UseFireWallReportingDatabase<(Of <<'(T>)>>)(T) | Use firewall database with the connection string found in FireWallConfig.UseDatabaseConnectionString using the same database for database state as well as firewall reporting
UseFireWallReportingDatabase<(Of <<'(T>)>>)(T, String) | Use firewall database with a different connection string allowing reporting to use a different location as the firewall's state storage

See Also

DatabaseReportDesinationBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseFireWallReportingDatabase Method

DatabaseReportDesinationBuilderExtensions..::..UseFireWallReportingDatabase Method

Overload List

Name | Description
UseFireWallReportingDatabase<(Of <<'(T>)>>)(T) | Use firewall database with the connection string found in FireWallConfig.UseDatabaseConnectionString using the same database for database state as well as firewall reporting
UseFireWallReportingDatabase<(Of <<'(T>)>>)(T, String) | Use firewall database with a different connection string allowing reporting to use a different location as the firewall's state storage

See Also

DatabaseReportDesinationBuilderExtensions Class
DatabaseReportDesinationBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseFireWallReportingDatabase(T) Method (T)

DatabaseReportDesinationBuilderExtensions..::..UseFireWallReportingDatabase<(Of <(<'T>)>)> Method (T)

Use firewall database with the connection string found in FireWallConfig.UseDatabaseConnectionString using the same database for database state as well as firewall reporting

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SqlLogger (in Walter.Web.FireWall.SqlLogger.dll)

Syntax

C#
public static T UseFireWallReportingDatabase<T>(
    T service
)
where T : IFirewallDBServices, IFirewallServices

Type Parameters

T
the builder type to use

Parameters

service
Type: T
service to register the dependency on

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

Use the same firewall for both the firewall state as well as the reporting (not recommended)
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

   }).UseDataBase(ConfigurationManager.ConnectionStrings["FireWall"].ConnectionString)
     .UseFireWallReportingDatabase(DatabaseConnections.FireWall);

See Also

DatabaseReportDesinationBuilderExtensions Class
UseFireWallReportingDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


UseFireWallReportingDatabase(T) Method (T, String)

DatabaseReportDesinationBuilderExtensions..::..UseFireWallReportingDatabase<(Of <(<'T>)>)> Method (T, String)

Use firewall database with a different connection string allowing reporting to use a different location as the firewall's state storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SqlLogger (in Walter.Web.FireWall.SqlLogger.dll)

Syntax

C#
public static T UseFireWallReportingDatabase<T>(
    T service,
    string connectionString
)
where T : IFirewallDBServices, IFirewallServices

Type Parameters

T
The builder type to use

Parameters

service
Type: T
service to register the dependency on
connectionString
Type: String
The not the default connection but use a specific connection string for the Database reporting

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

use a specific database for firewall reporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

   }).UseDatabase(ConfigurationManager.ConnectionStrings["FireWall"].ConnectionString);

See Also

DatabaseReportDesinationBuilderExtensions Class
UseFireWallReportingDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


DataToolsExtensionMethod Class

ExtensionMethod for adding database tools to the application

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public static class DataToolsExtensionMethod

See Also

DataToolsExtensionMethod Members
Microsoft.Extensions.DependencyInjection Namespace


DataToolsExtensionMethod Members

The DataToolsExtensionMethod type exposes the following members.

Methods

Name | Description
AddDatabaseTools | Add SQL server database tools
CreateInstance | Create a named connection string specific instance
UseNamedInstance | Create a named connection string specific instance with the DIContainer

See Also

DataToolsExtensionMethod Class
Microsoft.Extensions.DependencyInjection Namespace


DataToolsExtensionMethod Methods

The DataToolsExtensionMethod type exposes the following members.

Methods

Name | Description
AddDatabaseTools | Add SQL server database tools
CreateInstance | Create a named connection string specific instance
UseNamedInstance | Create a named connection string specific instance with the DIContainer

See Also

DataToolsExtensionMethod Class
Microsoft.Extensions.DependencyInjection Namespace


AddDatabaseTools Method

DataToolsExtensionMethod..::..AddDatabaseTools Method

Add SQL server database tools

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public static void AddDatabaseTools(
    IServiceCollection service
)

Parameters

service
Type: IServiceCollection
service to add database tools too

Return Value

See Also

DataToolsExtensionMethod Class
Microsoft.Extensions.DependencyInjection Namespace


CreateInstance Method

DataToolsExtensionMethod..::..CreateInstance Method

Create a named connection string specific instance

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public static IDatabaseTools CreateInstance(
    string connectionString
)

Parameters

connectionString
Type: String

Return Value

See Also

DataToolsExtensionMethod Class
Microsoft.Extensions.DependencyInjection Namespace


UseNamedInstance Method

DataToolsExtensionMethod..::..UseNamedInstance Method

Create a named connection string specific instance with the DIContainer

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public static void UseNamedInstance(
    string name,
    string connectionString
)

Parameters

name
Type: String
connectionString
Type: String

See Also

DataToolsExtensionMethod Class
Microsoft.Extensions.DependencyInjection Namespace


DbState Class

Database state for the firewall allows you to specify the configuration options to use

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class DbState

Remarks

The connection string will assign the connection string based on each configuration. Changing the state at runtime will have no effect as databases are initialized during application start. If you change the configuration later you may end-up having orphaned database tables containing old state data

See Also

DbState Members
Microsoft.Extensions.DependencyInjection Namespace


DbState Members

The DbState type exposes the following members.

Properties

 | Name | Description
Public property | IncidentRepository | Configuration for the Incident repository.
Public property | RequestRepository | Configuration for the request repository.
Public property | ResetRepository | Configuration for the Incident Reset repository.
Public property | SharedConnectionString | The connection string applied for all state objects
Public property | SubscriptionRepository | Configuration for the Subscription data repository.
Public property | UserAgentRepository | Configuration for the User Agent repository.
Public property | WhoisRepository | Configuration for the Who-Is ISP repository.
Public property | WhoisTalkingRepository | Configuration for the "what processes are talking" repository

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


DbState Properties

The DbState type exposes the following members.

Properties

 | Name | Description
Public property | IncidentRepository | Configuration for the Incident repository.
Public property | RequestRepository | Configuration for the request repository.
Public property | ResetRepository | Configuration for the Incident Reset repository.
Public property | SharedConnectionString | The connection string applied for all state objects
Public property | SubscriptionRepository | Configuration for the Subscription data repository.
Public property | UserAgentRepository | Configuration for the User Agent repository.
Public property | WhoisRepository | Configuration for the Who-Is ISP repository.
Public property | WhoisTalkingRepository | Configuration for the "what processes are talking" repository

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


IncidentRepository Property

DbState..::..IncidentRepository Property

Configuration for the Incident repository.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails IncidentRepository { get; }

Remarks

This is a important database and needs to be fast as each request will query for any previous incidents

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


RequestRepository Property

DbState..::..RequestRepository Property

Configuration for the request repository.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails RequestRepository { get; }

Remarks

This database could contain quite a few rows of data as each request is stored for the duration specified in the data retention period or the TimeSpan defined by IFireWall.Configuration.Cashing.BufferFirewallData

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


ResetRepository Property

DbState..::..ResetRepository Property

Configuration for the Incident Reset repository.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails ResetRepository { get; }

Remarks

This repository is used for the management API

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


SharedConnectionString Property

DbState..::..SharedConnectionString Property

The connection string applied for all state objects

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SharedConnectionString { get; set; }

Remarks

Make sure that the connection string is valid and the user has dbo rights or else the initialization and operation will fail

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


SubscriptionRepository Property

DbState..::..SubscriptionRepository Property

Configuration for the Subscription data repository.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails SubscriptionRepository { get; }

Remarks

This repository is used for the management API

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


UserAgentRepository Property

DbState..::..UserAgentRepository Property

Configuration for the User Agent repository.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails UserAgentRepository { get; }

Remarks

This repository is used for the management API

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


WhoisRepository Property

DbState..::..WhoisRepository Property

Configuration for the Who-Is ISP repository.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails WhoisRepository { get; }

Remarks

This is used with incidents associating the IP address to the ISP providing Internet access

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


WhoisTalkingRepository Property

DbState..::..WhoisTalkingRepository Property

Configuration for the "what processes are talking" repository

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionDetails WhoisTalkingRepository { get; }

Remarks

Similar name to WhoisRepository where that store ISP data

See Also

DbState Class
Microsoft.Extensions.DependencyInjection Namespace


EventLogReportingExtensions Class

Class allowing you to register the Windows EventLog reporting destination

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public static class EventLogReportingExtensions

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        //your firewall options
}).UseEventLogLogging(options=>{
     options.LogName = "FireWall";
     options.SourceName = "www.your-domain.com";
});

services.AddMvc(options =>
    // your MVC options
    ...
    //Always-On option: Add firewall to all request
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

See Also

EventLogReportingExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


EventLogReportingExtensions Members

Methods

Name | Description
UseEventLogLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(EventLogReportingSettings>)>>)) | Log in a custom location in the windows event log
UseEventLogLogging<(Of <<'(T>)>>)(T) | Use Application event-log to write events to

See Also

EventLogReportingExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


EventLogReportingExtensions Methods

Methods

Name | Description
UseEventLogLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(EventLogReportingSettings>)>>)) | Log in a custom location in the windows event log
UseEventLogLogging<(Of <<'(T>)>>)(T) | Use Application event-log to write events to

See Also

EventLogReportingExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseEventLogLogging Method

EventLogReportingExtensions..::..UseEventLogLogging Method

Overload List

Name | Description
UseEventLogLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(EventLogReportingSettings>)>>)) | Log in a custom location in the windows event log
UseEventLogLogging<(Of <<'(T>)>>)(T) | Use Application event-log to write events to

See Also

EventLogReportingExtensions Class
EventLogReportingExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseEventLogLogging(T) Method (T, Action(EventLogReportingSettings))

EventLogReportingExtensions..::..UseEventLogLogging<(Of <(<'T>)>)> Method (T, Action<(Of <(<'EventLogReportingSettings>)>)>)

Log in a custom location in the windows event log

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public static T UseEventLogLogging<T>(
    T service,
    Action<EventLogReportingSettings> options
)
where T : IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
service to register the dependency on
options
Type: Action<(Of <(<' EventLogReportingSettings >)>)>
define a specified event log (needs elevated security permissions)

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
    , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
    , options =>
    {
        //your firewall options
}).UseEventLogLogging(options=>{
     options.LogName = "FireWall";
     options.SourceName = "www.your-domain.com";
});

services.AddMvc(options =>
    // your MVC options
    ...
    //Always-On option: Add firewall to all request
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

See Also

EventLogReportingExtensions Class
UseEventLogLogging Overload
Microsoft.Extensions.DependencyInjection Namespace


UseEventLogLogging(T) Method (T)

EventLogReportingExtensions..::..UseEventLogLogging<(Of <(<'T>)>)> Method (T)

Use Application event-log to write events to

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public static T UseEventLogLogging<T>(
    T service
)
where T : IFirewallServices, IFirewallServices

Type Parameters

T
a IFirewallServices derived instance

Parameters

service
Type: T
service to register the dependency on

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =>
       {
           //your options
   }).UseEventLogLogging();

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
   );

See Also

EventLogReportingExtensions Class
UseEventLogLogging Overload
Microsoft.Extensions.DependencyInjection Namespace


FireWallBuilderExtensions Class

Firewall builder Extensions for enabling to integrate the firewall in .Net projects that are using dependency injection as well as a web service to communicate using HTTP protocol

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static class FireWallBuilderExtensions

See Also

FireWallBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


FireWallBuilderExtensions Members

The FireWallBuilderExtensions type exposes the following members.

Methods

Name | Description
AddFireWall(IServiceCollection, Uri) | Add a trial version of the firewall to a website
AddFireWall(IServiceCollection, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Add a trial version of the firewall to a website
AddFireWall(IServiceCollection, String, String, Uri) | Configure a FireWall for the web application with the settings generated in the cloud, this is generally preferred as no one can predict the settings and no attachers might be able to exploit this, even former employees. it's also an good option that can help you get started.
AddFireWall(IServiceCollection, String, String, Uri, IConfigurationSection) | Configure a FireWall for the web application using an predefined configuration
AddFireWall(IServiceCollection, String, String, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a registered instance
AddFireWall(IServiceCollection, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, String, String, Uri, IConfigurationSection) | Configure a FireWall for the web application using an predefined configuration and your own implementation of FireWallBase
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, String, String, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a custom firewall for the web application using a registered license
AddFireWallTagHelpers(IServiceCollection) | Adds the fire wall tag helpers to your razor pages.
AddFireWallTagHelpers<(Of <<'(T>)>>)(T) | Adds the fire wall tag helpers to your razor pages.
UseFireWall | Create and configure security headers middleware instance with the default policy
UseHttpStatusCodeExceptionMiddleware | Uses the HTTP status code exception middleware.
UseSecurityHeadersMiddleware(IApplicationBuilder) | Enables Always-On security headers middleware and uses the default policy if no policies have been defined
UseSecurityHeadersMiddleware(IFireWallConfigurationBuilder) | Enables Always-On security headers middleware and uses the default policy if no policies have been defined
UseUserAgentDBStore<(Of <<'(T>)>>)(T) | Use the firewall configured the default database instance to specify the storage for managing of user agent data
UseUserAgentDBStore<(Of <<'(T>)>>)(T, String, String) | Use the specific UserAgent Connection string to create a database based storage for managing of user agent data.
UseUserAgentStore<(Of <<'(T>)>>) | Define the method for the application to use a IUserAgentsRepository via IServiceCollection

See Also

FireWallBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


FireWallBuilderExtensions Methods

The FireWallBuilderExtensions type exposes the following members.

Methods

Name | Description
AddFireWall(IServiceCollection, Uri) | Add a trial version of the firewall to a website
AddFireWall(IServiceCollection, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Add a trial version of the firewall to a website
AddFireWall(IServiceCollection, String, String, Uri) | Configure a FireWall for the web application with the settings generated in the cloud, this is generally preferred as no one can predict the settings and no attachers might be able to exploit this, even former employees. it's also an good option that can help you get started.
AddFireWall(IServiceCollection, String, String, Uri, IConfigurationSection) | Configure a FireWall for the web application using an predefined configuration
AddFireWall(IServiceCollection, String, String, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a registered instance
AddFireWall(IServiceCollection, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, String, String, Uri, IConfigurationSection) | Configure a FireWall for the web application using an predefined configuration and your own implementation of FireWallBase
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, String, String, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a custom firewall for the web application using a registered license
AddFireWallTagHelpers(IServiceCollection) | Adds the fire wall tag helpers to your razor pages.
AddFireWallTagHelpers<(Of <<'(T>)>>)(T) | Adds the fire wall tag helpers to your razor pages.
UseFireWall | Create and configure security headers middleware instance with the default policy
UseHttpStatusCodeExceptionMiddleware | Uses the HTTP status code exception middleware.
UseSecurityHeadersMiddleware(IApplicationBuilder) | Enables Always-On security headers middleware and uses the default policy if no policies have been defined
UseSecurityHeadersMiddleware(IFireWallConfigurationBuilder) | Enables Always-On security headers middleware and uses the default policy if no policies have been defined
UseUserAgentDBStore<(Of <<'(T>)>>)(T) | Use the firewall configured the default database instance to specify the storage for managing of user agent data
UseUserAgentDBStore<(Of <<'(T>)>>)(T, String, String) | Use the specific UserAgent Connection string to create a database based storage for managing of user agent data.
UseUserAgentStore<(Of <<'(T>)>>) | Define the method for the application to use a IUserAgentsRepository via IServiceCollection

See Also

FireWallBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method

FireWallBuilderExtensions..::..AddFireWall Method

Overload List

Name | Description
AddFireWall(IServiceCollection, Uri) | Add a trial version of the firewall to a website
AddFireWall(IServiceCollection, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Add a trial version of the firewall to a website
AddFireWall(IServiceCollection, String, String, Uri) | Configure a FireWall for the web application with the settings generated in the cloud, this is generally preferred as no one can predict the settings and no attachers might be able to exploit this, even former employees. it's also an good option that can help you get started.
AddFireWall(IServiceCollection, String, String, Uri, IConfigurationSection) | Configure a FireWall for the web application using an predefined configuration
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, String, String, Uri, IConfigurationSection) | Configure a FireWall for the web application using an predefined configuration and your own implementation of FireWallBase
AddFireWall(IServiceCollection, String, String, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a registered instance
AddFireWall(IServiceCollection, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection
AddFireWall<(Of <<'(T>)>>)(IServiceCollection, String, String, Uri, Action<(Of <<'(IFireWallConfig>)>>)) | Configure a custom firewall for the web application using a registered license

See Also

FireWallBuilderExtensions Class
FireWallBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method (IServiceCollection, Uri)

FireWallBuilderExtensions..::..AddFireWall Method (IServiceCollection, Uri)

Add a trial version of the firewall to a website

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall(
    IServiceCollection serviceCollection,
    Uri domainName
)

Parameters

serviceCollection
Type: IServiceCollection
service collection
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live

Return Value

service collection to continue configurations

Exceptions

Exception | Condition
[ArgumentNullException] | serviceCollection
[ArgumentNullException] | domainName

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method (IServiceCollection, Uri, Action(IFireWallConfig))

FireWallBuilderExtensions..::..AddFireWall Method (IServiceCollection, Uri, Action<(Of <(<'IFireWallConfig>)>)>)

Add a trial version of the firewall to a website

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall(
    IServiceCollection serviceCollection,
    Uri domainName,
    Action<IFireWallConfig> options
)

Parameters

serviceCollection
Type: IServiceCollection
service collection
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live
options
Type: Action<(Of <(<' IFireWallConfig >)>)>
configuration options

Return Value

service collection to continue configurations

Exceptions

Exception | Condition
[ArgumentNullException] | serviceCollection
[ArgumentNullException] | domainName

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method (IServiceCollection, String, String, Uri)

FireWallBuilderExtensions..::..AddFireWall Method (IServiceCollection, String, String, Uri)

Configure a FireWall for the web application with the settings generated in the cloud, this is generally preferred as no one can predict the settings and no attachers might be able to exploit this, even former employees. it's also an good option that can help you get started.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall(
    IServiceCollection serviceCollection,
    string license,
    string domainLicense,
    Uri domainName
)

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
license
Type: String
License from your company settings
domainLicense
Type: String
License from your domain page
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live

Return Value

configured instance of the ServiceCollection

Exceptions

Exception | Condition
[ArgumentException] | License can not be null - license
[ArgumentException] | domain key can not be null - domainLicense
[ArgumentException] | Not a valid firewall license - license
[ArgumentException] | Not a valid domain license - license
[ArgumentNullException] | domainName

Remarks

The firewall assumes that you are using memory cashing. Some configurations assume the use of session state.

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method (IServiceCollection, String, String, Uri, IConfigurationSection)

FireWallBuilderExtensions..::..AddFireWall Method (IServiceCollection, String, String, Uri, IConfigurationSection)

Configure a FireWall for the web application using an predefined configuration

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall(
    IServiceCollection serviceCollection,
    string license,
    string domainLicense,
    Uri domainName,
    IConfigurationSection section
)

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
license
Type: String
License from your company settings
domainLicense
Type: String
License from your domain page
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live
section
Type: IConfigurationSection
The configuration section in the appsettings.json file you would like to use

Return Value

configured instance of the ServiceCollection

Exceptions

Exception | Condition
[ArgumentException] | License can not be null - license
[ArgumentException] | domain key can not be null - domainLicense
[ArgumentException] | Not a valid firewall license - license
[ArgumentException] | Not a valid domain license - license
[ArgumentNullException] | domainName

Remarks

The firewall assumes that you are using memory cashing. Some configurations assume the use of session state.

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall(T) Method (IServiceCollection, String, String, Uri, IConfigurationSection)

FireWallBuilderExtensions..::..AddFireWall<(Of <(<'T>)>)> Method (IServiceCollection, String, String, Uri, IConfigurationSection)

Configure a FireWall for the web application using an predefined configuration and your own implementation of FireWallBase

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall<T>(
    IServiceCollection serviceCollection,
    string license,
    string domainLicense,
    Uri domainName,
    IConfigurationSection section
)
where T : FireWallBase, FireWallBase, FireWallBase

Type Parameters

T
a custom implementation of IFireWallBase

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
license
Type: String
License from your company settings
domainLicense
Type: String
License from your domain page
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live
section
Type: IConfigurationSection
The configuration section in the appsettings.json file you would like to use

Return Value

configured instance of the ServiceCollection

Exceptions

Exception | Condition
[ArgumentException] | License can not be null - license
[ArgumentException] | domain key can not be null - domainLicense
[ArgumentException] | Not a valid firewall license - license
[ArgumentException] | Not a valid domain license - license
[ArgumentNullException] | domainName

Remarks

The firewall assumes that you are using memory cashing. Some configurations assume the use of session state.

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method (IServiceCollection, String, String, Uri, Action(IFireWallConfig))

FireWallBuilderExtensions..::..AddFireWall Method (IServiceCollection, String, String, Uri, Action<(Of <(<'IFireWallConfig>)>)>)

Configure a FireWall for the web application using a registered instance

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall(
    IServiceCollection serviceCollection,
    string license,
    string domainLicense,
    Uri domainName,
    Action<IFireWallConfig> options
)

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
license
Type: String
License from your company settings (license is free)
domainLicense
Type: String
License from your domain page (license is free)
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live
options
Type: Action<(Of <(<' IFireWallConfig >)>)>
Options you would like to configure, provide null if you would like to use default values

Return Value

configured instance of the ServiceCollection

Exceptions

Exception | Condition
[ArgumentException] | License can not be null - license
[ArgumentException] | domain key can not be null - domainLicense
[ArgumentException] | Not a valid firewall license - license
[ArgumentException] | Not a valid domain license - license

Remarks

The firewall assumes that you are using memory cashing. Some configurations assume the use of session state.

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall Method (IServiceCollection, Action(IFireWallConfig))

FireWallBuilderExtensions..::..AddFireWall Method (IServiceCollection, Action<(Of <(<'IFireWallConfig>)>)>)

Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall(
    IServiceCollection serviceCollection,
    Action<IFireWallConfig> options
)

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
options
Type: Action<(Of <(<' IFireWallConfig >)>)>
Options you would like to configure, provide null if you would like to use default values

Return Value

configured instance of the ServiceCollection

Remarks

Configures the firewall to use a trail license and uses the options as configuration.

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall(T) Method (IServiceCollection, Action(IFireWallConfig))

FireWallBuilderExtensions..::..AddFireWall<(Of <(<'T>)>)> Method (IServiceCollection, Action<(Of <(<'IFireWallConfig>)>)>)

Configure a FireWall for the web application using a unregistered instance that will work for 60 days. Register your URL with a free-or paid license for long term protection

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall<T>(
    IServiceCollection serviceCollection,
    Action<IFireWallConfig> options
)
where T : FireWallBase, FireWallBase, FireWallBase

Type Parameters

T

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
options
Type: Action<(Of <(<' IFireWallConfig >)>)>
Options you would like to configure, provide null if you would like to use default values

Return Value

configured instance of the ServiceCollection

Remarks

Configures the firewall to use a trail license and uses the options as configuration.

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWall(T) Method (IServiceCollection, String, String, Uri, Action(IFireWallConfig))

FireWallBuilderExtensions..::..AddFireWall<(Of <(<'T>)>)> Method (IServiceCollection, String, String, Uri, Action<(Of <(<'IFireWallConfig>)>)>)

Configure a custom firewall for the web application using a registered license

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFirewallServices AddFireWall<T>(
    IServiceCollection serviceCollection,
    string license,
    string domainLicense,
    Uri domainName,
    Action<IFireWallConfig> options
)
where T : FireWallBase, FireWallBase, FireWallBase

Type Parameters

T
a custom implementation of IFireWallBase

Parameters

serviceCollection
Type: IServiceCollection
The service collection to configure
license
Type: String
License from your company settings (license is free)
domainLicense
Type: String
License from your domain page (license is free)
domainName
Type: Uri
The fully qualified domain url that you will publish to once you go live
options
Type: Action<(Of <(<' IFireWallConfig >)>)>
Options you would like to configure, provide null if you would like to use default values

Return Value

configured instance of the ServiceCollection

Exceptions

Exception | Condition
[ArgumentException] | License can not be null - license
[ArgumentException] | domain key can not be null - domainLicense
[ArgumentException] | Not a valid firewall license - license
[ArgumentException] | Not a valid domain license - license

Remarks

The firewall assumes that you are using memory cashing. Some configurations assume the use of session state.

Examples

The following sample assumes you created a custom instance named MyFireWall
C#
services.AddFireWall<MyFireWall>("Token", "Key", new Uri("https://www.site.com", UriKind.Absolute), options =>{
   //add your options here
   });

See Also

FireWallBuilderExtensions Class
AddFireWall Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWallTagHelpers Method (IServiceCollection)

FireWallBuilderExtensions..::..AddFireWallTagHelpers Method (IServiceCollection)

Adds the fire wall tag helpers to your razor pages.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IServiceCollection AddFireWallTagHelpers(
    IServiceCollection serviceCollection
)

Parameters

serviceCollection
Type: IServiceCollection
The service collection.

Return Value

IServiceCollection.

Exceptions

Exception | Condition
[ArgumentNullException] | serviceCollection

See Also

FireWallBuilderExtensions Class
AddFireWallTagHelpers Overload
Microsoft.Extensions.DependencyInjection Namespace


AddFireWallTagHelpers(T) Method (T)

FireWallBuilderExtensions..::..AddFireWallTagHelpers<(Of <(<'T>)>)> Method (T)

Adds the fire wall tag helpers to your razor pages.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static T AddFireWallTagHelpers<T>(
    T serviceCollection
)
where T : IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
The service collection.

Return Value

IServiceCollection.

Exceptions

Exception | Condition
[ArgumentNullException] | serviceCollection

See Also

FireWallBuilderExtensions Class
AddFireWallTagHelpers Overload
Microsoft.Extensions.DependencyInjection Namespace


UseFireWall Method

FireWallBuilderExtensions..::..UseFireWall Method

Create and configure security headers middleware instance with the default policy

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFireWallConfigurationBuilder UseFireWall(
    IApplicationBuilder app,
    bool enablePortScannerListners
)

Parameters

app
Type: IApplicationBuilder
the application to extend and configure
enablePortScannerListners
Type: Boolean
If true it will monitor the port before as well as after the intended ports for ports scanner attacks

Return Value

IApplicationBuilder for further configuration

Remarks

You can add additional ports by using options.Rules.HoneyPotListners.HoneyPortPorts.Add([port number]); in service configuration

See Also

FireWallBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseHttpStatusCodeExceptionMiddleware Method

FireWallBuilderExtensions..::..UseHttpStatusCodeExceptionMiddleware Method

Uses the HTTP status code exception middleware.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IApplicationBuilder UseHttpStatusCodeExceptionMiddleware(
    IApplicationBuilder app
)

Parameters

app
Type: IApplicationBuilder
The application.

Return Value

IApplicationBuilder.

Exceptions

Exception | Condition
[ArgumentNullException] | app

Examples

Using the status code exception handler to get more details on status code exceptions
change the ConfigureAppliction method in Startup.cs to include the UseHttpStatusCodeException Middleware
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
/*
Developer Exception page passes through the exception to our handler so in order
to get the best of both worlds, you want the Developer Page handler first.
In production, however, since the default Exception Page halts execution,
we definitely to not want that one first*/

app.UseHttpStatusCodeExceptionMiddleware();
}
else
{
app.UseHttpStatusCodeExceptionMiddleware();
app.UseExceptionHandler();
}

See Also

FireWallBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseSecurityHeadersMiddleware Method

FireWallBuilderExtensions..::..UseSecurityHeadersMiddleware Method

Overload List

Name | Description
UseSecurityHeadersMiddleware(IApplicationBuilder) | Enables Always-On security headers middleware and uses the default policy if no policies have been defined
UseSecurityHeadersMiddleware(IFireWallConfigurationBuilder) | Enables Always-On security headers middleware and uses the default policy if no policies have been defined

See Also

FireWallBuilderExtensions Class
FireWallBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseSecurityHeadersMiddleware Method (IApplicationBuilder)

FireWallBuilderExtensions..::..UseSecurityHeadersMiddleware Method (IApplicationBuilder)

Enables Always-On security headers middleware and uses the default policy if no policies have been defined

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static ISecurityHeadersBuilder UseSecurityHeadersMiddleware(
    IApplicationBuilder app
)

Parameters

app
Type: IApplicationBuilder
The application.

Return Value

ISecurityHeadersBuilder

Exceptions

Exception | Condition
[ArgumentNullException] | app
Walter.Web.FireWall.Configurations..::..ConfigurationsException | Firewall configuration is missing

Examples

Configure the headers during application configuration
C#
app.UseSecurityHeadersMiddleware()
   .AddDefaultSecurePolicy()
   .AddStrictTransportSecurityNoCache()
   .AddXssProtectionBlockAndReport()
   .AddContentSecurityPolicyButTrust(
   trustingSites: TrustingSites.Jquery
   | TrustingSites.Google
   , allowInline: true
   , framesPolicy: FramesPolicy.Self);

See Also

FireWallBuilderExtensions Class
UseSecurityHeadersMiddleware Overload
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.Headers..::..ISecurityHeadersBuilder


UseSecurityHeadersMiddleware Method (IFireWallConfigurationBuilder)

FireWallBuilderExtensions..::..UseSecurityHeadersMiddleware Method (IFireWallConfigurationBuilder)

Enables Always-On security headers middleware and uses the default policy if no policies have been defined

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IFireWallConfigurationBuilder UseSecurityHeadersMiddleware(
    IFireWallConfigurationBuilder bulder
)

Parameters

bulder
Type: Walter.Web.FireWall.Specialized..::..IFireWallConfigurationBuilder
The FireWall Configuration Builder.

Return Value

IFireWallConfigurationBuilder

Exceptions

Exception | Condition
[ArgumentNullException] | bulder

See Also

FireWallBuilderExtensions Class
UseSecurityHeadersMiddleware Overload
Microsoft.Extensions.DependencyInjection Namespace


UseUserAgentDBStore Method

FireWallBuilderExtensions..::..UseUserAgentDBStore Method

Overload List

Name | Description
UseUserAgentDBStore<(Of <<'(T>)>>)(T) | Use the firewall configured the default database instance to specify the storage for managing of user agent data
UseUserAgentDBStore<(Of <<'(T>)>>)(T, String, String) | Use the specific UserAgent Connection string to create a database based storage for managing of user agent data.

See Also

FireWallBuilderExtensions Class
FireWallBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseUserAgentDBStore(T) Method (T)

FireWallBuilderExtensions..::..UseUserAgentDBStore<(Of <(<'T>)>)> Method (T)

Use the firewall configured the default database instance to specify the storage for managing of user agent data

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static T UseUserAgentDBStore<T>(
    T service
)
where T : IFirewallDBServices, IFirewallServices

Type Parameters

T
the service to extend and return

Parameters

service
Type: T
The instance that is configured

Return Value

return the service instance for further configuration

Exceptions

Exception | Condition
[ArgumentNullException] | service

Remarks

This will inviolate the database settings in the configuration for user agent and direct the storage to the default database unless you set the value for IFireWallConfig.Cookies.ConnectionString

Examples

The bellow sample shows how to use a database and schema for UserAgent data deviating from the firewall storage database. Your database developers or administrators can manage the performance by altering storage and index maintenance plans accordingly.
C#
services.AddFireWall( FireWallTrial.License
, FireWallTrial.DomainKey
, domainName: new Uri("https://www.your-domain.dll", UriKind.Absolute), options =>
{
//set your options//always store user agent reputation in a database
options.UserAgent.ConnectionString = Configuration.GetConnectionString("UserAgent");
options.UserAgent.SchemaName = Configuration.GetConnectionString("dbo");
});

See Also

FireWallBuilderExtensions Class
UseUserAgentDBStore Overload
Microsoft.Extensions.DependencyInjection Namespace


UseUserAgentDBStore(T) Method (T, String, String)

FireWallBuilderExtensions..::..UseUserAgentDBStore<(Of <(<'T>)>)> Method (T, String, String)

Use the specific UserAgent Connection string to create a database based storage for managing of user agent data.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static T UseUserAgentDBStore<T>(
    T service,
    string connectionString,
    string schema
)
where T : IFirewallDBServices, IFirewallServices

Type Parameters

T
the service to extend and return

Parameters

service
Type: T
The instance that is configured
connectionString
Type: String
the connection string to use when storing UserAgent data
schema
Type: String
The schema to use for tables and procedures

Return Value

return the service instance for further configuration

Exceptions

Exception | Condition
[ArgumentNullException] | service
[ArgumentException] | '{nameof(connectionString)}' cannot be null or empty - connectionString

Remarks

This method will update the firewall configured UserAgent settings to match what you entered here

Examples

The bellow sample shows how to use a specified database and schema for UserAgent tables and procedures. Your database developers or administrators can manage the performance by altering storage and index maintenance plans accordingly.
C#
services.AddFireWall( FireWallTrial.License
, FireWallTrial.DomainKey
, domainName: new Uri("https://www.your-domain.dll", UriKind.Absolute), options =>
{
//set your options//always store user agent reputation in a database
}).UseUserAgentDBStore(connectionString:Configuration.GetConnectionString("FireWall"), schema="UserAgent");

See Also

FireWallBuilderExtensions Class
UseUserAgentDBStore Overload
Microsoft.Extensions.DependencyInjection Namespace


UseUserAgentStore(T) Method

FireWallBuilderExtensions..::..UseUserAgentStore<(Of <(<'T>)>)> Method

Define the method for the application to use a IUserAgentsRepository via IServiceCollection

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static T UseUserAgentStore<T>(
    T service
)
where T : IServiceCollection

Type Parameters

T
IServiceCollection compatible type

Parameters

service
Type: T
The instance to configure

Return Value

The type used to configure

Exceptions

Exception | Condition
[ArgumentNullException] | service

See Also

FireWallBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


FireWallDiskLoggingExtensions Class

Contains extension methods that allows you to add logging to disk for the firewall instance, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public static class FireWallDiskLoggingExtensions

Return Value

IFirewallServices

Remarks

This feature is only available in paid versions of the firewall and can be used when installing the Walter.Web.FireWall.DiskLogger NuGet package.

Examples

You can access sample PowerShell scripts by navigating to the debug\Bin\setup\PowerShell directory when you compile a web application contain the firewall NuGet package.

You can use any task scheduler including windows task scheduler to start the FileWatcher.ps1 PowerShell script that performs the file-watch and triggers ManageWindowsFireWall.ps.

We assume that you will update the PS scripts to match your path and naming conventions, the files are just provided as an aid to get you started.

C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =&gt;
       {
           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);

   }).UseDiskLogging(opt=>{
       opt.DataDirectory = @"D:\Web-FireWall\FireWall";
       opt.PowerShellOption = Walter.Web.FireWall.DiskLogger.PowerShellFilesOption.GenerateIfMissing;
       opt.Commandline = new System.Diagnostics.ProcessStartInfo(@"D:\jobs\FireWall.bat"){UseShellExecute = true};
       });

   services.AddMvc(options =&gt;
       options.Filters.Add&lt;Walter.Web.FireWall.Filters.FireWallFilter&gt;()
   );

See Also

FireWallDiskLoggingExtensions Members
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.DiskLogger..::..FireWallDiskLoggerOptions


FireWallDiskLoggingExtensions Members

Methods

Name | Description
UseDiskLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(FireWallDiskLoggerOptions>)>>)) | Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts.
UseDiskLogging<(Of <<'(T>)>>)(T) | Add logging to disk, if licensed you will have access to real-time csv files that you can use to mange the firewall using power shell scripts using App_Data as root folder.
UseDiskLogging<(Of <<'(T>)>>)(T, IConfigurationSection) | Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts

See Also

FireWallDiskLoggingExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


FireWallDiskLoggingExtensions Methods

Methods

Name | Description
UseDiskLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(FireWallDiskLoggerOptions>)>>)) | Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts.
UseDiskLogging<(Of <<'(T>)>>)(T) | Add logging to disk, if licensed you will have access to real-time csv files that you can use to mange the firewall using power shell scripts using App_Data as root folder.
UseDiskLogging<(Of <<'(T>)>>)(T, IConfigurationSection) | Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts

See Also

FireWallDiskLoggingExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseDiskLogging Method

FireWallDiskLoggingExtensions..::..UseDiskLogging Method

Overload List

Name | Description
UseDiskLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(FireWallDiskLoggerOptions>)>>)) | Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts.
UseDiskLogging<(Of <<'(T>)>>)(T) | Add logging to disk, if licensed you will have access to real-time csv files that you can use to mange the firewall using power shell scripts using App_Data as root folder.
UseDiskLogging<(Of <<'(T>)>>)(T, IConfigurationSection) | Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts

See Also

FireWallDiskLoggingExtensions Class
FireWallDiskLoggingExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseDiskLogging(T) Method (T, Action(FireWallDiskLoggerOptions))

FireWallDiskLoggingExtensions..::..UseDiskLogging<(Of <(<'T>)>)> Method (T, Action<(Of <(<'FireWallDiskLoggerOptions>)>)>)

Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public static T UseDiskLogging<T>(
    T service,
    Action<FireWallDiskLoggerOptions> options
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T
IFirewallServices

Parameters

service
Type: T
options
Type: Action<(Of <(<' FireWallDiskLoggerOptions >)>)>
options to use

Return Value

Firewall services interface to continue configuration

Examples

You can access sample PowerShell scripts by navigating to the debug\Bin\setup\PowerShell directory when you compile a web application contain the firewall NuGet package.

You can use any task scheduler including windows task scheduler to start the FileWatcher.ps1 PowerShell script that performs the file-watch and triggers ManageWindowsFireWall.ps.

We assume that you will update the PS scripts to match your path and naming conventions, the files are just provided as an aid to get you started.

C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =&gt;
       {
           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);

   }).UseDiskLogging(opt=>opt.DataDirectory = @"D:\Web-FireWall\FireWall");

   services.AddMvc(options =&gt;
       options.Filters.Add&lt;Walter.Web.FireWall.Filters.FireWallFilter&gt;()
   );

See Also

FireWallDiskLoggingExtensions Class
UseDiskLogging Overload
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.DiskLogger..::..FireWallDiskLoggerOptions


UseDiskLogging(T) Method (T)

FireWallDiskLoggingExtensions..::..UseDiskLogging<(Of <(<'T>)>)> Method (T)

Add logging to disk, if licensed you will have access to real-time csv files that you can use to mange the firewall using power shell scripts using App_Data as root folder.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public static T UseDiskLogging<T>(
    T service
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T
IFirewallServices

Parameters

service
Type: T

Return Value

Firewall services interface to continue configuration

Examples

You can access sample PowerShell scripts by navigating to the debug\Bin\setup\PowerShell directory when you compile a web application contain the firewall NuGet package.

You can use any task scheduler including windows task scheduler to start the FileWatcher.ps1 PowerShell script that performs the file-watch and triggers ManageWindowsFireWall.ps.

We assume that you will update the PS scripts to match your path and naming conventions, the files are just provided as an aid to get you started.

C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =&gt;
       {
           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);

   }).UseDiskLogging();

   services.AddMvc(options =&gt;
       options.Filters.Add&lt;Walter.Web.FireWall.Filters.FireWallFilter&gt;()
   );

See Also

FireWallDiskLoggingExtensions Class
UseDiskLogging Overload
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.DiskLogger..::..FireWallDiskLoggerOptions


UseDiskLogging(T) Method (T, IConfigurationSection)

FireWallDiskLoggingExtensions..::..UseDiskLogging<(Of <(<'T>)>)> Method (T, IConfigurationSection)

Add logging to disk, if licensed you will have access to real-time CSV files that you can use to mange the firewall using power shell scripts

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public static T UseDiskLogging<T>(
    T service,
    IConfigurationSection configuration
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
configuration
Type: IConfigurationSection
ICinfiguration section to use

Return Value

IFirewallServices

Examples

You can access sample PowerShell scripts by navigating to the debug\Bin\setup\PowerShell directory when you compile a web application contain the firewall NuGet package.

You can use any task scheduler including windows task scheduler to start the FileWatcher.ps1 PowerShell script that performs the file-watch and triggers ManageWindowsFireWall.ps.

We assume that you will update the PS scripts to match your path and naming conventions, the files are just provided as an aid to get you started.

C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =&gt;
       {
           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);

   }).UseDiskLogging(configuration:Configuration["FireWallLogging"]);

   services.AddMvc(options =&gt;
       options.Filters.Add&lt;Walter.Web.FireWall.Filters.FireWallFilter&gt;()
   );

See Also

FireWallDiskLoggingExtensions Class
UseDiskLogging Overload
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.DiskLogger..::..FireWallDiskLoggerOptions


HoneyPotServiceExtension Class

Helper class for configuring the honey-pot services

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static class HoneyPotServiceExtension

Remarks

Honey-pot services requires for you to open ports in your firewall and to forward these ports to the service so it can be monitored. We advice that you forward the original port to a user-defined port range above 5000 to not clash with the original port and use the alias mapping to translate the port mapping

See Also

HoneyPotServiceExtension Members
Microsoft.Extensions.DependencyInjection Namespace


HoneyPotServiceExtension Members

Methods

Name | Description
UsePortScannerProtection<(Of <<'(T>)>>)(T, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection without any long term storage
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, String, TimeSpan, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection
UsePortScannerProtection<(Of <<'(T>)>>)(T, IConfigurationSection) | configure the firewall to use port scanner protection without any long term storage
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, IConfigurationSection) | configure the firewall to use port scanner protection

See Also

HoneyPotServiceExtension Class
Microsoft.Extensions.DependencyInjection Namespace


HoneyPotServiceExtension Methods

Methods

Name | Description
UsePortScannerProtection<(Of <<'(T>)>>)(T, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection without any long term storage
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, String, TimeSpan, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection
UsePortScannerProtection<(Of <<'(T>)>>)(T, IConfigurationSection) | configure the firewall to use port scanner protection without any long term storage
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, IConfigurationSection) | configure the firewall to use port scanner protection

See Also

HoneyPotServiceExtension Class
Microsoft.Extensions.DependencyInjection Namespace


UsePortScannerProtection Method

HoneyPotServiceExtension..::..UsePortScannerProtection Method

Overload List

Name | Description
UsePortScannerProtection<(Of <<'(T>)>>)(T, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection without any long term storage
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, String, TimeSpan, Action<(Of <<'(HoneyPotServerListnerOption>)>>)) | configure the firewall to use port scanner protection
UsePortScannerProtection<(Of <<'(T>)>>)(T, IConfigurationSection) | configure the firewall to use port scanner protection without any long term storage
UsePortScannerProtection<(Of <<'(T>)>>)(T, String, IConfigurationSection) | configure the firewall to use port scanner protection

See Also

HoneyPotServiceExtension Class
HoneyPotServiceExtension Members
Microsoft.Extensions.DependencyInjection Namespace


UsePortScannerProtection(T) Method (T, Action(HoneyPotServerListnerOption))

HoneyPotServiceExtension..::..UsePortScannerProtection<(Of <(<'T>)>)> Method (T, Action<(Of <(<'HoneyPotServerListnerOption>)>)>)

configure the firewall to use port scanner protection without any long term storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static T UsePortScannerProtection<T>(
    T service,
    Action<HoneyPotServerListnerOption> options
)
where T : IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
the service to extend
options
Type: Action<(Of <(<' HoneyPotServerListnerOption >)>)>
the options to configure

Return Value

firewall configuration interface

Exceptions

Exception | Condition
[System.ArgumentException] | '{nameof(connectionString)}' cannot be null or empty. - connectionString

See Also

HoneyPotServiceExtension Class
UsePortScannerProtection Overload
Microsoft.Extensions.DependencyInjection Namespace


UsePortScannerProtection(T) Method (T, String, Action(HoneyPotServerListnerOption))

HoneyPotServiceExtension..::..UsePortScannerProtection<(Of <(<'T>)>)> Method (T, String, Action<(Of <(<'HoneyPotServerListnerOption>)>)>)

configure the firewall to use port scanner protection

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static T UsePortScannerProtection<T>(
    T service,
    string connectionString,
    Action<HoneyPotServerListnerOption> options
)
where T : IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
the service to extend
connectionString
Type: String
the connection string used to store the data in (SQL server compatible only)
options
Type: Action<(Of <(<' HoneyPotServerListnerOption >)>)>
the options to configure

Return Value

firewall configuration interface

Exceptions

Exception | Condition
[System.ArgumentException] | '{nameof(connectionString)}' cannot be null or empty. - connectionString

See Also

HoneyPotServiceExtension Class
UsePortScannerProtection Overload
Microsoft.Extensions.DependencyInjection Namespace


UsePortScannerProtection(T) Method (T, String, String, TimeSpan, Action(HoneyPotServerListnerOption))

HoneyPotServiceExtension..::..UsePortScannerProtection<(Of <(<'T>)>)> Method (T, String, String, TimeSpan, Action<(Of <(<'HoneyPotServerListnerOption>)>)>)

configure the firewall to use port scanner protection

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static T UsePortScannerProtection<T>(
    T service,
    string connectionString,
    string schema,
    TimeSpan retention,
    Action<HoneyPotServerListnerOption> options
)
where T : IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
the service to extend
connectionString
Type: String
the connection string used to store the data in (SQL server compatible only)
schema
Type: String
table schema for the database objects
retention
Type: TimeSpan
data retention options
options
Type: Action<(Of <(<' HoneyPotServerListnerOption >)>)>
the options to configure

Return Value

firewall configuration interface

Exceptions

Exception | Condition
[System.ArgumentException] | '{nameof(connectionString)}' cannot be null or empty. - connectionString

See Also

HoneyPotServiceExtension Class
UsePortScannerProtection Overload
Microsoft.Extensions.DependencyInjection Namespace


UsePortScannerProtection(T) Method (T, IConfigurationSection)

HoneyPotServiceExtension..::..UsePortScannerProtection<(Of <(<'T>)>)> Method (T, IConfigurationSection)

configure the firewall to use port scanner protection without any long term storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static T UsePortScannerProtection<T>(
    T service,
    IConfigurationSection configurationSection
)
where T : IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
the service to extend
configurationSection
Type: IConfigurationSection
the section in the configuration file to use when to configure

Return Value

firewall configuration interface

See Also

HoneyPotServiceExtension Class
UsePortScannerProtection Overload
Microsoft.Extensions.DependencyInjection Namespace


UsePortScannerProtection(T) Method (T, String, IConfigurationSection)

HoneyPotServiceExtension..::..UsePortScannerProtection<(Of <(<'T>)>)> Method (T, String, IConfigurationSection)

configure the firewall to use port scanner protection

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static T UsePortScannerProtection<T>(
    T service,
    string connectionString,
    IConfigurationSection configurationSection
)
where T : IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
the service to extend
connectionString
Type: String
the section in the configuration file to use when to configure
configurationSection
Type: IConfigurationSection
Represents a section of application configuration values.

Return Value

firewall configuration interface

See Also

HoneyPotServiceExtension Class
UsePortScannerProtection Overload
Microsoft.Extensions.DependencyInjection Namespace


IFirewallDBServices Interface

interface used by plug-in's to extend the firewall with database based add-ons

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFirewallDBServices : IFirewallServices

See Also

Microsoft.Extensions.DependencyInjection Namespace


IFirewallServices Interface

Provide access to the .net dependency framework for registering ASP-WAF Add-on's

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFirewallServices

See Also

IFirewallServices Members
Microsoft.Extensions.DependencyInjection Namespace


IFirewallServices Members

The IFirewallServices type exposes the following members.

Methods

 | Name | Description
Public method | AddSingleton(Type, Type) | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddSingleton<(Of <<'(T>)>>)(T) | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddSingleton<(Of <<'(T>)>>)()()()() | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddTransient(Type, Type) | Adds a transient service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddTransient<(Of <<'(T, TT>)>>)()()()() | Adds a transient service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | ReUseSingleton<(Of <<'(T, TBase>)>>) | reuse create a copy of T to re-use it as TBase
Public method | UseDatabase(String) | use a single database for firewall state as well as add-ons that use a database
Public method | UseDatabase(String, TimeSpan) | Register all database classes using their default configurations using the same connection string
Public method | UseDatabase(String, String, TimeSpan) | Register all database classes using their default configurations using the same connection string

Properties

 | Name | Description
Public property | FireWallConfig | The firewall configuration

See Also

IFirewallServices Interface
Microsoft.Extensions.DependencyInjection Namespace


IFirewallServices Methods

The IFirewallServices type exposes the following members.

Methods

 | Name | Description
Public method | AddSingleton(Type, Type) | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddSingleton<(Of <<'(T>)>>)(T) | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddSingleton<(Of <<'(T>)>>)()()()() | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddTransient(Type, Type) | Adds a transient service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddTransient<(Of <<'(T, TT>)>>)()()()() | Adds a transient service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | ReUseSingleton<(Of <<'(T, TBase>)>>) | reuse create a copy of T to re-use it as TBase
Public method | UseDatabase(String) | use a single database for firewall state as well as add-ons that use a database
Public method | UseDatabase(String, TimeSpan) | Register all database classes using their default configurations using the same connection string
Public method | UseDatabase(String, String, TimeSpan) | Register all database classes using their default configurations using the same connection string

See Also

IFirewallServices Interface
Microsoft.Extensions.DependencyInjection Namespace


AddSingleton Method

IFirewallServices..::..AddSingleton Method

Overload List

 | Name | Description
Public method | AddSingleton<(Of <<'(T>)>>)(T) | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddSingleton<(Of <<'(T>)>>)()()()() | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
Public method | AddSingleton(Type, Type) | Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.

See Also

IFirewallServices Interface
IFirewallServices Members
Microsoft.Extensions.DependencyInjection Namespace


AddSingleton(T) Method (T)

IFirewallServices..::..AddSingleton<(Of <(<'T>)>)> Method (T)

Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddSingleton<T>(
    T instance
)

Type Parameters

T
The type to create

Parameters

instance
Type: T
the instance to use

See Also

IFirewallServices Interface
AddSingleton Overload
Microsoft.Extensions.DependencyInjection Namespace


AddSingleton(T) Method

IFirewallServices..::..AddSingleton<(Of <(<'T>)>)> Method

Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddSingleton<T>()

Type Parameters

T
The type to create

See Also

IFirewallServices Interface
AddSingleton Overload
Microsoft.Extensions.DependencyInjection Namespace


AddSingleton Method (Type, Type)

IFirewallServices..::..AddSingleton Method (Type, Type)

Adds a singleton service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddSingleton(
    Type interfaceType,
    Type implementationType
)

Parameters

interfaceType
Type: Type
the interface
implementationType
Type: Type
the concrete implementing type

See Also

IFirewallServices Interface
AddSingleton Overload
Microsoft.Extensions.DependencyInjection Namespace


AddTransient Method (Type, Type)

IFirewallServices..::..AddTransient Method (Type, Type)

Adds a transient service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddTransient(
    Type interfaceType,
    Type implementationType
)

Parameters

interfaceType
Type: Type
the interface
implementationType
Type: Type
the concrete implementing type

See Also

IFirewallServices Interface
AddTransient Overload
Microsoft.Extensions.DependencyInjection Namespace


AddTransient(T, TT) Method

IFirewallServices..::..AddTransient<(Of <(<'T, TT>)>)> Method

Adds a transient service of the type specified in TService with an instance specified in implementationInstance to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddTransient<T, TT>()

Type Parameters

T
The interface type to create
TT
The concrete type to create

See Also

IFirewallServices Interface
AddTransient Overload
Microsoft.Extensions.DependencyInjection Namespace


ReUseSingleton(T, TBase) Method

IFirewallServices..::..ReUseSingleton<(Of <(<'T, TBase>)>)> Method

reuse create a copy of T to re-use it as TBase

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ReUseSingleton<T, TBase>()
where T : TBase

Type Parameters

T
The registered class that implements TBase
TBase
The class to register

See Also

IFirewallServices Interface
Microsoft.Extensions.DependencyInjection Namespace


UseDatabase Method

IFirewallServices..::..UseDatabase Method

Overload List

 | Name | Description
Public method | UseDatabase(String) | use a single database for firewall state as well as add-ons that use a database
Public method | UseDatabase(String, TimeSpan) | Register all database classes using their default configurations using the same connection string
Public method | UseDatabase(String, String, TimeSpan) | Register all database classes using their default configurations using the same connection string

See Also

IFirewallServices Interface
IFirewallServices Members
Microsoft.Extensions.DependencyInjection Namespace


UseDatabase Method (String)

IFirewallServices..::..UseDatabase Method (String)

use a single database for firewall state as well as add-ons that use a database

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallDBServices UseDatabase(
    string connectionString
)

Parameters

connectionString
Type: String
database connection string (MARS and Pooling are mandatory and will be enabled)

Return Value

Interface used to register database add-ons

Examples

Following sample show how to use the same database and schema for all state object in the firewall with a year of data
C#
services.AddFireWall( FireWallTrial.License
                    , FireWallTrial.DomainKey
                    , domainName: new Uri("https://www.your-domain.dll", UriKind.Absolute)
                    , options => {
                                    //set your options
                    }).UserDatabase( connectionString:Configuration.GetConnectionString("FireWall"));

services.AddMvc(options =>
{
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>();
    options.Filters.Add<Walter.Web.FireWall.Filters.PrivacyPreferencesFilter>();
}).AddApplicationPart(Assembly.GetAssembly(typeof(Walter.Web.FireWall.DefaultEndpoints.ReportingController)));

See Also

IFirewallServices Interface
UseDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


UseDatabase Method (String, TimeSpan)

IFirewallServices..::..UseDatabase Method (String, TimeSpan)

Register all database classes using their default configurations using the same connection string

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallDBServices UseDatabase(
    string connectionString,
    TimeSpan dataRetention
)

Parameters

connectionString
Type: String
the connection string to use for all database state factories
dataRetention
Type: TimeSpan
data retention for all stored objects

Return Value

The service configuration

Examples

Following sample show how to use the same database and schema for all state object in the firewall with a year of data
C#
services.AddFireWall( FireWallTrial.License
                    , FireWallTrial.DomainKey
                    , domainName: new Uri("https://www.your-domain.dll", UriKind.Absolute)
                    , options => {
                                    //set your options
                    }).UserDatabase( connectionString:Configuration.GetConnectionString("FireWall")
                                   , dataRetention: TimeSpan.FromDays(365));

services.AddMvc(options =>
{
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>();
    options.Filters.Add<Walter.Web.FireWall.Filters.PrivacyPreferencesFilter>();
}).AddApplicationPart(Assembly.GetAssembly(typeof(Walter.Web.FireWall.DefaultEndpoints.ReportingController)));

See Also

IFirewallServices Interface
UseDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


UseDatabase Method (String, String, TimeSpan)

IFirewallServices..::..UseDatabase Method (String, String, TimeSpan)

Register all database classes using their default configurations using the same connection string

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallDBServices UseDatabase(
    string connectionString,
    string schema,
    TimeSpan dataRetention
)

Parameters

connectionString
Type: String
the connection string to use for all database state factories
schema
Type: String
define a common table and procedure schema used by all storage objects
dataRetention
Type: TimeSpan
data retention for all stored objects

Return Value

The service configuration

Examples

Following sample show how to use the same database and schema for all state object in the firewall with a year of data
C#
services.AddFireWall( FireWallTrial.License
                    , FireWallTrial.DomainKey
                    , domainName: new Uri("https://www.your-domain.dll", UriKind.Absolute)
                    , options => {
                                    //set your options
                    }).UserDatabase( connectionString:Configuration.GetConnectionString("FireWall")
                                   , schema:"dbo"
                                   , dataRetention: TimeSpan.FromDays(365));

services.AddMvc(options =>
{
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>();
    options.Filters.Add<Walter.Web.FireWall.Filters.PrivacyPreferencesFilter>();
}).AddApplicationPart(Assembly.GetAssembly(typeof(Walter.Web.FireWall.DefaultEndpoints.ReportingController)));

See Also

IFirewallServices Interface
UseDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


IFirewallServices Properties

The IFirewallServices type exposes the following members.

Properties

 | Name | Description
Public property | FireWallConfig | The firewall configuration

See Also

IFirewallServices Interface
Microsoft.Extensions.DependencyInjection Namespace


FireWallConfig Property

IFirewallServices..::..FireWallConfig Property

The firewall configuration

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallConfig FireWallConfig { get; }

Field Value

The fire wall configuration.

See Also

IFirewallServices Interface
Microsoft.Extensions.DependencyInjection Namespace


ILoggerReportingExtensions Class

Enables the FireWall to send incidents to the ILogger interface of the application using a specific log level.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public static class ILoggerReportingExtensions

Remarks

You can specify the importance you would like to give the firewall incidents when reporting the incidents to the ILogger interface you are using. All types of incidents as well as the "expiry" info messages of these incidents will be logged with the same log level.

Examples

You find the ILogger extension method for the Walter.Waf.Web.IFirewall in NuGet package Walter.Web.FireWall.ILoggerReporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

}).UseILoggerLogging(level: Microsoft.Extensions.Logging.LogLevel.Critical);

See Also

ILoggerReportingExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


ILoggerReportingExtensions Members

Methods

Name | Description
UseILoggerLogging<(Of <<'(T>)>>)(T, LogLevel) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory
UseILoggerLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(ILogSettings>)>>)) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory
UseILoggerLogging<(Of <<'(T>)>>)(T, IConfiguration) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory

See Also

ILoggerReportingExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


ILoggerReportingExtensions Methods

Methods

Name | Description
UseILoggerLogging<(Of <<'(T>)>>)(T, LogLevel) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory
UseILoggerLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(ILogSettings>)>>)) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory
UseILoggerLogging<(Of <<'(T>)>>)(T, IConfiguration) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory

See Also

ILoggerReportingExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseILoggerLogging Method

ILoggerReportingExtensions..::..UseILoggerLogging Method

Overload List

Name | Description
UseILoggerLogging<(Of <<'(T>)>>)(T, LogLevel) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory
UseILoggerLogging<(Of <<'(T>)>>)(T, Action<(Of <<'(ILogSettings>)>>)) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory
UseILoggerLogging<(Of <<'(T>)>>)(T, IConfiguration) | Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory

See Also

ILoggerReportingExtensions Class
ILoggerReportingExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseILoggerLogging(T) Method (T, LogLevel)

ILoggerReportingExtensions..::..UseILoggerLogging<(Of <(<'T>)>)> Method (T, LogLevel)

Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public static T UseILoggerLogging<T>(
    T service,
    LogLevel level
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
firewall configuration service
level
Type: LogLevel
The logging level you would like to report the firewall incidents on

Return Value

The service for chaining the rest of the firewall services on

Examples

You find the ILogger extension method for the Walter.Waf.Web.IFirewall in NuGet package Walter.Web.FireWall.ILoggerReporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

}).UseILoggerLogging();

See Also

ILoggerReportingExtensions Class
UseILoggerLogging Overload
Microsoft.Extensions.DependencyInjection Namespace


UseILoggerLogging(T) Method (T, Action(ILogSettings))

ILoggerReportingExtensions..::..UseILoggerLogging<(Of <(<'T>)>)> Method (T, Action<(Of <(<'ILogSettings>)>)>)

Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public static T UseILoggerLogging<T>(
    T service,
    Action<ILogSettings> options
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
firewall configuration service
options
Type: Action<(Of <(<' ILogSettings >)>)>
Allows you to set the logging level as well as the namespace that you would like to report the firewall incidents on

Return Value

The service for chaining the rest of the firewall services on

Examples

You find the ILogger extension method for the Walter.Waf.Web.IFirewall in NuGet package Walter.Web.FireWall.ILoggerReporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

           }).UseILoggerLogging(options:option=> {
                      option.Level = Microsoft.Extensions.Logging.LogLevel.Critical;
                      option.NameSpace = "MyApplication.FireWall.Logger";
                  });

See Also

ILoggerReportingExtensions Class
UseILoggerLogging Overload
Microsoft.Extensions.DependencyInjection Namespace


UseILoggerLogging(T) Method (T, IConfiguration)

ILoggerReportingExtensions..::..UseILoggerLogging<(Of <(<'T>)>)> Method (T, IConfiguration)

Will generate logging information to capture IContentSecurityPolicyViolation and IFireWallViolations level violations and generate logger entries on the default ILoggerFactory

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public static T UseILoggerLogging<T>(
    T service,
    IConfiguration config
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
firewall configuration service
config
Type: IConfiguration
Allows you to set the logging level as well as the namespace that you would like to report the firewall incidents on

Return Value

The service for chaining the rest of the firewall services on

Examples

You find the ILogger extension method for the Walter.Waf.Web.IFirewall in NuGet package Walter.Web.FireWall.ILoggerReporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

           }).UseILoggerLogging(config:Configuration["FireWallLogger"]);

See Also

ILoggerReportingExtensions Class
UseILoggerLogging Overload
Microsoft.Extensions.DependencyInjection Namespace


MaxMindBuilderExtensions Class

MaxMind Extension builder helper method is used to configure the firewall's geographical awareness by using MaxMinds's data services. see MaxMind GEO implementations for the actual configuration.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static class MaxMindBuilderExtensions

Remarks

To enable MaxMind you need to download and install NuGet Package Walter.Web.FireWall.Geo.MaxMind

See Also

MaxMindBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


MaxMindBuilderExtensions Members

The MaxMindBuilderExtensions type exposes the following members.

Methods

Name | Description
AddFireWallGeoTagHelpers<(Of <<'(T>)>>) | Adds the Geographical tag helpers included in the FireWall tag helpers to your razor pages using MaxMind as a Datasource.
InjectMaxMindGeoProviderInUnitTest<(Of <<'(T>)>>) | Easy way for injecting MaxMind into a Unit test
UseGeoBlockingMiddleware<(Of <<'(T>)>>) | Configure the use of MaxMind Geography to be used in the Firewall. This method will overwrite the generic geography settings with those that will work with MaxMind.
UseGeography<(Of <<'(T>)>>)(T) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file asuming that the GeoLite2-City.mmdb and or GeoLite2-Country.mmdb are located in App_data sub folder
UseGeography<(Of <<'(T>)>>)(T, DirectoryInfo, String, String, String) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file
UseGeography<(Of <<'(T>)>>)(T, String, String) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data
UseGeographyFromResource<(Of <<'(T>)>>) | Uses the MaxMind data source for geography from embed resource.

See Also

MaxMindBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


MaxMindBuilderExtensions Methods

The MaxMindBuilderExtensions type exposes the following members.

Methods

Name | Description
AddFireWallGeoTagHelpers<(Of <<'(T>)>>) | Adds the Geographical tag helpers included in the FireWall tag helpers to your razor pages using MaxMind as a Datasource.
InjectMaxMindGeoProviderInUnitTest<(Of <<'(T>)>>) | Easy way for injecting MaxMind into a Unit test
UseGeoBlockingMiddleware<(Of <<'(T>)>>) | Configure the use of MaxMind Geography to be used in the Firewall. This method will overwrite the generic geography settings with those that will work with MaxMind.
UseGeography<(Of <<'(T>)>>)(T) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file asuming that the GeoLite2-City.mmdb and or GeoLite2-Country.mmdb are located in App_data sub folder
UseGeography<(Of <<'(T>)>>)(T, DirectoryInfo, String, String, String) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file
UseGeography<(Of <<'(T>)>>)(T, String, String) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data
UseGeographyFromResource<(Of <<'(T>)>>) | Uses the MaxMind data source for geography from embed resource.

See Also

MaxMindBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


AddFireWallGeoTagHelpers(T) Method

MaxMindBuilderExtensions..::..AddFireWallGeoTagHelpers<(Of <(<'T>)>)> Method

Adds the Geographical tag helpers included in the FireWall tag helpers to your razor pages using MaxMind as a Datasource.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T AddFireWallGeoTagHelpers<T>(
    T serviceCollection
)
where T : IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
The service collection.

Return Value

IServiceCollection.

See Also

MaxMindBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


InjectMaxMindGeoProviderInUnitTest(T) Method

MaxMindBuilderExtensions..::..InjectMaxMindGeoProviderInUnitTest<(Of <(<'T>)>)> Method

Easy way for injecting MaxMind into a Unit test

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T InjectMaxMindGeoProviderInUnitTest<T>(
    T services,
    DirectoryInfo maxMindFiles,
    IFireWallConfig firewallConfig,
    string geoCityFile,
    string geoCountry,
    string geoASN
)
where T : IServiceCollection

Type Parameters

T

Parameters

services
Type: T
the service to configure
maxMindFiles
Type: DirectoryInfo
the directory that contains the MaxMind files
firewallConfig
Type: IFireWallConfig
The firewall configuration interface to populate for use [IFireWallConfig.CreateForUnitTest()]for implementation details
geoCityFile
Type: String
Geo city file, defaults to GeoLite2-city.mmdb
geoCountry
Type: String
Geo country file, defaults to GeoLite2-Country.mmdb
geoASN
Type: String

Return Value

IServiceCollection to continue

Exceptions

Exception | Condition
[ConfigurationsException] | If the MaxMind file where not found
[ArgumentNullException] | if a required argument is not provided

Examples

The following example shows how to inject MaxMind capabilities into your unit test
C#
using Walter;
   [TestClass()]
   public class TestClassNameTests
   {

       [ClassInitialize]
       public static void ClassInitialize(TestContext context)
       {
           var conf = Web.FireWall.IFireWallConfig.CreateForUnitTest();
           var serviceProvider = new ServiceCollection();
               serviceProvider.AddMemoryCache()
               .InjectMaxMindGeoProviderInUnitTest(new System.IO.DirectoryInfo(@"D:\MaxMind"), firewallConfig:conf);
               DIContainer.ServiceProvider = serviceProvider.BuildServiceProvider();
       }
       [TestMethod()]
       public void TestMethod()
       {
           var geo = DIContainer.GetDefaultInstanceOrNull<IGeoFactory>();
       }
   }

See Also

MaxMindBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseGeoBlockingMiddleware(T) Method

MaxMindBuilderExtensions..::..UseGeoBlockingMiddleware<(Of <(<'T>)>)> Method

Configure the use of MaxMind Geography to be used in the Firewall. This method will overwrite the generic geography settings with those that will work with MaxMind.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T UseGeoBlockingMiddleware<T>(
    T conf,
    Action<GeoBlockingPolicyBuilder> option
)
where T : IFireWallConfigurationBuilder

Type Parameters

T

Parameters

conf
Type: T
The firewall configuration to use
option
Type: Action<(Of <(<'GeoBlockingPolicyBuilder>)>)>
The Geo-Options to build via the action parameter

Return Value

The firewall configurations builder

Remarks

You can use relative paths as well as fully qualified file names. At a minimum you should specify GeoData, this can be the same file as any of the other files that would have a country defined in it. See ContentType for the types of data that can be queried. when ContentType.CityData is specified the FireWall will generate IMapLocation data points in the firewall logs/emails showing the Lat/Long as well as city data to you.

Examples

The sample assumes that you have installed MaxMind nuget package and that you have registered Geography when registering the firewall with DI
Use MaxMind mmdb files and exclude some regions
services.AddFireWall("Your Token", "Domain Key"
                         , new Uri("https://www.MyDomain.com", UriKind.Absolute),  options =>{
     //your options
   }).UseGeography();//assumes that data files are in App_Data folder

   app.UseFireWall()
       .UseGeoBlockingMiddleware(options => {
        options.Block(new[]{GeoLocation.China
                           ,GeoLocation.RussianFederation});
       });

See Also

MaxMindBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.Geo..::..ContentType
[Walter.BOM.Geo.IMapLocation]


UseGeography Method

MaxMindBuilderExtensions..::..UseGeography Method

Overload List

Name | Description
UseGeography<(Of <<'(T>)>>)(T) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file asuming that the GeoLite2-City.mmdb and or GeoLite2-Country.mmdb are located in App_data sub folder
UseGeography<(Of <<'(T>)>>)(T, DirectoryInfo, String, String, String) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file
UseGeography<(Of <<'(T>)>>)(T, String, String) | Add Geographical blocking capabilities to the website's firewall using MaxMind's Data

See Also

MaxMindBuilderExtensions Class
MaxMindBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseGeography(T) Method (T)

MaxMindBuilderExtensions..::..UseGeography<(Of <(<'T>)>)> Method (T)

Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file asuming that the GeoLite2-City.mmdb and or GeoLite2-Country.mmdb are located in App_data sub folder

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T UseGeography<T>(
    T serviceCollection
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
the DI container

Return Value

IServiceCollection to continue configuration

Exceptions

Exception | Condition
[ArgumentNullException] | Directory not provided
[DirectoryNotFoundException] | Directory does not exists
[FileNotFoundException] | Directory does not contain any of the required GeoLite2-City.mmdb and or GeoLite2-Country.mmdb files

Examples

The sample assumes that you have installed MaxMind nuget package and that you have registered Geography when registering the firewall with DI
Use MaxMind mmdb files and exclude some regions
services.AddFireWall("Your Token", "Domain Key"
                         , new Uri("https://www.MyDomain.com", UriKind.Absolute),  options =>{
     //your options
   }).UseGeography();//assumes that data files are in App_Data folder

   app.UseFireWall()
       .UseGeoBlockingMiddleware(options => {
        options.Block(new[]{GeoLocation.China
                           ,GeoLocation.RussianFederation});
       });

See Also

MaxMindBuilderExtensions Class
UseGeography Overload
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.Geo..::..ContentType
[Walter.BOM.Geo.IMapLocation]


UseGeography(T) Method (T, DirectoryInfo, String, String, String)

MaxMindBuilderExtensions..::..UseGeography<(Of <(<'T>)>)> Method (T, DirectoryInfo, String, String, String)

Add Geographical blocking capabilities to the website's firewall using MaxMind's Data file

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T UseGeography<T>(
    T serviceCollection,
    DirectoryInfo directory,
    string geoCityFile,
    string geoCountry,
    string geoASN
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
the DI container
directory
Type: DirectoryInfo
directory that the GeoLite2-City.mmdb and or GeoLite2-Country.mmdb files are located
geoCityFile
Type: String
the file used for city data, the default is GeoLite2-city.mmdb
geoCountry
Type: String
the file used for country level data. the default is GeoLite2-Country.mmdb
geoASN
Type: String
ISP for IP address

Return Value

IFirewallServices to continue your configuration

Exceptions

Exception | Condition
[ArgumentNullException] | Directory not provided
[DirectoryNotFoundException] | Directory does not exists
[FileNotFoundException] | Directory does not contain any of the required GeoLite2-City.mmdb and or GeoLite2-Country.mmdb files

Examples

The sample assumes that you have installed MaxMind nuget package and that you have registered Geography when registering the firewall with DI
Use MaxMind mmdb files and exclude some regions
services.AddFireWall("Your Token", "Domain Key"
                         , new Uri("https://www.MyDomain.com", UriKind.Absolute),  options =>{
     //your options
   }).UseGeography(directory:new DirectoryInfo("d:\\MaxMind"));//assumes that data files are in d:\MaxMind folder        ///

   //Application configuration
   app.UseFireWall()
       .UseGeoBlockingMiddleware(options => {
        options.Block(new[]{GeoLocation.China
                           ,GeoLocation.RussianFederation});
       });

See Also

MaxMindBuilderExtensions Class
UseGeography Overload
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.Geo..::..ContentType
[Walter.BOM.Geo.IMapLocation]


UseGeography(T) Method (T, String, String)

MaxMindBuilderExtensions..::..UseGeography<(Of <(<'T>)>)> Method (T, String, String)

Add Geographical blocking capabilities to the website's firewall using MaxMind's Data

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T UseGeography<T>(
    T serviceCollection,
    string credentials,
    string maxMindUrl
)
where T : IFirewallServices, IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
credentials
Type: String
the user key provided by max-mind
maxMindUrl
Type: String
the MaxMindUrl

Return Value

Service collection instance to continue configuration

See Also

MaxMindBuilderExtensions Class
UseGeography Overload
Microsoft.Extensions.DependencyInjection Namespace


UseGeographyFromResource(T) Method

MaxMindBuilderExtensions..::..UseGeographyFromResource<(Of <(<'T>)>)> Method

Uses the MaxMind data source for geography from embed resource.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static T UseGeographyFromResource<T>(
    T serviceCollection
)
where T : IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
The service collection.

Return Value

T.

See Also

MaxMindBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


NativeGeoExtension Class

Class NativeGeoExtension.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.Native (in Walter.Web.FireWall.Geo.Native.dll)

Syntax

C#
public static class NativeGeoExtension

See Also

NativeGeoExtension Members
Microsoft.Extensions.DependencyInjection Namespace


NativeGeoExtension Members

The NativeGeoExtension type exposes the following members.

Methods

Name | Description
AddFireWallGeoTagHelpers<(Of <<'(T>)>>) | Adds the Geographical tag helpers included in the FireWall tag helpers to your razor pages using the Native Geographical API as a Data source.
UseNativeGeoBlockingMiddleware<(Of <<'(T>)>>) | Configure the use of MaxMind Geography to be used in the Firewall. This method will overwrite the generic geography settings with those that will work with MaxMind.
UseNativeGeoProvider<(Of <<'(T>)>>) | Uses the native geographical provider.

See Also

NativeGeoExtension Class
Microsoft.Extensions.DependencyInjection Namespace


NativeGeoExtension Methods

The NativeGeoExtension type exposes the following members.

Methods

Name | Description
AddFireWallGeoTagHelpers<(Of <<'(T>)>>) | Adds the Geographical tag helpers included in the FireWall tag helpers to your razor pages using the Native Geographical API as a Data source.
UseNativeGeoBlockingMiddleware<(Of <<'(T>)>>) | Configure the use of MaxMind Geography to be used in the Firewall. This method will overwrite the generic geography settings with those that will work with MaxMind.
UseNativeGeoProvider<(Of <<'(T>)>>) | Uses the native geographical provider.

See Also

NativeGeoExtension Class
Microsoft.Extensions.DependencyInjection Namespace


AddFireWallGeoTagHelpers(T) Method

NativeGeoExtension..::..AddFireWallGeoTagHelpers<(Of <(<'T>)>)> Method

Adds the Geographical tag helpers included in the FireWall tag helpers to your razor pages using the Native Geographical API as a Data source.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.Native (in Walter.Web.FireWall.Geo.Native.dll)

Syntax

C#
public static T AddFireWallGeoTagHelpers<T>(
    T serviceCollection
)
where T : IFirewallServices

Type Parameters

T

Parameters

serviceCollection
Type: T
The service collection.

Return Value

IServiceCollection.

See Also

NativeGeoExtension Class
Microsoft.Extensions.DependencyInjection Namespace


UseNativeGeoBlockingMiddleware(T) Method

NativeGeoExtension..::..UseNativeGeoBlockingMiddleware<(Of <(<'T>)>)> Method

Configure the use of MaxMind Geography to be used in the Firewall. This method will overwrite the generic geography settings with those that will work with MaxMind.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.Native (in Walter.Web.FireWall.Geo.Native.dll)

Syntax

C#
public static T UseNativeGeoBlockingMiddleware<T>(
    T conf,
    Action<GeoBlockingPolicyBuilder> option
)
where T : IFireWallConfigurationBuilder

Type Parameters

T

Parameters

conf
Type: T
The firewall configuration to use
option
Type: Action<(Of <(<'GeoBlockingPolicyBuilder>)>)>
The Geo-Options to build via the action parameter

Return Value

The firewall configurations builder

Remarks

You can use relative paths as well as fully qualified file names. At a minimum you should specify GeoData, this can be the same file as any of the other files that would have a country defined in it. See ContentType for the types of data that can be queried. when ContentType.CityData is specified the FireWall will generate IMapLocation data points in the firewall logs/emails showing the Lat/Long as well as city data to you.

Examples

The sample assumes that you have installed Walter.Web.FireWall.Geo.Native NuGet package and that you have registered Geography when registering the firewall with DI
Use Native GEO provider and exclude some regions
 //service configuration
 services.AddFireWall("Your Token", "Domain Key"
                      , new Uri("https://www.MyDomain.com", UriKind.Absolute),  options =>{
  //your options
 }).UseNativeGeoProvider();

//Application configuration
app.UseFireWall()
    .UseNativeGeoBlockingMiddleware(options => {
     options.Block(new[]{GeoLocation.China
                        ,GeoLocation.RussianFederation});
    });

See Also

NativeGeoExtension Class
Microsoft.Extensions.DependencyInjection Namespace
Walter.Web.FireWall.Geo..::..ContentType
[Walter.BOM.Geo.IMapLocation]


UseNativeGeoProvider(T) Method

NativeGeoExtension..::..UseNativeGeoProvider<(Of <(<'T>)>)> Method

Uses the native geographical provider.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.Geo.Native (in Walter.Web.FireWall.Geo.Native.dll)

Syntax

C#
public static T UseNativeGeoProvider<T>(
    T services
)
where T : IFirewallServices

Type Parameters

T

Parameters

services
Type: T
The services.

Return Value

IServiceCollection.

See Also

NativeGeoExtension Class
Microsoft.Extensions.DependencyInjection Namespace


ServiceCollectionExtension Class

Class ServiceCollectionExtension allowing to registered derived implementations of a already registered service to re-use the same service without having to register the same class 2x ending up with 2 instances of the same type in the same scope.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class ServiceCollectionExtension

See Also

ServiceCollectionExtension Members
Microsoft.Extensions.DependencyInjection Namespace


ServiceCollectionExtension Members

The ServiceCollectionExtension type exposes the following members.

Methods

Name | Description
AddExceptionConsole<(Of <<'(T>)>>) | Registers a exception console with the DI system
AddServiceTypeIfMissing(IServiceCollection, Type, Type) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(T>)>>)(IServiceCollection) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(T>)>>)(IServiceCollection, Object) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(TServiceType, TImplementationType>)>>)(IServiceCollection) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(TServiceType, TImplementationType>)>>)(IServiceCollection, Func<(Of <<'(IServiceProvider, TServiceType>)>>)) | Adds the service type if missing.
Exists(IServiceCollection, Type) | Look if a service type has already been registered
Exists<(Of <<'(T>)>>)(IServiceCollection) | Look if a service type has already been registered
ReUseScoped<(Of <<'(T, TBase>)>>) | Adds a scoped service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].
ReUseSingleton<(Of <<'(T, TBase>)>>) | Adds a singleton service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].
ReUseTransient<(Of <<'(T, TBase>)>>) | Adds a transient service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].
SwapServiceTypeIfExists(IServiceCollection, Type, Type, ServiceLifetime) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T>)>>)(IServiceCollection, ServiceLifetime, T) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T>)>>)(IServiceCollection, ServiceLifetime, Func<(Of <<'(T>)>>)) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T, TNewType>)>>)(IServiceCollection, ServiceLifetime) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

See Also

ServiceCollectionExtension Class
Microsoft.Extensions.DependencyInjection Namespace


ServiceCollectionExtension Methods

The ServiceCollectionExtension type exposes the following members.

Methods

Name | Description
AddExceptionConsole<(Of <<'(T>)>>) | Registers a exception console with the DI system
AddServiceTypeIfMissing(IServiceCollection, Type, Type) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(T>)>>)(IServiceCollection) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(T>)>>)(IServiceCollection, Object) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(TServiceType, TImplementationType>)>>)(IServiceCollection) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(TServiceType, TImplementationType>)>>)(IServiceCollection, Func<(Of <<'(IServiceProvider, TServiceType>)>>)) | Adds the service type if missing.
Exists(IServiceCollection, Type) | Look if a service type has already been registered
Exists<(Of <<'(T>)>>)(IServiceCollection) | Look if a service type has already been registered
ReUseScoped<(Of <<'(T, TBase>)>>) | Adds a scoped service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].
ReUseSingleton<(Of <<'(T, TBase>)>>) | Adds a singleton service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].
ReUseTransient<(Of <<'(T, TBase>)>>) | Adds a transient service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].
SwapServiceTypeIfExists(IServiceCollection, Type, Type, ServiceLifetime) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T>)>>)(IServiceCollection, ServiceLifetime, T) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T>)>>)(IServiceCollection, ServiceLifetime, Func<(Of <<'(T>)>>)) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T, TNewType>)>>)(IServiceCollection, ServiceLifetime) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

See Also

ServiceCollectionExtension Class
Microsoft.Extensions.DependencyInjection Namespace


AddExceptionConsole(T) Method

ServiceCollectionExtension..::..AddExceptionConsole<(Of <(<'T>)>)> Method

Registers a exception console with the DI system

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static T AddExceptionConsole<T>(
    T services
)
where T : IServiceCollection

Type Parameters

T

Parameters

services
Type: T

Return Value

See Also

ServiceCollectionExtension Class
Microsoft.Extensions.DependencyInjection Namespace


AddServiceTypeIfMissing Method

ServiceCollectionExtension..::..AddServiceTypeIfMissing Method

Overload List

Name | Description
AddServiceTypeIfMissing<(Of <<'(T>)>>)(IServiceCollection) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(T>)>>)(IServiceCollection, Object) | Adds the service type if missing.
AddServiceTypeIfMissing(IServiceCollection, Type, Type) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(TServiceType, TImplementationType>)>>)(IServiceCollection) | Adds the service type if missing.
AddServiceTypeIfMissing<(Of <<'(TServiceType, TImplementationType>)>>)(IServiceCollection, Func<(Of <<'(IServiceProvider, TServiceType>)>>)) | Adds the service type if missing.

See Also

ServiceCollectionExtension Class
ServiceCollectionExtension Members
Microsoft.Extensions.DependencyInjection Namespace


AddServiceTypeIfMissing(T) Method (IServiceCollection)

ServiceCollectionExtension..::..AddServiceTypeIfMissing<(Of <(<'T>)>)> Method (IServiceCollection)

Adds the service type if missing.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection AddServiceTypeIfMissing<T>(
    IServiceCollection services
)

Type Parameters

T

Parameters

services
Type: IServiceCollection
The services.

Return Value

IServiceCollection.

See Also

ServiceCollectionExtension Class
AddServiceTypeIfMissing Overload
Microsoft.Extensions.DependencyInjection Namespace


AddServiceTypeIfMissing(T) Method (IServiceCollection, Object)

ServiceCollectionExtension..::..AddServiceTypeIfMissing<(Of <(<'T>)>)> Method (IServiceCollection, Object)

Adds the service type if missing.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection AddServiceTypeIfMissing<T>(
    IServiceCollection services,
    Object implementation
)

Type Parameters

T

Parameters

services
Type: IServiceCollection
The services.
implementation
Type: Object
The implementation.

Return Value

IServiceCollection.

Exceptions

Exception | Condition
[ArgumentNullException] | implementation
[InvalidCastException] | type not compatible

See Also

ServiceCollectionExtension Class
AddServiceTypeIfMissing Overload
Microsoft.Extensions.DependencyInjection Namespace


AddServiceTypeIfMissing Method (IServiceCollection, Type, Type)

ServiceCollectionExtension..::..AddServiceTypeIfMissing Method (IServiceCollection, Type, Type)

Adds the service type if missing.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection AddServiceTypeIfMissing(
    IServiceCollection services,
    Type servciceType,
    Type implementationType
)

Parameters

services
Type: IServiceCollection
The services.
servciceType
Type: Type
Type of the service.
implementationType
Type: Type
Type of the implementation.

Return Value

IServiceCollection.

Exceptions

Exception | Condition
[InvalidCastException] |

See Also

ServiceCollectionExtension Class
AddServiceTypeIfMissing Overload
Microsoft.Extensions.DependencyInjection Namespace


AddServiceTypeIfMissing(TServiceType, TImplementationType) Method (IServiceCollection)

ServiceCollectionExtension..::..AddServiceTypeIfMissing<(Of <(<'TServiceType, TImplementationType>)>)> Method (IServiceCollection)

Adds the service type if missing.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection AddServiceTypeIfMissing<TServiceType, TImplementationType>(
    IServiceCollection services
)
where TImplementationType : TServiceType, TServiceType

Type Parameters

TServiceType
The type of the t service type.
TImplementationType
The type of the implementation type.

Parameters

services
Type: IServiceCollection
The services.

Return Value

IServiceCollection.

See Also

ServiceCollectionExtension Class
AddServiceTypeIfMissing Overload
Microsoft.Extensions.DependencyInjection Namespace


AddServiceTypeIfMissing(TServiceType, TImplementationType) Method (IServiceCollection, Func(IServiceProvider, TServiceType))

ServiceCollectionExtension..::..AddServiceTypeIfMissing<(Of <(<'TServiceType, TImplementationType>)>)> Method (IServiceCollection, Func<(Of <(<'IServiceProvider, TServiceType>)>)>)

Adds the service type if missing.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection AddServiceTypeIfMissing<TServiceType, TImplementationType>(
    IServiceCollection services,
    Func<IServiceProvider, TServiceType> implementationFactory
)
where TImplementationType : TServiceType, TServiceType

Type Parameters

TServiceType
The type of the t service type.
TImplementationType
The type of the implementation type.

Parameters

services
Type: IServiceCollection
The services.
implementationFactory
Type: Func<(Of <(<'IServiceProvider, TServiceType>)>)>
The implementation factory.

Return Value

Microsoft.Extensions.DependencyInjection.IServiceCollection.

See Also

ServiceCollectionExtension Class
AddServiceTypeIfMissing Overload
Microsoft.Extensions.DependencyInjection Namespace


Exists(T) Method (IServiceCollection)

ServiceCollectionExtension..::..Exists<(Of <(<'T>)>)> Method (IServiceCollection)

Look if a service type has already been registered

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool Exists<T>(
    IServiceCollection services
)

Type Parameters

T
the type to valuate

Parameters

services
Type: IServiceCollection
the service to valuate

Return Value

true if registered

Exceptions

Exception | Condition
[ArgumentNullException] | services

Remarks

if a compatible interface is registered this will also return true

See Also

ServiceCollectionExtension Class
Exists Overload
Microsoft.Extensions.DependencyInjection Namespace


Exists Method (IServiceCollection, Type)

ServiceCollectionExtension..::..Exists Method (IServiceCollection, Type)

Look if a service type has already been registered

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool Exists(
    IServiceCollection services,
    Type servciceType
)

Parameters

services
Type: IServiceCollection
the service to valuate
servciceType
Type: Type
the service type to find

Return Value

true if registered

Remarks

if a compatible interface is registered this will also return true. See one of the ReUseXYZ methods for implementations like

See Also

ServiceCollectionExtension Class
Exists Overload
Microsoft.Extensions.DependencyInjection Namespace
[ReUseSingleton{T, TBase}(IServiceCollection)]


ReUseScoped(T, TBase) Method

ServiceCollectionExtension..::..ReUseScoped<(Of <(<'T, TBase>)>)> Method

Adds a scoped service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection ReUseScoped<T, TBase>(
    IServiceCollection services
)
where T : TBase

Type Parameters

T
The registered type
TBase
The type that T is derived from, can be the base class or base interface.

Parameters

services
Type: IServiceCollection
The services.

Return Value

the IServiceCollection used to register the interface with.

See Also

ServiceCollectionExtension Class
Microsoft.Extensions.DependencyInjection Namespace


ReUseSingleton(T, TBase) Method

ServiceCollectionExtension..::..ReUseSingleton<(Of <(<'T, TBase>)>)> Method

Adds a singleton service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection ReUseSingleton<T, TBase>(
    IServiceCollection services
)
where T : TBase

Type Parameters

T
The registered type
TBase
The type that T is derived from, can be the base class or base interface.

Parameters

services
Type: IServiceCollection
The services.

Return Value

the IServiceCollection used to register the interface with.

See Also

ServiceCollectionExtension Class
Microsoft.Extensions.DependencyInjection Namespace


ReUseTransient(T, TBase) Method

ServiceCollectionExtension..::..ReUseTransient<(Of <(<'T, TBase>)>)> Method

Adds a transient service of the type specified in TBase with a factory based on the registered type T that has been specified in implementationFactory to the specified [Microsoft.Extensions.DependencyInjection.IServiceCollection].

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection ReUseTransient<T, TBase>(
    IServiceCollection services
)
where T : TBase

Type Parameters

T
The registered type
TBase
The type that T is derived from, can be the base class or base interface.

Parameters

services
Type: IServiceCollection
The services.

Return Value

the IServiceCollection used to register the interface with.

See Also

ServiceCollectionExtension Class
Microsoft.Extensions.DependencyInjection Namespace


SwapServiceTypeIfExists Method

ServiceCollectionExtension..::..SwapServiceTypeIfExists Method

Overload List

Name | Description
SwapServiceTypeIfExists<(Of <<'(T, TNewType>)>>)(IServiceCollection, ServiceLifetime) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T>)>>)(IServiceCollection, ServiceLifetime, T) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists<(Of <<'(T>)>>)(IServiceCollection, ServiceLifetime, Func<(Of <<'(T>)>>)) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered
SwapServiceTypeIfExists(IServiceCollection, Type, Type, ServiceLifetime) | Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

See Also

ServiceCollectionExtension Class
ServiceCollectionExtension Members
Microsoft.Extensions.DependencyInjection Namespace


SwapServiceTypeIfExists(T, TNewType) Method (IServiceCollection, ServiceLifetime)

ServiceCollectionExtension..::..SwapServiceTypeIfExists<(Of <(<'T, TNewType>)>)> Method (IServiceCollection, ServiceLifetime)

Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection SwapServiceTypeIfExists<T, TNewType>(
    IServiceCollection services,
    ServiceLifetime serviceLifetime
)
where TNewType : T

Type Parameters

T
the interface to find and or register
TNewType
the new type to register

Parameters

services
Type: IServiceCollection
serviceLifetime
Type: ServiceLifetime
the lifetime

Return Value

IServiceCollection

See Also

ServiceCollectionExtension Class
SwapServiceTypeIfExists Overload
Microsoft.Extensions.DependencyInjection Namespace


SwapServiceTypeIfExists(T) Method (IServiceCollection, ServiceLifetime, T)

ServiceCollectionExtension..::..SwapServiceTypeIfExists<(Of <(<'T>)>)> Method (IServiceCollection, ServiceLifetime, T)

Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection SwapServiceTypeIfExists<T>(
    IServiceCollection services,
    ServiceLifetime serviceLifetime,
    T implementation
)

Type Parameters

T
the interface to find and or register

Parameters

services
Type: IServiceCollection
serviceLifetime
Type: ServiceLifetime
the lifetime
implementation
Type: T
the implementation to use

Return Value

IServiceCollection

See Also

ServiceCollectionExtension Class
SwapServiceTypeIfExists Overload
Microsoft.Extensions.DependencyInjection Namespace


SwapServiceTypeIfExists(T) Method (IServiceCollection, ServiceLifetime, Func(T))

ServiceCollectionExtension..::..SwapServiceTypeIfExists<(Of <(<'T>)>)> Method (IServiceCollection, ServiceLifetime, Func<(Of <(<'T>)>)>)

Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection SwapServiceTypeIfExists<T>(
    IServiceCollection services,
    ServiceLifetime serviceLifetime,
    Func<T> implementation
)

Type Parameters

T
the interface to find and or register

Parameters

services
Type: IServiceCollection
serviceLifetime
Type: ServiceLifetime
the lifetime
implementation
Type: Func<(Of <(<'T>)>)>
the function needed to call when the instance needs to be used

Return Value

IServiceCollection

See Also

ServiceCollectionExtension Class
SwapServiceTypeIfExists Overload
Microsoft.Extensions.DependencyInjection Namespace


SwapServiceTypeIfExists Method (IServiceCollection, Type, Type, ServiceLifetime)

ServiceCollectionExtension..::..SwapServiceTypeIfExists Method (IServiceCollection, Type, Type, ServiceLifetime)

Registers the T as service type for TNewType, will replace any registered definitions if T if any are registered

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IServiceCollection SwapServiceTypeIfExists(
    IServiceCollection services,
    Type T,
    Type TNewType,
    ServiceLifetime serviceLifetime
)

Parameters

services
Type: IServiceCollection
T
Type: Type
TNewType
Type: Type
serviceLifetime
Type: ServiceLifetime

Return Value

See Also

ServiceCollectionExtension Class
SwapServiceTypeIfExists Overload
Microsoft.Extensions.DependencyInjection Namespace


SMPTLoggerBuilderExtensions Class

Extension method used to allow for an easy integration of standard SMTP email firewall reporting

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static class SMPTLoggerBuilderExtensions

See Also

SMPTLoggerBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


SMPTLoggerBuilderExtensions Members

Methods

Name | Description
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, Action<(Of <<'(EMailConfiguration>)>>)) | Use firewall email reporting support with the that buffers mails to the firewall database for long term storage
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, EMailConfiguration) | Create mail reporting interface using a fixed configuration
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, IConfiguration) | Use firewall email reporting support with the that buffers mails to database with long term storage
UseSMTPReportingDisk<(Of <<'(T>)>>)(T, Action<(Of <<'(EMailConfiguration>)>>)) | Use firewall email reporting support with the that buffers mails to disk with short term storage
UseSMTPReportingDisk<(Of <<'(T>)>>)(T, IConfiguration) | Use firewall email reporting support with the that buffers mails to disk with short term storage

See Also

SMPTLoggerBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


SMPTLoggerBuilderExtensions Methods

Methods

Name | Description
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, Action<(Of <<'(EMailConfiguration>)>>)) | Use firewall email reporting support with the that buffers mails to the firewall database for long term storage
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, EMailConfiguration) | Create mail reporting interface using a fixed configuration
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, IConfiguration) | Use firewall email reporting support with the that buffers mails to database with long term storage
UseSMTPReportingDisk<(Of <<'(T>)>>)(T, Action<(Of <<'(EMailConfiguration>)>>)) | Use firewall email reporting support with the that buffers mails to disk with short term storage
UseSMTPReportingDisk<(Of <<'(T>)>>)(T, IConfiguration) | Use firewall email reporting support with the that buffers mails to disk with short term storage

See Also

SMPTLoggerBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDatabase Method

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDatabase Method

Overload List

Name | Description
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, Action<(Of <<'(EMailConfiguration>)>>)) | Use firewall email reporting support with the that buffers mails to the firewall database for long term storage
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, EMailConfiguration) | Create mail reporting interface using a fixed configuration
UseSMTPReportingDatabase<(Of <<'(T>)>>)(T, String, IConfiguration) | Use firewall email reporting support with the that buffers mails to database with long term storage

See Also

SMPTLoggerBuilderExtensions Class
SMPTLoggerBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDatabase(T) Method (T, String, Action(EMailConfiguration))

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDatabase<(Of <(<'T>)>)> Method (T, String, Action<(Of <(<'EMailConfiguration>)>)>)

Use firewall email reporting support with the that buffers mails to the firewall database for long term storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static T UseSMTPReportingDatabase<T>(
    T service,
    string connectionString,
    Action<EMailConfiguration> options
)
where T : IFirewallServices, IServiceCollection, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
connectionString
Type: String
options
Type: Action<(Of <(<'EMailConfiguration>)>)>
The configuration

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

Sample shows use the same database as that what is used to store the firewall state
C#
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)
      .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 } ,
          });
    });
services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

See Also

SMPTLoggerBuilderExtensions Class
UseSMTPReportingDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDatabase(T) Method (T, String, EMailConfiguration)

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDatabase<(Of <(<'T>)>)> Method (T, String, EMailConfiguration)

Create mail reporting interface using a fixed configuration

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static T UseSMTPReportingDatabase<T>(
    T service,
    string connectionString,
    EMailConfiguration mailConfig
)
where T : IFirewallServices, IServiceCollection, IFirewallServices

Type Parameters

T
service collection

Parameters

service
Type: T
the service to extend
connectionString
Type: String
the database connection string to use
mailConfig
Type: EMailConfiguration
the configuration to use

Return Value

the IServiceCollection interface to chain the next configuration on

Remarks

This method is handy when you like to unit test your email system

See Also

SMPTLoggerBuilderExtensions Class
UseSMTPReportingDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDatabase(T) Method (T, String, IConfiguration)

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDatabase<(Of <(<'T>)>)> Method (T, String, IConfiguration)

Use firewall email reporting support with the that buffers mails to database with long term storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static T UseSMTPReportingDatabase<T>(
    T service,
    string connectionString,
    IConfiguration configuration
)
where T : IFirewallServices, IServiceCollection, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
service to extend
connectionString
Type: String
the database connection
configuration
Type: IConfiguration
The email configuration

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

The following sample shows how to you configure the disk based e-mail reporting with specified intervals and a archive date of 180 days
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =>
       {
         //your firewall settings

       }).UseSMTPReportingDatabase(configuration:Configuration["SMTP"]);

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
   );

See Also

SMPTLoggerBuilderExtensions Class
UseSMTPReportingDatabase Overload
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDisk Method

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDisk Method

Overload List

Name | Description
UseSMTPReportingDisk<(Of <<'(T>)>>)(T, Action<(Of <<'(EMailConfiguration>)>>)) | Use firewall email reporting support with the that buffers mails to disk with short term storage
UseSMTPReportingDisk<(Of <<'(T>)>>)(T, IConfiguration) | Use firewall email reporting support with the that buffers mails to disk with short term storage

See Also

SMPTLoggerBuilderExtensions Class
SMPTLoggerBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDisk(T) Method (T, Action(EMailConfiguration))

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDisk<(Of <(<'T>)>)> Method (T, Action<(Of <(<'EMailConfiguration>)>)>)

Use firewall email reporting support with the that buffers mails to disk with short term storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static T UseSMTPReportingDisk<T>(
    T service,
    Action<EMailConfiguration> option
)
where T : IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T
option
Type: Action<(Of <(<'EMailConfiguration>)>)>
The email configuration

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

The following sample shows how to you configure the disk based e-mail reporting with specified intervals and a archive date of 180 days
C#
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 } ,
             });
       });
   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
   );

See Also

SMPTLoggerBuilderExtensions Class
UseSMTPReportingDisk Overload
Microsoft.Extensions.DependencyInjection Namespace


UseSMTPReportingDisk(T) Method (T, IConfiguration)

SMPTLoggerBuilderExtensions..::..UseSMTPReportingDisk<(Of <(<'T>)>)> Method (T, IConfiguration)

Use firewall email reporting support with the that buffers mails to disk with short term storage

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static T UseSMTPReportingDisk<T>(
    T service,
    IConfiguration configuration
)
where T : IFirewallServices, IFirewallServices

Type Parameters

T

Parameters

service
Type: T

configuration
Type: IConfiguration
The email configuration

Return Value

IFirewallServices allowing you to configure the firewall with additional plug-ins

Examples

The following sample shows how to you configure the disk based e-mail reporting with specified intervals and a archive date of 180 days
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =>
       {
         //your firewall settings

       }).UseSMTPReportingDatabase(configuration:Configuration["SMTP"]);

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
   );

See Also

SMPTLoggerBuilderExtensions Class
UseSMTPReportingDisk Overload
Microsoft.Extensions.DependencyInjection Namespace


UserStackBuilderExtensions Class

This extension method allows you to integrate Userstack.com service into the FireWall framework.

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static class UserStackBuilderExtensions

Remarks

This service allows you to buffer the user agent data in a database or in a file based structure.

Examples

The following sample shows how to use a dedicated storage for recording and persisting User-Agent data
C#
services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
 , domainName: new Uri("https://www.your-domain.com/", UriKind.Absolute)
 , options =>
{
    //your firewall settings
}).UseUserStackDBUserAgentStore(connectionString:Configuration.GetConnectionString("UserAgents"), option => {
    option.ApiKey = "123456789";//enter your key
    option.Https = false;//set false if you use free version
});

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

UserStackBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.UserAgent.UsersStack.UserStackBuilderExtensions.AsUserStack(Walter.Web.FireWall.Browser.IUAUserAgent)]
[Walter.Web.FireWall.UserAgent.UsersStack.UserStackBuilderExtensions.TryAsUserStack(Walter.Web.FireWall.Browser.IUAUserAgent, out IUserstackUserAgent?)]


UserStackBuilderExtensions Members

The UserStackBuilderExtensions type exposes the following members.

Methods

Name | Description
UseUserStackDBUserAgentStore<(Of <<'(T>)>>)(T, Action<(Of <<'(UserStackSettings>)>>)) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent
UseUserStackDBUserAgentStore<(Of <<'(T>)>>)(T, String, Action<(Of <<'(UserStackSettings>)>>)) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent
UseUserStackUserAgentsStore<(Of <<'(T>)>>) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent]

See Also

UserStackBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UserStackBuilderExtensions Methods

The UserStackBuilderExtensions type exposes the following members.

Methods

Name | Description
UseUserStackDBUserAgentStore<(Of <<'(T>)>>)(T, Action<(Of <<'(UserStackSettings>)>>)) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent
UseUserStackDBUserAgentStore<(Of <<'(T>)>>)(T, String, Action<(Of <<'(UserStackSettings>)>>)) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent
UseUserStackUserAgentsStore<(Of <<'(T>)>>) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent]

See Also

UserStackBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseUserStackDBUserAgentStore Method

UserStackBuilderExtensions..::..UseUserStackDBUserAgentStore Method

Overload List

Name | Description
UseUserStackDBUserAgentStore<(Of <<'(T>)>>)(T, Action<(Of <<'(UserStackSettings>)>>)) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent
UseUserStackDBUserAgentStore<(Of <<'(T>)>>)(T, String, Action<(Of <<'(UserStackSettings>)>>)) | Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent

See Also

UserStackBuilderExtensions Class
UserStackBuilderExtensions Members
Microsoft.Extensions.DependencyInjection Namespace


UseUserStackDBUserAgentStore(T) Method (T, Action(UserStackSettings))

UserStackBuilderExtensions..::..UseUserStackDBUserAgentStore<(Of <(<'T>)>)> Method (T, Action<(Of <(<'UserStackSettings>)>)>)

Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static T UseUserStackDBUserAgentStore<T>(
    T service,
    Action<UserStackSettings> action
)
where T : IFirewallDBServices, IFirewallServices

Type Parameters

T
the firewall service type

Parameters

service
Type: T
the service instance
action
Type: Action<(Of <(<' UserStackSettings >)>)>
the configurations for the UserStack service

Return Value

the service type

Remarks

The service is cashed and will minimize the amount of requests send to the UserStack API.

You can use the extension method AsUserStack() to cast a [Walter.Web.FireWall.Browser.IUAUserAgent] to a IUserstackUserAgent

Examples

The following sample shows how to use the default database for persisting User-Agent data
C#
services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
   , domainName: new Uri("https://www.your-domain.com/", UriKind.Absolute)
   , options =>
   {
       //your firewall settings
   }).UseUserStackDBUserAgentStore(option => {
       option.ApiKey = "123456789";//enter your key
       option.Https = false;//set false if you use free version
   });

See Also

UserStackBuilderExtensions Class
UseUserStackDBUserAgentStore Overload
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.IFireWallConfig.UserAgent]


UseUserStackDBUserAgentStore(T) Method (T, String, Action(UserStackSettings))

UserStackBuilderExtensions..::..UseUserStackDBUserAgentStore<(Of <(<'T>)>)> Method (T, String, Action<(Of <(<'UserStackSettings>)>)>)

Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent] with the default connection string configured in FireWall Configuration for UserAgent

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static T UseUserStackDBUserAgentStore<T>(
    T service,
    string connectionString,
    Action<UserStackSettings> action
)
where T : IFirewallDBServices, IFirewallServices

Type Parameters

T
the firewall service type

Parameters

service
Type: T
the service instance
connectionString
Type: String
action
Type: Action<(Of <(<' UserStackSettings >)>)>
the configurations for the UserStack service

Return Value

the service type

Remarks

The service is cashed and will minimize the amount of requests send to the UserStack API.

You can use the extension method AsUserStack() to cast a [Walter.Web.FireWall.Browser.IUAUserAgent] to a IUserstackUserAgent

Examples

The following sample shows how to use a dedicated storage for recording and persisting User-Agent data
C#
services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
   , domainName: new Uri("https://www.your-domain.com/", UriKind.Absolute)
   , options =>
   {
       //your firewall settings
   }).UseUserStackDBUserAgentStore(connectionString:Configuration.GetConnectionString("UserAgents"), option => {
       option.ApiKey = "123456789";//enter your key
       option.Https = false;//set false if you use free version
   });

See Also

UserStackBuilderExtensions Class
UseUserStackDBUserAgentStore Overload
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.IFireWallConfig.UserAgent]


UseUserStackUserAgentsStore(T) Method

UserStackBuilderExtensions..::..UseUserStackUserAgentsStore<(Of <(<'T>)>)> Method

Use UserStack API to translate the UserAgent of a browser to a [Walter.Web.FireWall.Browser.IUAUserAgent]

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static T UseUserStackUserAgentsStore<T>(
    T service,
    Action<UserStackSettings> action
)
where T : IFirewallDBServices

Type Parameters

T
the firewall service type

Parameters

service
Type: T
the service instance
action
Type: Action<(Of <(<' UserStackSettings >)>)>
the configurations for the UserStack service

Return Value

the service type

Remarks

The service is cashed and will minimize the amount of requests send to the UserStack API.

You can use the extension method AsUserStack() to cast a [Walter.Web.FireWall.Browser.IUAUserAgent] to a IUserstackUserAgent

Examples

The following sample shows how to use the disk based storage for persisting User-Agent data
C#
services.AddFireWall(FireWallTrail.License, FireWallTrail.DomainKey
, domainName: new Uri("https://www.your-domain.com/", UriKind.Absolute)
, options =>
{
    //your firewall settings
}).UseUserStackDBUserAgentStore(option => {
    option.ApiKey = "123456789";//enter your key
    option.Https = false;//set false if you use free version
});

See Also

UserStackBuilderExtensions Class
Microsoft.Extensions.DependencyInjection Namespace
[Walter.Web.FireWall.IFireWallConfig.UserAgent]


WhoisWhoisBackGroundProcessorExtensions Class

Extension method used to make background processing available for IWois interfaces extracting ISP WHOIS data for a given IP address

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.WhoIsProcessor (in Walter.Web.FireWall.WhoIsProcessor.dll)

Syntax

C#
public static class WhoisWhoisBackGroundProcessorExtensions

Examples

The bellow sample injects and activates the WHOIS Service in the Firewall
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
                     , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
                     , options =&gt;
                     {
                        //your firewall settings
                     }).UseWhoisBackGroundProcessor();

See Also

WhoisWhoisBackGroundProcessorExtensions Members
Microsoft.Extensions.DependencyInjection Namespace
[IWhois]


WhoisWhoisBackGroundProcessorExtensions Members

The WhoisWhoisBackGroundProcessorExtensions type exposes the following members.

Methods

Name | Description
UseWhoisBackGroundProcessor<(Of <<'(T>)>>) | Indicate to the firewall that all ISP's need to be collected even for those requests that do not contain incidents

See Also

WhoisWhoisBackGroundProcessorExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


WhoisWhoisBackGroundProcessorExtensions Methods

The WhoisWhoisBackGroundProcessorExtensions type exposes the following members.

Methods

Name | Description
UseWhoisBackGroundProcessor<(Of <<'(T>)>>) | Indicate to the firewall that all ISP's need to be collected even for those requests that do not contain incidents

See Also

WhoisWhoisBackGroundProcessorExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


UseWhoisBackGroundProcessor(T) Method

WhoisWhoisBackGroundProcessorExtensions..::..UseWhoisBackGroundProcessor<(Of <(<'T>)>)> Method

Indicate to the firewall that all ISP's need to be collected even for those requests that do not contain incidents

Namespace: Microsoft.Extensions.DependencyInjection
Assembly: Walter.Web.FireWall.WhoIsProcessor (in Walter.Web.FireWall.WhoIsProcessor.dll)

Syntax

C#
public static T UseWhoisBackGroundProcessor<T>(
    T sender
)
where T : IFirewallServices

Type Parameters

T
IFirewallServices that is to be extended

Parameters

sender
Type: T
the service used for the extension

Return Value

the IFirewallServices being configured

Examples

The bellow sample injects and activates the WHOIS Service in the Firewall
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
                     , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
                     , options =&gt;
                     {
                        //your firewall settings
                     }).UseWhoisBackGroundProcessor();

See Also

WhoisWhoisBackGroundProcessorExtensions Class
Microsoft.Extensions.DependencyInjection Namespace


System Namespace

Classes

 | Class | Description
Public class | MaxMindExtensionMethods | Extension method provided by the MaxMind plug-in
Public class | NativExtensionMethods | Extension method provided by the MaxMind plug-in


MaxMindExtensionMethods Class

Extension method provided by the MaxMind plug-in

Namespace: System
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static class MaxMindExtensionMethods

See Also

MaxMindExtensionMethods Members
System Namespace


MaxMindExtensionMethods Members

The MaxMindExtensionMethods type exposes the following members.

Methods

Name | Description
TryGetGeoLocation | Will try and get country of the server hosting the URL
TryGetMapLocation | Will try and get the map location of a URL

See Also

MaxMindExtensionMethods Class
System Namespace


MaxMindExtensionMethods Methods

The MaxMindExtensionMethods type exposes the following members.

Methods

Name | Description
TryGetGeoLocation | Will try and get country of the server hosting the URL
TryGetMapLocation | Will try and get the map location of a URL

See Also

MaxMindExtensionMethods Class
System Namespace


TryGetGeoLocation Method

MaxMindExtensionMethods..::..TryGetGeoLocation Method

Will try and get country of the server hosting the URL

Namespace: System
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static bool TryGetGeoLocation(
    Uri sender,
    out GeoLocation location
)

Parameters

sender
Type: Uri
The URL you are interested in
location
Type: Walter.BOM.Geo..::..GeoLocation %
The location of the ISP

Return Value

the location of the server hosting the URL

See Also

MaxMindExtensionMethods Class
System Namespace


TryGetMapLocation Method

MaxMindExtensionMethods..::..TryGetMapLocation Method

Will try and get the map location of a URL

Namespace: System
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public static bool TryGetMapLocation(
    Uri sender,
    out Nullable<IMapLocation> location
)

Parameters

sender
Type: Uri
The URL you are interested in
location
Type: Nullable <(Of <(<'IMapLocation>)>)>%
The location of the ISP

Return Value

Map location of the server hosting the URL

See Also

MaxMindExtensionMethods Class
System Namespace


NativExtensionMethods Class

Extension method provided by the MaxMind plug-in

Namespace: System
Assembly: Walter.Web.FireWall.Geo.Native (in Walter.Web.FireWall.Geo.Native.dll)

Syntax

C#
public static class NativExtensionMethods

See Also

NativExtensionMethods Members
System Namespace


NativExtensionMethods Members

The NativExtensionMethods type exposes the following members.

Methods

Name | Description
TryGetGeoLocation | Will try and get country of the server hosting the URL

See Also

NativExtensionMethods Class
System Namespace


NativExtensionMethods Methods

The NativExtensionMethods type exposes the following members.

Methods

Name | Description
TryGetGeoLocation | Will try and get country of the server hosting the URL

See Also

NativExtensionMethods Class
System Namespace


TryGetGeoLocation Method

NativExtensionMethods..::..TryGetGeoLocation Method

Will try and get country of the server hosting the URL

Namespace: System
Assembly: Walter.Web.FireWall.Geo.Native (in Walter.Web.FireWall.Geo.Native.dll)

Syntax

C#
public static bool TryGetGeoLocation(
    Uri sender,
    out GeoLocation location
)

Parameters

sender
Type: Uri
The URL you are interested in
location
Type: Walter.BOM.Geo..::..GeoLocation %
The location of the ISP

Return Value

the location of the server hosting the URL

See Also

NativExtensionMethods Class
System Namespace


System.Text Namespace

Classes

 | Class | Description
Public class | StringExtensions | Class StringExtensions allows to work with strings and help solve some issues that the normal library doesn't solve.


StringExtensions Class

Class StringExtensions allows to work with strings and help solve some issues that the normal library doesn't solve.

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class StringExtensions

See Also

StringExtensions Members
System.Text Namespace


StringExtensions Members

The StringExtensions type exposes the following members.

Methods

Name | Description
Count(Nullable<(Of <<'(String>)>>), Char) | count how often a given character is in a string
Count(Nullable<(Of <<'(String>)>>), String, StringComparison) | count how often a given character is in a string
LineFeedToHtmlBrake | replace LineBrakes to HTML brake.
RemoveChar | Removes the specified character from a string.
Split | Splits the specified string in sections of open en closing characters.
UnGZip | Use this method to decompress a GZip web response

See Also

StringExtensions Class
System.Text Namespace


StringExtensions Methods

The StringExtensions type exposes the following members.

Methods

Name | Description
Count(Nullable<(Of <<'(String>)>>), Char) | count how often a given character is in a string
Count(Nullable<(Of <<'(String>)>>), String, StringComparison) | count how often a given character is in a string
LineFeedToHtmlBrake | replace LineBrakes to HTML brake.
RemoveChar | Removes the specified character from a string.
Split | Splits the specified string in sections of open en closing characters.
UnGZip | Use this method to decompress a GZip web response

See Also

StringExtensions Class
System.Text Namespace


Count Method

StringExtensions..::..Count Method

Overload List

Name | Description
Count(Nullable<(Of <<'(String>)>>), Char) | count how often a given character is in a string
Count(Nullable<(Of <<'(String>)>>), String, StringComparison) | count how often a given character is in a string

See Also

StringExtensions Class
StringExtensions Members
System.Text Namespace


Count Method (Nullable(String), Char)

StringExtensions..::..Count Method (Nullable<(Of <(<'String>)>)>, Char)

count how often a given character is in a string

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static int Count(
    Nullable<string> source,
    char character
)

Parameters

source
Type: Nullable <(Of <(<' String >)>)>
the source to evaluate
character
Type: Char
the character to find

Return Value

number of how often the character was found, -1 if the string is null

See Also

StringExtensions Class
Count Overload
System.Text Namespace


Count Method (Nullable(String), String, StringComparison)

StringExtensions..::..Count Method (Nullable<(Of <(<'String>)>)>, String, StringComparison)

count how often a given character is in a string

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static int Count(
    Nullable<string> source,
    string character,
    StringComparison comparison
)

Parameters

source
Type: Nullable <(Of <(<' String >)>)>
the source to evaluate
character
Type: String
the character to find
comparison
Type: StringComparison
Specifies the culture, case, and sort rules to be used by the comparer

Return Value

number of how often the character was found, -1 if the string is null

See Also

StringExtensions Class
Count Overload
System.Text Namespace


LineFeedToHtmlBrake Method

StringExtensions..::..LineFeedToHtmlBrake Method

replace LineBrakes to HTML brake.

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string LineFeedToHtmlBrake(
    string text
)

Parameters

text
Type: String
The text.

Return Value

System.String.

See Also

StringExtensions Class
System.Text Namespace


RemoveChar Method

StringExtensions..::..RemoveChar Method

Removes the specified character from a string.

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string RemoveChar(
    string text,
    char character
)

Parameters

text
Type: String
The text.
character
Type: Char
The character to remove.

Return Value

System.String.

See Also

StringExtensions Class
System.Text Namespace


Split Method

StringExtensions..::..Split Method

Splits the specified string in sections of open en closing characters.

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IReadOnlyList<string> Split(
    string text,
    char open,
    char close
)

Parameters

text
Type: String
The text.
open
Type: Char
The opening char indicating where to start to read .
close
Type: Char
The close char, indicating the part where should stop reading.

Return Value

IReadOnlyList<System.String>.

Exceptions

Exception | Condition
[System.ArgumentNullException] | text
[ArgumentNullException] | Will throw an exception if the string that needs to be split is null or empty

See Also

StringExtensions Class
System.Text Namespace


UnGZip Method

StringExtensions..::..UnGZip Method

Use this method to decompress a GZip web response

Namespace: System.Text
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string UnGZip(
    string compressed
)

Parameters

compressed
Type: String
The compressed string.

Return Value

System.String.

See Also

StringExtensions Class
System.Text Namespace


Walter Namespace

Classes

 | Class | Description
Public class | DIContainer | Static class that allows access to dependency container as well as register named instances


DIContainer Class

Static class that allows access to dependency container as well as register named instances

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class DIContainer

See Also

DIContainer Members
Walter Namespace


DIContainer Members

The DIContainer type exposes the following members.

Methods

Name | Description
Clear | clear content and dispose if instance is IDisposable
GetDefaultInstance<(Of <<'(T>)>>) | Gets the default instance.
GetDefaultInstanceOrNull<(Of <<'(T>)>>) | Gets the default instance.
GetNamedInstance<(Of <<'(T>)>>) | Gets the named instance.
SetDefaultInstance<(Of <<'(T>)>>) | Sets the named instance.
SetNamedInstance<(Of <<'(T>)>>) | Sets the named instance.
TryGetDefaultInstance<(Of <<'(T>)>>) | Try and get a default instance
TryGetNamedInstance<(Of <<'(T>)>>) | Tries the get named instance.

See Also

DIContainer Class
Walter Namespace


DIContainer Methods

The DIContainer type exposes the following members.

Methods

Name | Description
Clear | clear content and dispose if instance is IDisposable
GetDefaultInstance<(Of <<'(T>)>>) | Gets the default instance.
GetDefaultInstanceOrNull<(Of <<'(T>)>>) | Gets the default instance.
GetNamedInstance<(Of <<'(T>)>>) | Gets the named instance.
SetDefaultInstance<(Of <<'(T>)>>) | Sets the named instance.
SetNamedInstance<(Of <<'(T>)>>) | Sets the named instance.
TryGetDefaultInstance<(Of <<'(T>)>>) | Try and get a default instance
TryGetNamedInstance<(Of <<'(T>)>>) | Tries the get named instance.

See Also

DIContainer Class
Walter Namespace


Clear Method

DIContainer..::..Clear Method

clear content and dispose if instance is IDisposable

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static void Clear()

See Also

DIContainer Class
Walter Namespace


GetDefaultInstance(T) Method

DIContainer..::..GetDefaultInstance<(Of <(<'T>)>)> Method

Gets the default instance.

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static T GetDefaultInstance<T>()

Type Parameters

T

Return Value

T.

See Also

DIContainer Class
Walter Namespace


GetDefaultInstanceOrNull(T) Method

DIContainer..::..GetDefaultInstanceOrNull<(Of <(<'T>)>)> Method

Gets the default instance.

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static T GetDefaultInstanceOrNull<T>()

Type Parameters

T

Return Value

T.

See Also

DIContainer Class
Walter Namespace


GetNamedInstance(T) Method

DIContainer..::..GetNamedInstance<(Of <(<'T>)>)> Method

Gets the named instance.

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public static T GetNamedInstance<T>(
    string named
)

Type Parameters

T

Parameters

named
Type: String
The named.

Return Value

the named T

Exceptions

Exception | Condition
[ArgumentException] | If the type is not registered or the named type is of a different type

See Also

DIContainer Class
Walter Namespace


SetDefaultInstance(T) Method

DIContainer..::..SetDefaultInstance<(Of <(<'T>)>)> Method

Sets the named instance.

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static void SetDefaultInstance<T>(
    T value
)

Type Parameters

T

Parameters

value
Type: T
The value.

See Also

DIContainer Class
Walter Namespace


SetNamedInstance(T) Method

DIContainer..::..SetNamedInstance<(Of <(<'T>)>)> Method

Sets the named instance.

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static void SetNamedInstance<T>(
    string named,
    T value
)

Type Parameters

T

Parameters

named
Type: String
The named.
value
Type: T
The value.

See Also

DIContainer Class
Walter Namespace


TryGetDefaultInstance(T) Method

DIContainer..::..TryGetDefaultInstance<(Of <(<'T>)>)> Method

Try and get a default instance

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryGetDefaultInstance<T>(
    out Nullable<T> instance
)

Type Parameters

T

Parameters

instance
Type: Nullable <(Of <(<'T>)>)>%

Return Value

See Also

DIContainer Class
Walter Namespace


TryGetNamedInstance(T) Method

DIContainer..::..TryGetNamedInstance<(Of <(<'T>)>)> Method

Tries the get named instance.

Namespace: Walter
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryGetNamedInstance<T>(
    string named,
    out Nullable<T> value
)

Type Parameters

T

Parameters

named
Type: String
The named.
value
Type: Nullable <(Of <(<'T>)>)>%
The value.

Return Value

true if XXXX, false otherwise.

See Also

DIContainer Class
Walter Namespace


Walter.BOM Namespace

Classes

 | Class | Description
Public class | AbuseReportCommand | Class AbuseReportCommand used when reporting modules call Report implementation.
Public class | AssemblyNotFoundException | Class AssemblyNotFoundException. Implements the [System.Exception]
Public class | BlacklistStatusCommand | Class BlacklistStatusCommand.
Public class | BlasklistDetail | Struct BlasklistDetail
Public class | BlockedUserRequest | Class BlockedUserRequest contains the data describing a blocked user as well as the location data in it
Public class | BlockStatusState | Class BlockStatusState.
Public class | DataLossException | The DataLossException is raised when accepting the data the change would result in a data loss
Public class | DiskSecurityViolationException | Class DiskSecurityViolationException. This class cannot be inherited. Implements the [System.Exception]
Public class | EntryNotFoundException | Class EntryNotFoundException. Implements the [System.Exception]
Public class | EventRecordedEventArgs | Class triggered in a OnException event in OnExceptionRecorded()()()(). This class cannot be inherited. Implements the [System.EventArgs]
Public class | FallbackCashing<(Of <(<'T>)>)> | Class FallbackCashing is a unstable form of cashing that allows to retain non critical business objects.
Public class | FirewallBlockReasonAuditEntry | Violation stack item
Public class | GlossarayExtensions | Class GlossarayExtensions contains helper methods for reporting and allows to show reason strings in reports
Public class | HelpTopicAttribute | Class HelpTopicAttribute is used to generate links to help sections in the website. You should not use this annotation in your projects Implements the [System.Attribute]
Public class | IPAddressConverter | Class IPAddressConverter. This class cannot be inherited. Implements the [Newtonsoft.Json.JsonConverter]
Public class | LicensedDomain | Class LicensedDomain.
Public class | LicenseViolationErrorException<(Of <(<'T>)>)> | Class LicenseViolationError. Implements the [System.Exception]
Public class | LogEvents | Error codes used by the applications
Public class | NotImplementedByDesignException | Class NotImplementedByDesignException. Implements the [System.Exception]
Public class | PropertyDoesNotAllowNullException | This exception is triggered to a property that does not allow null, empty strings or blank string to work properly Implements the [System.Exception]
Public class | RecoveryData | Data structure needed to recover ciphered data with old or temporary keys
Public class | ResourceNotFoundException | Class ResourceNotFoundException. Implements the [System.Exception]
Public class | ShouldSerializeContractResolver | Json serialization settings for managing lists serialization of empty lists
Public class | SingletonException<(Of <(<'T>)>)> | Singleton violation
Public class | WorkflowReport | class used to exchange work flow data

Structures

 | Structure | Description
Public structure | AuditLog | Struct AuditLog contains the lo
Public structure | Location | A address entry that can be used by 1 or more location aware objects

Interfaces

 | Interface | Description
Public interface | IControlledDiskIO | Interface used for monitoring and exciting disk operations indicating that it is done in a safe and controlled way
Public interface | IDBConnection | Database connection interface
Public interface | IDevice | Determine type of device accessing the system
Public interface | IDeviceSignature | Interface IDeviceSignature
Public interface | IDomain | the licensed domain based for products that are domain based licensed
Public interface | IExceptionConsole | Exception and ToDo console logging missing or faulty configurations
Public interface | IExceptionConsoleData | Data in the exception console
Public interface | IExceptionItem | a given exception entry
Public interface | IKeyRingKey | Key ring entry holding a encryption key
Public interface | ILicense | License structure used by all products like firewall, mail server, identity protection and GDPR tools
Public interface | ILicensedDomain | Interface ILicensedDomain
Public interface | ILicenseKey<(Of <(<'T>)>)> | The license key storage object
Public interface | IParse<(Of <(<'T>)>)> | Implements parse
Public interface | IParse<(Of <(<'T1, T2>)>)> | Interface IParse Implements the IParse<(Of <(<'T>)>)>
Public interface | IPopulate<(Of <(<'T>)>)> | Interface IPopulate
Public interface | IRepositoryStorageLocation | Interface used to instrument storage location of a given repository data source
Public interface | IToDoItem | A to-do item for those hosting the firewall
Public interface | ITryParse<(Of <(<'T>)>)> | Implements try parse
Public interface | IUserScreen | Users screen definition. this is helpful to identify user displays and also mostly not implemented by bots. if a given screen does not make sense the system will generate a IsBOT flag.

Enumerations

 | Enumeration | Description
Public enumeration | AbuseReportCommand..::..DataPayloads | Enum DataPayloads
Public enumeration | AbuseReportCommand..::..Filter | Enum Filter
Public enumeration | AbuseWorkflows | Enum AbuseWorkflows
Public enumeration | BlacklistLevelHoneyPotPortAccessLevel | Enum Set the level of blacklisting when a honey-pot port is being accessed
Public enumeration | BlaklistSource | Enum BlaklistSource
Public enumeration | ContentTypes | Type of data
Public enumeration | CookieName | Enumerator for names of the cookies used by the system. You should set your own name so that your site can't be identified as being protected by this particular firewall
Public enumeration | FeaturesDataSource | Enum FeaturesDataSource indicates what features are using the database
Public enumeration | FirewallAllowReasons | Reason why the item is white listed
Public enumeration | FirewallBlockReasons | The firewall Block Reason for a given violation
Public enumeration | FireWallContexts | A value stating the context (reason(s)) of the blocking for the firewall
Public enumeration | FireWallReportContentFeatures | Enum FireWallReportFeatures
Public enumeration | FireWallReportType | Enum FireWallReportType
Public enumeration | GuardResponse | Enum GuardResponse indicates how the firewall will communicate the incident back to the user
Public enumeration | HeaderName | Header names used by the firewall
Public enumeration | IncidentAssertType | Incident type
Public enumeration | InterceptLocations | Enum InterceptLocations describes where a interception is taking place
Public enumeration | KnownIntentions | Enum KnownBotIntentions
Public enumeration | LicenseStatus | the license status
Public enumeration | LinkType | Enum LinkType shows the type of resource that is referenced
Public enumeration | ManagementTypes | Enum ManagementType
Public enumeration | RecoveryType | Type of data being recovered
Public enumeration | ResponceExpected | Enum ResponceExpected
Public enumeration | ScreenOrientations | The Screen Orientation provides information about the current orientation of the document.
Public enumeration | SearchEngine | Identified bots that are indexing the Internet for human search or other reasons like when looking for copyright content
Public enumeration | StorageLocations | Types of storage location to use
Public enumeration | TcpPortAlias | Named ports that are frequently attacked using the port name in a way that they are easily identified by service [Name]_[Port] naming standard


AbuseReportCommand Class

Class AbuseReportCommand used when reporting modules call Report implementation.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class AbuseReportCommand

See Also

AbuseReportCommand Members
Walter.BOM Namespace


AbuseReportCommand Members

The AbuseReportCommand type exposes the following members.

Constructors

 | Name | Description
Public method | AbuseReportCommand()()()() | Initializes a new instance of the AbuseReportCommand class.
Public method | AbuseReportCommand(AbuseReportCommand..::..Filter, Int64) | Initializes a new instance of the AbuseReportCommand class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | generates a equals compare
Public method | Equals(Nullable<(Of <<'(AbuseReportCommand>)>>)) | generates a equals compare
Public method | GetHashCode | get the hash-code

Properties

 | Name | Description
Public property | BreadCrumbs | Gets or sets a value indicating whether [bread crumbs].
Public property | DataSource | Gets data source filter.
Public property | From | Gets or sets from.
Public property | Payload | Gets or sets the payload.
Public property | PortBasedAttacks | Gets or sets a value indicating whether [port based attacks].
Public property | Till | Gets or sets the till date to scope the data.
Public property | Value | Gets or sets the value date to scope the data.
Public property | WebRequests | Gets or sets a value indicating whether [web requests].

Events

 | Name | Description
Public event | PropertyChanged | Occurs when a property value changes.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


AbuseReportCommand Constructor

Overload List

 | Name | Description
Public method | AbuseReportCommand()()()() | Initializes a new instance of the AbuseReportCommand class.
Public method | AbuseReportCommand(AbuseReportCommand..::..Filter, Int64) | Initializes a new instance of the AbuseReportCommand class.

See Also

AbuseReportCommand Class
AbuseReportCommand Members
Walter.BOM Namespace


AbuseReportCommand Constructor

Initializes a new instance of the AbuseReportCommand class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public AbuseReportCommand()

See Also

AbuseReportCommand Class
AbuseReportCommand Overload
Walter.BOM Namespace


AbuseReportCommand Constructor (Filter, Int64)

Initializes a new instance of the AbuseReportCommand class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public AbuseReportCommand(
    AbuseReportCommand..::..Filter dataSource,
    long value
)

Parameters

dataSource
Type: Walter.BOM..::..AbuseReportCommand..::..Filter
The data source.
value
Type: Int64
The value.

See Also

AbuseReportCommand Class
AbuseReportCommand Overload
Walter.BOM Namespace


AbuseReportCommand Methods

The AbuseReportCommand type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | generates a equals compare
Public method | Equals(Nullable<(Of <<'(AbuseReportCommand>)>>)) | generates a equals compare
Public method | GetHashCode | get the hash-code

See Also

AbuseReportCommand Class
Walter.BOM Namespace


Equals Method

AbuseReportCommand..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | generates a equals compare
Public method | Equals(Nullable<(Of <<'(AbuseReportCommand>)>>)) | generates a equals compare

See Also

AbuseReportCommand Class
AbuseReportCommand Members
Walter.BOM Namespace


Equals Method (Nullable(Object))

AbuseReportCommand..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

generates a equals compare

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>

Return Value

See Also

AbuseReportCommand Class
Equals Overload
Walter.BOM Namespace


Equals Method (Nullable(AbuseReportCommand))

AbuseReportCommand..::..Equals Method (Nullable<(Of <(<'AbuseReportCommand>)>)>)

generates a equals compare

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<AbuseReportCommand> other
)

Parameters

other
Type: Nullable <(Of <(<' AbuseReportCommand >)>)>

Return Value

See Also

AbuseReportCommand Class
Equals Overload
Walter.BOM Namespace


GetHashCode Method

AbuseReportCommand..::..GetHashCode Method

get the hash-code

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int GetHashCode()

Return Value

int code

See Also

AbuseReportCommand Class
Walter.BOM Namespace


AbuseReportCommand Properties

The AbuseReportCommand type exposes the following members.

Properties

 | Name | Description
Public property | BreadCrumbs | Gets or sets a value indicating whether [bread crumbs].
Public property | DataSource | Gets data source filter.
Public property | From | Gets or sets from.
Public property | Payload | Gets or sets the payload.
Public property | PortBasedAttacks | Gets or sets a value indicating whether [port based attacks].
Public property | Till | Gets or sets the till date to scope the data.
Public property | Value | Gets or sets the value date to scope the data.
Public property | WebRequests | Gets or sets a value indicating whether [web requests].

See Also

AbuseReportCommand Class
Walter.BOM Namespace


BreadCrumbs Property

AbuseReportCommand..::..BreadCrumbs Property

Gets or sets a value indicating whether [bread crumbs].

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool BreadCrumbs { get; set; }

Field Value

true if [bread crumbs]; otherwise, false.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


DataSource Property

AbuseReportCommand..::..DataSource Property

Gets data source filter.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public AbuseReportCommand..::..Filter DataSource { get; set; }

Field Value

The filter.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


From Property

AbuseReportCommand..::..From Property

Gets or sets from.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public virtual DateTime From { get; set; }

Field Value

From.

Remarks

You can override these properties to allow date range validation

See Also

AbuseReportCommand Class
Walter.BOM Namespace


Payload Property

AbuseReportCommand..::..Payload Property

Gets or sets the payload.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public AbuseReportCommand..::..DataPayloads Payload { get; set; }

Field Value

The payload.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


PortBasedAttacks Property

AbuseReportCommand..::..PortBasedAttacks Property

Gets or sets a value indicating whether [port based attacks].

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool PortBasedAttacks { get; set; }

Field Value

true if [port based attacks]; otherwise, false.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


Till Property

AbuseReportCommand..::..Till Property

Gets or sets the till date to scope the data.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public virtual DateTime Till { get; set; }

Field Value

The till.

Remarks

You can override these properties to allow date range validation

See Also

AbuseReportCommand Class
Walter.BOM Namespace


Value Property

AbuseReportCommand..::..Value Property

Gets or sets the value date to scope the data.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<long> Value { get; set; }

Field Value

The value.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


WebRequests Property

AbuseReportCommand..::..WebRequests Property

Gets or sets a value indicating whether [web requests].

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool WebRequests { get; set; }

Field Value

true if [web requests]; otherwise, false.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


AbuseReportCommand Events

The AbuseReportCommand type exposes the following members.

Events

 | Name | Description
Public event | PropertyChanged | Occurs when a property value changes.

See Also

AbuseReportCommand Class
Walter.BOM Namespace


PropertyChanged Event

AbuseReportCommand..::..PropertyChanged Event

Occurs when a property value changes.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public event Nullable<PropertyChangedEventHandler> PropertyChanged

Return Value

See Also

AbuseReportCommand Class
Walter.BOM Namespace


AbuseReportCommand.DataPayloads Enumeration

AbuseReportCommand..::..DataPayloads Enumeration

Enum DataPayloads

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum DataPayloads

Members

Member name | Description
None | The none
WebRequests | The web requests
BreadCrumbs | The bread crumbs
PortBasedAttacks | The port based attacks
Talking | The talking violations
ALL | All data objects

See Also

Walter.BOM Namespace


AbuseReportCommand.Filter Enumeration

AbuseReportCommand..::..Filter Enumeration

Enum Filter

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum Filter

Members

Member name | Description
ISPRangeId | The isp range identifier
IPAddress | The ip address
ISP_CIDR | The isp cidr
FireWallUser | The fire wall user

See Also

Walter.BOM Namespace


AbuseWorkflows Enumeration

Enum AbuseWorkflows

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum AbuseWorkflows

Members

Member name | Description
None | The none
Generated | The generated
Send | The send
Replied | The replied
InformedLegal | The informed legal
InformedAuthorities | The informed authorities

See Also

Walter.BOM Namespace


AssemblyNotFoundException Class

Class AssemblyNotFoundException. Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class AssemblyNotFoundException

See Also

AssemblyNotFoundException Members
Walter.BOM Namespace
[System.Exception]


AssemblyNotFoundException Members

The AssemblyNotFoundException type exposes the following members.

Constructors

 | Name | Description
Public method | AssemblyNotFoundException(String) | Initializes a new instance of the AssemblyNotFoundException class.

See Also

AssemblyNotFoundException Class
Walter.BOM Namespace


AssemblyNotFoundException Constructor (String)

Initializes a new instance of the AssemblyNotFoundException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public AssemblyNotFoundException(
    string message
)

Parameters

message
Type: String
The message that describes the error.

See Also

AssemblyNotFoundException Class
#ctor Overload
Walter.BOM Namespace


AuditLog Structure

Struct AuditLog contains the lo

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public struct AuditLog

See Also

AuditLog Members
Walter.BOM Namespace


AuditLog Members

The AuditLog type exposes the following members.

Constructors

 | Name | Description
Public method | AuditLog | Initializes a new instance of the AuditLog struct.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(AuditLog) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | ChangeNr | the change number
Public property | ChangeType | Gets the type of the change.
Public property | FullPath | Gets the full path.
Public property | Name | Gets the name.
Public property | RecordedUTC | Gets the recorded UTC.
Public property | Suspicions | indicate the entry was flagged as being suspicions

See Also

AuditLog Structure
Walter.BOM Namespace


AuditLog Constructor

Initializes a new instance of the AuditLog struct.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public AuditLog(
    FileSystemEventArgs args,
    int changeNr,
    bool suspicious
)

Parameters

args
Type: FileSystemEventArgs
The [System.IO.FileSystemEventArgs] instance containing the event data.
changeNr
Type: Int32
the change nr as how it was recorded
suspicious
Type: Boolean
indicate if the change was flagged suspicious

See Also

AuditLog Structure
Walter.BOM Namespace


AuditLog Methods

The AuditLog type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(AuditLog) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

AuditLog Structure
Walter.BOM Namespace


Equals Method

AuditLog..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(AuditLog) | Indicates whether the current object is equal to another object of the same type.

See Also

AuditLog Structure
AuditLog Members
Walter.BOM Namespace


Equals Method (Nullable(Object))

AuditLog..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

AuditLog Structure
Equals Overload
Walter.BOM Namespace


Equals Method (AuditLog)

AuditLog..::..Equals Method (AuditLog)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    AuditLog other
)

Parameters

other
Type: Walter.BOM..::..AuditLog
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

AuditLog Structure
Equals Overload
Walter.BOM Namespace


GetHashCode Method

AuditLog..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

AuditLog Structure
Walter.BOM Namespace


ToString Method

AuditLog..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

AuditLog Structure
Walter.BOM Namespace


AuditLog Operators

The AuditLog type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

AuditLog Structure
Walter.BOM Namespace


Equality Operator

AuditLog..::..Equality Operator

Implements the == operator.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool operator ==(
    AuditLog left,
    AuditLog right
)

Parameters

left
Type: Walter.BOM..::..AuditLog
The left.
right
Type: Walter.BOM..::..AuditLog
The right.

Return Value

The result of the operator.

See Also

AuditLog Structure
Walter.BOM Namespace


Inequality Operator

AuditLog..::..Inequality Operator

Implements the != operator.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool operator !=(
    AuditLog left,
    AuditLog right
)

Parameters

left
Type: Walter.BOM..::..AuditLog
The left.
right
Type: Walter.BOM..::..AuditLog
The right.

Return Value

The result of the operator.

See Also

AuditLog Structure
Walter.BOM Namespace


AuditLog Properties

The AuditLog type exposes the following members.

Properties

 | Name | Description
Public property | ChangeNr | the change number
Public property | ChangeType | Gets the type of the change.
Public property | FullPath | Gets the full path.
Public property | Name | Gets the name.
Public property | RecordedUTC | Gets the recorded UTC.
Public property | Suspicions | indicate the entry was flagged as being suspicions

See Also

AuditLog Structure
Walter.BOM Namespace


ChangeNr Property

AuditLog..::..ChangeNr Property

the change number

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int ChangeNr { get; }

See Also

AuditLog Structure
Walter.BOM Namespace


ChangeType Property

AuditLog..::..ChangeType Property

Gets the type of the change.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public WatcherChangeTypes ChangeType { get; }

Field Value

The type of the change.

See Also

AuditLog Structure
Walter.BOM Namespace


FullPath Property

AuditLog..::..FullPath Property

Gets the full path.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string FullPath { get; }

Field Value

The full path.

See Also

AuditLog Structure
Walter.BOM Namespace


Name Property

AuditLog..::..Name Property

Gets the name.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string Name { get; }

Field Value

The name.

See Also

AuditLog Structure
Walter.BOM Namespace


RecordedUTC Property

AuditLog..::..RecordedUTC Property

Gets the recorded UTC.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DateTime RecordedUTC { get; }

Field Value

The recorded UTC.

See Also

AuditLog Structure
Walter.BOM Namespace


Suspicions Property

AuditLog..::..Suspicions Property

indicate the entry was flagged as being suspicions

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Suspicions { get; }

See Also

AuditLog Structure
Walter.BOM Namespace


BlacklistLevelHoneyPotPortAccessLevel Enumeration

Enum Set the level of blacklisting when a honey-pot port is being accessed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum BlacklistLevelHoneyPotPortAccessLevel

Members

Member name | Description
None | The none
FireWallUser | The fire wall user will be blocked
IPAddress | The IP address will be blocked
InterNetServiceProvider | The inter net service provider will be blocked

See Also

Walter.BOM Namespace


BlacklistStatusCommand Class

Class BlacklistStatusCommand.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class BlacklistStatusCommand

See Also

BlacklistStatusCommand Members
Walter.BOM Namespace


BlacklistStatusCommand Members

The BlacklistStatusCommand type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the cidr.
Public property | ISPCidr | Gets or sets the isp cidr.
Public property | Location | Gets or sets the location.
Public property | UserId | Gets or sets the user identifier.

See Also

BlacklistStatusCommand Class
Walter.BOM Namespace


BlacklistStatusCommand Properties

The BlacklistStatusCommand type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the cidr.
Public property | ISPCidr | Gets or sets the isp cidr.
Public property | Location | Gets or sets the location.
Public property | UserId | Gets or sets the user identifier.

See Also

BlacklistStatusCommand Class
Walter.BOM Namespace


CIDR Property

BlacklistStatusCommand..::..CIDR Property

Gets or sets the cidr.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long CIDR { get; set; }

Field Value

The cidr.

See Also

BlacklistStatusCommand Class
Walter.BOM Namespace


ISPCidr Property

BlacklistStatusCommand..::..ISPCidr Property

Gets or sets the isp cidr.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long ISPCidr { get; set; }

Field Value

The isp cidr.

See Also

BlacklistStatusCommand Class
Walter.BOM Namespace


Location Property

BlacklistStatusCommand..::..Location Property

Gets or sets the location.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public GeoLocation Location { get; set; }

Field Value

The location.

See Also

BlacklistStatusCommand Class
Walter.BOM Namespace


UserId Property

BlacklistStatusCommand..::..UserId Property

Gets or sets the user identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long UserId { get; set; }

Field Value

The user identifier.

See Also

BlacklistStatusCommand Class
Walter.BOM Namespace


BlaklistSource Enumeration

Enum BlaklistSource

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum BlaklistSource

Members

Member name | Description
None | Not set
FireWallRule | The fire wall rule
HoneyPot | The honey pot
NetApi | The net API
ManagementDashboard | The management dashboard

See Also

Walter.BOM Namespace


BlasklistDetail Class

Struct BlasklistDetail

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class BlasklistDetail

See Also

BlasklistDetail Members
Walter.BOM Namespace


BlasklistDetail Members

The BlasklistDetail type exposes the following members.

Properties

 | Name | Description
Public property | Created | Gets or sets the created.
Public property | Expires | Gets or sets the expires.
Public property | Source | Gets or sets the source.

See Also

BlasklistDetail Class
Walter.BOM Namespace


BlasklistDetail Properties

The BlasklistDetail type exposes the following members.

Properties

 | Name | Description
Public property | Created | Gets or sets the created.
Public property | Expires | Gets or sets the expires.
Public property | Source | Gets or sets the source.

See Also

BlasklistDetail Class
Walter.BOM Namespace


Created Property

BlasklistDetail..::..Created Property

Gets or sets the created.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long Created { get; set; }

Field Value

The created.

See Also

BlasklistDetail Class
Walter.BOM Namespace


Expires Property

BlasklistDetail..::..Expires Property

Gets or sets the expires.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long Expires { get; set; }

Field Value

The expires.

See Also

BlasklistDetail Class
Walter.BOM Namespace


Source Property

BlasklistDetail..::..Source Property

Gets or sets the source.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public BlaklistSource Source { get; set; }

Field Value

The source.

See Also

BlasklistDetail Class
Walter.BOM Namespace


BlockedUserRequest Class

Class BlockedUserRequest contains the data describing a blocked user as well as the location data in it

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class BlockedUserRequest

Remarks

Location as well as Identifying data is generated by the library that generated the instance. This Could be

  • the IFireWall interface in NuGet package Walter.Web.Firewall or;
  • the applications Look-WhoIs-Talking or;
  • the application Walter.Net.Mail

See Also

BlockedUserRequest Members
Walter.BOM Namespace


BlockedUserRequest Members

The BlockedUserRequest type exposes the following members.

Constructors

 | Name | Description
Public method | BlockedUserRequest | Create a blocked user request

Methods

 | Name | Description
Public method | ToString | Returns a string with a small decryption containing IP and Url blocked as well as the firewall's user id assigned to the user

Properties

 | Name | Description
Public property | Address | Gets or sets the address the user was connected with.
Public property | BlockedUri | Gets or sets the URI that was blocked for the user.
Public property | CIRD | The CIRD of the Ip Address
Public property | DnsDomain | The DNS Domain of the IP address
Public property | DnsName | The DNS Name of the IP address
Public property | FireWallUserId | Gets or sets the FireWallUserId identifier.
Public property | IncludedIn | Request belongs to request (may be null)
Public property | IspContact | If licensed will contain the Internet Service provider's name and contact details
Public property | Location | The country if a Geographical country or city level provider was registered
Public property | MapLocation | The map location if Geographical City level provider was registered
Public property | RefferedBy | Came from called by (may be null)
Public property | UserLoggedIn | Gets or sets a value indicating whether [user logged in].

See Also

BlockedUserRequest Class
Walter.BOM Namespace


BlockedUserRequest Constructor

Create a blocked user request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public BlockedUserRequest(
    Uri blockedUri
)

Parameters

blockedUri
Type: Uri

See Also

BlockedUserRequest Class
Walter.BOM Namespace


BlockedUserRequest Methods

The BlockedUserRequest type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a string with a small decryption containing IP and Url blocked as well as the firewall's user id assigned to the user

See Also

BlockedUserRequest Class
Walter.BOM Namespace


ToString Method

BlockedUserRequest..::..ToString Method

Returns a string with a small decryption containing IP and Url blocked as well as the firewall's user id assigned to the user

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string ToString()

Return Value

string formated "FireWall User:{FireWallUserId} using IP {Address} was blocked from accessing {BlockedUri.AbsolutePath}"

See Also

BlockedUserRequest Class
Walter.BOM Namespace


BlockedUserRequest Properties

The BlockedUserRequest type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address the user was connected with.
Public property | BlockedUri | Gets or sets the URI that was blocked for the user.
Public property | CIRD | The CIRD of the Ip Address
Public property | DnsDomain | The DNS Domain of the IP address
Public property | DnsName | The DNS Name of the IP address
Public property | FireWallUserId | Gets or sets the FireWallUserId identifier.
Public property | IncludedIn | Request belongs to request (may be null)
Public property | IspContact | If licensed will contain the Internet Service provider's name and contact details
Public property | Location | The country if a Geographical country or city level provider was registered
Public property | MapLocation | The map location if Geographical City level provider was registered
Public property | RefferedBy | Came from called by (may be null)
Public property | UserLoggedIn | Gets or sets a value indicating whether [user logged in].

See Also

BlockedUserRequest Class
Walter.BOM Namespace


Address Property

BlockedUserRequest..::..Address Property

Gets or sets the address the user was connected with.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Address { get; set; }

Field Value

The address.

See Also

BlockedUserRequest Class
Walter.BOM Namespace


BlockedUri Property

BlockedUserRequest..::..BlockedUri Property

Gets or sets the URI that was blocked for the user.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Uri BlockedUri { get; set; }

Field Value

The blocked URI.

See Also

BlockedUserRequest Class
Walter.BOM Namespace


CIRD Property

BlockedUserRequest..::..CIRD Property

The CIRD of the Ip Address

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long CIRD { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


DnsDomain Property

BlockedUserRequest..::..DnsDomain Property

The DNS Domain of the IP address

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string DnsDomain { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


DnsName Property

BlockedUserRequest..::..DnsName Property

The DNS Name of the IP address

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string DnsName { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


FireWallUserId Property

BlockedUserRequest..::..FireWallUserId Property

Gets or sets the FireWallUserId identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public long FireWallUserId { get; set; }

Field Value

The user identifier.

See Also

BlockedUserRequest Class
Walter.BOM Namespace


IncludedIn Property

BlockedUserRequest..::..IncludedIn Property

Request belongs to request (may be null)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[MaybeNullAttribute]
public Uri IncludedIn { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


IspContact Property

BlockedUserRequest..::..IspContact Property

If licensed will contain the Internet Service provider's name and contact details

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string IspContact { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


Location Property

BlockedUserRequest..::..Location Property

The country if a Geographical country or city level provider was registered

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<GeoLocation> Location { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


MapLocation Property

BlockedUserRequest..::..MapLocation Property

The map location if Geographical City level provider was registered

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[MaybeNullAttribute]
public IMapLocation MapLocation { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


RefferedBy Property

BlockedUserRequest..::..RefferedBy Property

Came from called by (may be null)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[MaybeNullAttribute]
public Uri RefferedBy { get; set; }

See Also

BlockedUserRequest Class
Walter.BOM Namespace


UserLoggedIn Property

BlockedUserRequest..::..UserLoggedIn Property

Gets or sets a value indicating whether [user logged in].

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool UserLoggedIn { get; set; }

Field Value

true if [user logged in]; otherwise, false.

See Also

BlockedUserRequest Class
Walter.BOM Namespace


BlockStatusState Class

Class BlockStatusState.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class BlockStatusState

See Also

BlockStatusState Members
Walter.BOM Namespace


BlockStatusState Members

The BlockStatusState type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the cidr.
Public property | ISPCidr | Gets or sets the isp cidr.
Public property | Location | Gets or sets the location.
Public property | UserId | Gets or sets the user identifier.

See Also

BlockStatusState Class
Walter.BOM Namespace


BlockStatusState Properties

The BlockStatusState type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the cidr.
Public property | ISPCidr | Gets or sets the isp cidr.
Public property | Location | Gets or sets the location.
Public property | UserId | Gets or sets the user identifier.

See Also

BlockStatusState Class
Walter.BOM Namespace


CIDR Property

BlockStatusState..::..CIDR Property

Gets or sets the cidr.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<BlasklistDetail> CIDR { get; set; }

Field Value

The cidr.

See Also

BlockStatusState Class
Walter.BOM Namespace


ISPCidr Property

BlockStatusState..::..ISPCidr Property

Gets or sets the isp cidr.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<BlasklistDetail> ISPCidr { get; set; }

Field Value

The isp cidr.

See Also

BlockStatusState Class
Walter.BOM Namespace


Location Property

BlockStatusState..::..Location Property

Gets or sets the location.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<BlasklistDetail> Location { get; set; }

Field Value

The location.

See Also

BlockStatusState Class
Walter.BOM Namespace


UserId Property

BlockStatusState..::..UserId Property

Gets or sets the user identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<BlasklistDetail> UserId { get; set; }

Field Value

The user identifier.

See Also

BlockStatusState Class
Walter.BOM Namespace


ContentTypes Enumeration

Type of data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum ContentTypes

Members

Member name | Description
None | un known or not specified
text | the content is text
html | the content is html formated text
css | css rules
javascript | the content is javascript
font | the content contains a font
image | the content is an image
jpg | the image is of type jpeg
png | the image is of type png
video | the content is a video
MP4 | video format is mp4
icon | content is an icon image
gif | content is a gif image
Json | The page contains json structure of some kind as a method returned IEnumerable<T> or a JsonResult
svg | The SVG image
WebM | web media format
audio | audio
mp3 | mp3
ogg | ogg video or audio
application | application
pdf | pdf format
vnd | vendor specific
spreadsheet | spread sheet
msword | Microsoft word
powerpoint | power point
WinZip | zip type
octetstream | octet stream /gzip, zip,
gzip | gzip
ActionResult | Generic action result
StatusCodeResult | HTTP status code result
Model | Model mime type
ReactJs | The page contains React script
Xml | XML data
Page | The item is a page, normally a root entry unless it is in a IFrame
Word | Microsoft application file in word format
Excel | Microsoft application file in excel format
Zip | Zip compatible stream

See Also

Walter.BOM Namespace


CookieName Enumeration

Enumerator for names of the cookies used by the system. You should set your own name so that your site can't be identified as being protected by this particular firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum CookieName

Members

Member name | Description
ConsentCookie | consent cookie name
Antiforgery | application anti forgery cookie name used in forms
UserTracking | cookie name used by the firewall to track users if user tracking is enabled
UserEcryptionSalt | cookie used for storing a specific user hashes avoids session high-jacking
SessionTracking | manages tracking for sessions
BlockedUser | cookie used for blocked users
FireWallUser | The fire wall user cookie name
InMemoryUserTracking | contains key for in memory user tracking

See Also

Walter.BOM Namespace


DataLossException Class

The DataLossException is raised when accepting the data the change would result in a data loss

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class DataLossException

See Also

DataLossException Members
Walter.BOM Namespace


DataLossException Members

The DataLossException type exposes the following members.

Constructors

 | Name | Description
Public method | DataLossException(String) | Raise the DataLossException for a given property
Public method | DataLossException(String, Exception) | Raise the DataLossException for a given property
Public method | DataLossException(String, String) | Raise the DataLossException for a given property
Public method | DataLossException(String, String, Exception) | Raise the DataLossException for a given property

Properties

 | Name | Description
Public property | PropertyName | The affected property

See Also

DataLossException Class
Walter.BOM Namespace


DataLossException Constructor

Overload List

 | Name | Description
Public method | DataLossException(String) | Raise the DataLossException for a given property
Public method | DataLossException(String, Exception) | Raise the DataLossException for a given property
Public method | DataLossException(String, String) | Raise the DataLossException for a given property
Public method | DataLossException(String, String, Exception) | Raise the DataLossException for a given property

See Also

DataLossException Class
DataLossException Members
Walter.BOM Namespace


DataLossException Constructor (String)

Raise the DataLossException for a given property

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DataLossException(
    string propertyName
)

Parameters

propertyName
Type: String
Name of the property.

See Also

DataLossException Class
DataLossException Overload
Walter.BOM Namespace


DataLossException Constructor (String, Exception)

Raise the DataLossException for a given property

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DataLossException(
    string propertyName,
    Exception innerException
)

Parameters

propertyName
Type: String
Name of the property.
innerException
Type: Exception
The exception responsible for triggering this exception

See Also

DataLossException Class
DataLossException Overload
Walter.BOM Namespace


DataLossException Constructor (String, String)

Raise the DataLossException for a given property

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DataLossException(
    string propertyName,
    string errorMessage
)

Parameters

propertyName
Type: String
Name of the property.
errorMessage
Type: String
A custom error message

See Also

DataLossException Class
DataLossException Overload
Walter.BOM Namespace


DataLossException Constructor (String, String, Exception)

Raise the DataLossException for a given property

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DataLossException(
    string propertyName,
    string errorMessage,
    Exception innerException
)

Parameters

propertyName
Type: String
Name of the property.
errorMessage
Type: String
A custom error message
innerException
Type: Exception
The exception responsible for triggering this exception

See Also

DataLossException Class
DataLossException Overload
Walter.BOM Namespace


DataLossException Properties

The DataLossException type exposes the following members.

Properties

 | Name | Description
Public property | PropertyName | The affected property

See Also

DataLossException Class
Walter.BOM Namespace


PropertyName Property

DataLossException..::..PropertyName Property

The affected property

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string PropertyName { get; }

See Also

DataLossException Class
Walter.BOM Namespace


DiskSecurityViolationException Class

Class DiskSecurityViolationException. This class cannot be inherited. Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class DiskSecurityViolationException

See Also

DiskSecurityViolationException Members
Walter.BOM Namespace
[System.Exception]


DiskSecurityViolationException Members

The DiskSecurityViolationException type exposes the following members.

Constructors

 | Name | Description
Public method | DiskSecurityViolationException(String) | Initializes a new instance of the DiskSecurityViolationException class.
Public method | DiskSecurityViolationException(String, array<FirewallBlockReasons>[]()[][]) | Initializes a new instance of the DiskSecurityViolationException class.

Properties

 | Name | Description
Public property | Reasons | Reasons the violations occurred

See Also

DiskSecurityViolationException Class
Walter.BOM Namespace


DiskSecurityViolationException Constructor

Overload List

 | Name | Description
Public method | DiskSecurityViolationException(String) | Initializes a new instance of the DiskSecurityViolationException class.
Public method | DiskSecurityViolationException(String, array<FirewallBlockReasons>[]()[][]) | Initializes a new instance of the DiskSecurityViolationException class.

See Also

DiskSecurityViolationException Class
DiskSecurityViolationException Members
Walter.BOM Namespace


DiskSecurityViolationException Constructor (String)

Initializes a new instance of the DiskSecurityViolationException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DiskSecurityViolationException(
    string message
)

Parameters

message
Type: String
The message.

See Also

DiskSecurityViolationException Class
DiskSecurityViolationException Overload
Walter.BOM Namespace


DiskSecurityViolationException Constructor (String, FirewallBlockReasons[])

DiskSecurityViolationException Constructor (String, array<FirewallBlockReasons>[]()[][])

Initializes a new instance of the DiskSecurityViolationException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DiskSecurityViolationException(
    string message,
    params FirewallBlockReasons[] reasons
)

Parameters

message
Type: String
The message.
reasons
Type: array<FirewallBlockReasons>[]()[][]
The reasons.

See Also

DiskSecurityViolationException Class
DiskSecurityViolationException Overload
Walter.BOM Namespace


DiskSecurityViolationException Properties

The DiskSecurityViolationException type exposes the following members.

Properties

 | Name | Description
Public property | Reasons | Reasons the violations occurred

See Also

DiskSecurityViolationException Class
Walter.BOM Namespace


Reasons Property

DiskSecurityViolationException..::..Reasons Property

Reasons the violations occurred

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public IReadOnlyList<FirewallBlockReasons> Reasons { get; }

Field Value

The reasons.

See Also

DiskSecurityViolationException Class
Walter.BOM Namespace


EntryNotFoundException Class

Class EntryNotFoundException. Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class EntryNotFoundException

See Also

EntryNotFoundException Members
Walter.BOM Namespace
[System.Exception]


EntryNotFoundException Members

The EntryNotFoundException type exposes the following members.

Constructors

 | Name | Description
Public method | EntryNotFoundException(String) | Initializes a new instance of the EntryNotFoundException class.

See Also

EntryNotFoundException Class
Walter.BOM Namespace


EntryNotFoundException Constructor (String)

Initializes a new instance of the EntryNotFoundException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public EntryNotFoundException(
    string message
)

Parameters

message
Type: String
The message that describes the error.

See Also

EntryNotFoundException Class
#ctor Overload
Walter.BOM Namespace


EventRecordedEventArgs Class

Class triggered in a OnException event in OnExceptionRecorded()()()(). This class cannot be inherited. Implements the [System.EventArgs]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class EventRecordedEventArgs

See Also

EventRecordedEventArgs Members
Walter.BOM Namespace
[System.EventArgs]


EventRecordedEventArgs Members

The EventRecordedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Item | Gets the exception item.

See Also

EventRecordedEventArgs Class
Walter.BOM Namespace


EventRecordedEventArgs Properties

The EventRecordedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Item | Gets the exception item.

See Also

EventRecordedEventArgs Class
Walter.BOM Namespace


Item Property

EventRecordedEventArgs..::..Item Property

Gets the exception item.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public IExceptionItem Item { get; }

Field Value

The item.

See Also

EventRecordedEventArgs Class
Walter.BOM Namespace


FallbackCashing(T) Class

FallbackCashing<(Of <(<'T>)>)> Class

Class FallbackCashing is a unstable form of cashing that allows to retain non critical business objects.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class FallbackCashing<T>

Type Parameters

T
The type to buffer

Remarks

This class uses IMemoryCache that will release items based on the options or a ring buffer with a maximum amount of items

See Also

FallbackCashing<(Of <(<'T>)>)> Members
Walter.BOM Namespace


FallbackCashing(T) Members

FallbackCashing<(Of <(<'T>)>)> Members

The FallbackCashing<(Of <(<'T>)>)> type exposes the following members.

Constructors

 | Name | Description
Public method | FallbackCashing<(Of <(<'T>)>)> | Initializes a new instance of the FallbackCashing<(Of <(<'T>)>)> class.

Methods

 | Name | Description
Public method | Set | Sets the specified item using the key.
Public method | TryGet | Tries to get a entry with a key.

See Also

FallbackCashing<(Of <(<'T>)>)> Class
Walter.BOM Namespace


FallbackCashing(T) Constructor

FallbackCashing<(Of <(<'T>)>)> Constructor

Initializes a new instance of the FallbackCashing<(Of <(<'T>)>)> class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public FallbackCashing(
    int fallbackSize,
    Nullable<IMemoryCache> memoryCache,
    Nullable<MemoryCacheEntryOptions> options
)

Parameters

fallbackSize
Type: Int32
Size of the fall-back for the ring buffer.
memoryCache
Type: Nullable <(Of <(<'IMemoryCache>)>)>
The memory cache.
options
Type: Nullable <(Of <(<'MemoryCacheEntryOptions>)>)>
The options to use.

Remarks

Fall-back will prefer IMemoryCache, if this is null the [RingBuffer{T}] is used

See Also

FallbackCashing<(Of <(<'T>)>)> Class
Walter.BOM Namespace


FallbackCashing(T) Methods

FallbackCashing<(Of <(<'T>)>)> Methods

The FallbackCashing<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | Set | Sets the specified item using the key.
Public method | TryGet | Tries to get a entry with a key.

See Also

FallbackCashing<(Of <(<'T>)>)> Class
Walter.BOM Namespace


Set Method

FallbackCashing<(Of <(<'T>)>)>..::..Set Method

Sets the specified item using the key.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public void Set(
    string key,
    T value
)

Parameters

key
Type: String
The key assigning the item.
value
Type: T
The value.

See Also

FallbackCashing<(Of <(<'T>)>)> Class
Walter.BOM Namespace


TryGet Method

FallbackCashing<(Of <(<'T>)>)>..::..TryGet Method

Tries to get a entry with a key.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool TryGet(
    string key,
    out Nullable<T> value
)

Parameters

key
Type: String
The key.
value
Type: Nullable <(Of <(<' T >)>)>%
The value.

Return Value

true if retrieved.

See Also

FallbackCashing<(Of <(<'T>)>)> Class
Walter.BOM Namespace


FeaturesDataSource Enumeration

Enum FeaturesDataSource indicates what features are using the database

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum FeaturesDataSource

Members

Member name | Description
None | The none
FireWall | The fire wall
WhoisISP | The ISP Who-is Internet Service Provider storage
WhoisServer | The who-is server
UserAgent | The user agent
WorkFlows | The work flows
HoneyPot | Honey pot data detection service
WhoisTalkingService | The who-is talking service
FireWallDataSubscription | The fire wall data subscription
CookieFactory | The cookie factory service used by web-based plugins

See Also

Walter.BOM Namespace


FirewallAllowReasons Enumeration

Reason why the item is white listed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum FirewallAllowReasons

Members

Member name | Description
None | no reason provided
BlockingTimeOut | The blocking timed-out
ManualReleaseByAdmin | The manual release by administrator
FireWallManagement | The firewall management API discovered that the blocked user is to be released

See Also

Walter.BOM Namespace


FirewallBlockReasonAuditEntry Class

Violation stack item

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class FirewallBlockReasonAuditEntry

See Also

FirewallBlockReasonAuditEntry Members
Walter.BOM Namespace


FirewallBlockReasonAuditEntry Members

The FirewallBlockReasonAuditEntry type exposes the following members.

Properties

 | Name | Description
Public property | Actual | Actual times recorded in time span
Public property | Allowed | occurrence allowed
Public property | Evaluated | date evaluated
Public property | Reasons | reason
Public property | TimeSpan | time span allowed
Public property | Violates | Indicates the actual count is higher than the allowed count and the rule triggered a block or redirect

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


FirewallBlockReasonAuditEntry Properties

The FirewallBlockReasonAuditEntry type exposes the following members.

Properties

 | Name | Description
Public property | Actual | Actual times recorded in time span
Public property | Allowed | occurrence allowed
Public property | Evaluated | date evaluated
Public property | Reasons | reason
Public property | TimeSpan | time span allowed
Public property | Violates | Indicates the actual count is higher than the allowed count and the rule triggered a block or redirect

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


Actual Property

FirewallBlockReasonAuditEntry..::..Actual Property

Actual times recorded in time span

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int Actual { get; set; }

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


Allowed Property

FirewallBlockReasonAuditEntry..::..Allowed Property

occurrence allowed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int Allowed { get; set; }

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


Evaluated Property

FirewallBlockReasonAuditEntry..::..Evaluated Property

date evaluated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DateTime Evaluated { get; set; }

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


Reasons Property

FirewallBlockReasonAuditEntry..::..Reasons Property

reason

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public FirewallBlockReasons Reasons { get; set; }

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


TimeSpan Property

FirewallBlockReasonAuditEntry..::..TimeSpan Property

time span allowed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public TimeSpan TimeSpan { get; set; }

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


Violates Property

FirewallBlockReasonAuditEntry..::..Violates Property

Indicates the actual count is higher than the allowed count and the rule triggered a block or redirect

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Violates { get; }

See Also

FirewallBlockReasonAuditEntry Class
Walter.BOM Namespace


FirewallBlockReasons Enumeration

The firewall Block Reason for a given violation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum FirewallBlockReasons

Members

Member name | Description
None | No reason specified
DeliberateManipulation | The deliberate manipulation on the data. Indicates that the data is system provided and was not valid, ideal for used in cypher, hashes, ID's
HoneyPotTrap | The honey-pot trap are those items that a normal user would not try to access
HeaderManipulations | Indicates that the headers are not correct either in name or in content
UserEncryptionManipulations | Indicates that the user encryption was wrong
UserSessionManipulations | Indicates that the user session keys are out of sink or manipulated
PageRereshFishing | The page request is refreshed to try and obtain a different outcome provided does not match the one on the page
CookieManipulations | The cookie names used or the content of the cookie is wrong
ProxyUser | a proxy user detected and was not allowed
PenetrationAttempt | The penetration attempt detected
RepeatedBlockedRequest | The repeated blocked request
NoAccessFromRegion | The no access from region of connection
WrongUserGroup | The user belongs to the wrong user group and is not allowed to access a given resource
ScrubbingDetected | The user is considered to be scrubbing
UserIdFaulty | The user identifier is faulty, could not be matched or was not created by the firewall
WrongUserId | The wrong user identifier was provided for a page request
SimulatedDevice | The user is using a simulated device
DataValidationError | The data validation error when reading or writing data from an untrusted source
GeographyRejected | wrong geographical location
UserGeneratedRejection | Ad-hock reason end user generated
AddhockFileAccessDetected | The add-hock file would be access (access a resource without a page)
CrossSiteRequestRejected | Request from external domain
DataSubscription | data subscription
MaliciousUser | The user is malicious
DeveloperTools | The user uses developer tools
BlockedUserGroup |
MaximumViolationsDetected | Maximum violations allowed have already been detected
PhishyRequest | The request is a phishing request
AgentsConsideredMalicious | The Bot or user is flagged malicious
NoAccessOutsideofRenderedLinks | Access rejected based on rendered link on page , session or history
DenailOfService | An attempt was made to take the site down
DenySystemAccess | The deny system access
AttemptToAccessSystemFiles | The attempt to access system files
AttemptOnPluginConfiguration | The attempt on the plug-in configuration
AttemptToAccessSiteUsingTheTechnologyStack | The attempt to access user wrong technology stack
AttemptToAccessSiteBackup | The attempt to access site backup
RequestPoisoningDetected | The request poisoning detected
HoneyPotSocketDetected | A honey-pot socket attack was detected
CommonVulnerabilitiesExposuresExploitDetected | A Common Vulnerabilities Exposures exploit was detected
PortScan | A port scan was detected
ResetAttack | The reset attack
ALL | All flags turned on

See Also

Walter.BOM Namespace


FireWallContexts Enumeration

A value stating the context (reason(s)) of the blocking for the firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum FireWallContexts

Members

Member name | Description
None | No context specified
Physical | The physical access to data violations
Geography | A geography violation
SensitiveData | Sensitive data was manipulated or unauthorized access was attempted
UserProvidedData | The user provided data to a model that did not validate, can be user error or data injection/manipulation
UserProvidedOverFittedData | The user over fitted the model with more data values than expected
Manual | Was my a user defined rule outside of the firewall
BadModel | a controller executed a bad data model
Refferer | The referrer does not fit the list of possible accessible locations
BadRequest | the user makes a request that makes no sense
RequiredDataMissing | Required data is missing
CSPViolation | The browser triggered a CSP violation
CommonVulnerabilitiesExposuresExploits | A Common Vulnerabilities Exposures exploits

See Also

Walter.BOM Namespace


FireWallReportContentFeatures Enumeration

Enum FireWallReportFeatures

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum FireWallReportContentFeatures

Members

Member name | Description
None | No settings communicated
Cover | The report contains a cover
CoverLetter | The report contains a cover letter
Index | The report contains a index
ManagementAbstract | The report contains a management abstract
Glossary | The report contains a glossary
Overview | The report contains overview
Details | The report contains details
Timeline | The report contains a Time-Line
ActivityDiagram | The report contains a activity diagram

See Also

Walter.BOM Namespace


FireWallReportType Enumeration

Enum FireWallReportType

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum FireWallReportType

Members

Member name | Description
None | The type was not set
Generic | The report is a generic report
AbuseReport | The report is a ISP abuse report
SOC | The report is SOC related
ENISA | The report is ENISA related
ISO27000 | The report is ISO-27000 related
Country | The report context is country
IPAddress | The report context is an IP address
UserActivity | The report context is about a user's activity
InternetServiceProvider | The report context internet service provider

See Also

Walter.BOM Namespace


GlossarayExtensions Class

Class GlossarayExtensions contains helper methods for reporting and allows to show reason strings in reports

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class GlossarayExtensions

See Also

GlossarayExtensions Members
Walter.BOM Namespace


GlossarayExtensions Members

Methods

Name | Description
Glossary(FirewallBlockReasons) | Glossaries for firewall Blocking Reasons.
Glossary(FirewallAllowReasons) | Glossary for release reason.

See Also

GlossarayExtensions Class
Walter.BOM Namespace


GlossarayExtensions Methods

Methods

Name | Description
Glossary(FirewallBlockReasons) | Glossaries for firewall Blocking Reasons.
Glossary(FirewallAllowReasons) | Glossary for release reason.

See Also

GlossarayExtensions Class
Walter.BOM Namespace


Glossary Method

GlossarayExtensions..::..Glossary Method

Overload List

Name | Description
Glossary(FirewallBlockReasons) | Glossaries for firewall Blocking Reasons.
Glossary(FirewallAllowReasons) | Glossary for release reason.

See Also

GlossarayExtensions Class
GlossarayExtensions Members
Walter.BOM Namespace


Glossary Method (FirewallBlockReasons)

GlossarayExtensions..::..Glossary Method (FirewallBlockReasons)

Glossaries for firewall Blocking Reasons.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string Glossary(
    FirewallBlockReasons reason
)

Parameters

reason
Type: Walter.BOM..::..FirewallBlockReasons
The reason.

Return Value

glossary type explanation

See Also

GlossarayExtensions Class
Glossary Overload
Walter.BOM Namespace


Glossary Method (FirewallAllowReasons)

GlossarayExtensions..::..Glossary Method (FirewallAllowReasons)

Glossary for release reason.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string Glossary(
    FirewallAllowReasons reason
)

Parameters

reason
Type: Walter.BOM..::..FirewallAllowReasons
The reason.

Return Value

System.String.

See Also

GlossarayExtensions Class
Glossary Overload
Walter.BOM Namespace


GuardResponse Enumeration

Enum GuardResponse indicates how the firewall will communicate the incident back to the user

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum GuardResponse

Members

Member name | Description
None | No Guard response was needed
NoResponse | The module will give no response to the user not even a error state
ReplyWithLegalNotice | The module will reply with legal notice
ReplyWithPayload | The model will reply with a payload (offensive response)
EscalatedTracking | escalated tracking for user and IP address as the user generated incidents just did not reach a "maximum allowed incident" combination
HttpErrorCode | Module will generate a HTTP error state
RedirectHttpToWarningsPage | The firewall may redirects the user to a warn page or a off-site

See Also

Walter.BOM Namespace


HeaderName Enumeration

Header names used by the firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum HeaderName

Members

Member name | Description
Antiforgery | The anti forgery header name
UserTracking | The user tracking header name
UserEncryptionSalt | The user encryption salt
SessionTrackingId | The session tracking identifier
PageRequestGroup | The page request group
Salt | The salt entry (not the user)

See Also

Walter.BOM Namespace


HelpTopicAttribute Class

Class HelpTopicAttribute is used to generate links to help sections in the website. You should not use this annotation in your projects Implements the [System.Attribute]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class HelpTopicAttribute

See Also

HelpTopicAttribute Members
Walter.BOM Namespace
[System.Attribute]


HelpTopicAttribute Members

The HelpTopicAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | HelpTopicAttribute(String) | Initializes a new instance of the HelpTopicAttribute class.
Public method | HelpTopicAttribute(String, Int32) | Initializes a new instance of the HelpTopicAttribute class.
Public method | HelpTopicAttribute(String, String, Nullable<(Of <<'(Int32>)>>)) | Initializes a new instance of the HelpTopicAttribute class.
Public method | HelpTopicAttribute(Uri, String, String, Nullable<(Of <<'(Int32>)>>)) | Initializes a new instance of the HelpTopicAttribute class.

Methods

 | Name | Description
Public method | Url | URLs this instance.

Properties

 | Name | Description
Public property | Action | Gets the action name for the help file.
Public property | Code | Gets the code.
Public property | Controller | Gets the controller name for the help file.
Public property | Domain | Gets the domain base URI.
Public property | Topic | Gets the topic.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


HelpTopicAttribute Constructor

Overload List

 | Name | Description
Public method | HelpTopicAttribute(String) | Initializes a new instance of the HelpTopicAttribute class.
Public method | HelpTopicAttribute(String, Int32) | Initializes a new instance of the HelpTopicAttribute class.
Public method | HelpTopicAttribute(String, String, Nullable<(Of <<'(Int32>)>>)) | Initializes a new instance of the HelpTopicAttribute class.
Public method | HelpTopicAttribute(Uri, String, String, Nullable<(Of <<'(Int32>)>>)) | Initializes a new instance of the HelpTopicAttribute class.

See Also

HelpTopicAttribute Class
HelpTopicAttribute Members
Walter.BOM Namespace


HelpTopicAttribute Constructor (String)

Initializes a new instance of the HelpTopicAttribute class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public HelpTopicAttribute(
    string topic
)

Parameters

topic
Type: String
The topic.

See Also

HelpTopicAttribute Class
HelpTopicAttribute Overload
Walter.BOM Namespace


HelpTopicAttribute Constructor (String, Int32)

Initializes a new instance of the HelpTopicAttribute class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public HelpTopicAttribute(
    string topic,
    int code
)

Parameters

topic
Type: String
The topic.
code
Type: Int32
The code.

See Also

HelpTopicAttribute Class
HelpTopicAttribute Overload
Walter.BOM Namespace


HelpTopicAttribute Constructor (String, String, Nullable(Int32))

HelpTopicAttribute Constructor (String, String, Nullable<(Of <(<'Int32>)>)>)

Initializes a new instance of the HelpTopicAttribute class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public HelpTopicAttribute(
    string controller,
    string action,
    Nullable<int> code
)

Parameters

controller
Type: String
The controller.
action
Type: String
The action.
code
Type: Nullable <(Of <(<' Int32 >)>)>
The code.

See Also

HelpTopicAttribute Class
HelpTopicAttribute Overload
Walter.BOM Namespace


HelpTopicAttribute Constructor (Uri, String, String, Nullable(Int32))

HelpTopicAttribute Constructor (Uri, String, String, Nullable<(Of <(<'Int32>)>)>)

Initializes a new instance of the HelpTopicAttribute class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public HelpTopicAttribute(
    Uri domain,
    string controller,
    string action,
    Nullable<int> code
)

Parameters

domain
Type: Uri
The domain that the help link points to
controller
Type: String
The controller.
action
Type: String
The action.
code
Type: Nullable <(Of <(<' Int32 >)>)>
The code.

See Also

HelpTopicAttribute Class
HelpTopicAttribute Overload
Walter.BOM Namespace


HelpTopicAttribute Methods

The HelpTopicAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Url | URLs this instance.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


Url Method

HelpTopicAttribute..::..Url Method

URLs this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Uri Url()

Return Value

System.String.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


HelpTopicAttribute Properties

The HelpTopicAttribute type exposes the following members.

Properties

 | Name | Description
Public property | Action | Gets the action name for the help file.
Public property | Code | Gets the code.
Public property | Controller | Gets the controller name for the help file.
Public property | Domain | Gets the domain base URI.
Public property | Topic | Gets the topic.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


Action Property

HelpTopicAttribute..::..Action Property

Gets the action name for the help file.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Action { get; }

Field Value

The action.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


Code Property

HelpTopicAttribute..::..Code Property

Gets the code.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int Code { get; }

Field Value

The code.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


Controller Property

HelpTopicAttribute..::..Controller Property

Gets the controller name for the help file.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Controller { get; }

Field Value

The controller.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


Domain Property

HelpTopicAttribute..::..Domain Property

Gets the domain base URI.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Uri Domain { get; }

Field Value

The domain.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


Topic Property

HelpTopicAttribute..::..Topic Property

Gets the topic.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Topic { get; }

Field Value

The topic.

See Also

HelpTopicAttribute Class
Walter.BOM Namespace


IControlledDiskIO Interface

Interface used for monitoring and exciting disk operations indicating that it is done in a safe and controlled way

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IControlledDiskIO

Remarks

The interface is to be used by the application indicating that disk changes are safe and ensuring changes may be detected so that applications can shut down if DLL's are injected or file changes are made to files that are configuring the way the application executes like AppConfig.json or web.config

See Also

IControlledDiskIO Members
Walter.BOM Namespace


IControlledDiskIO Members

The IControlledDiskIO type exposes the following members.

Methods

 | Name | Description
Public method | AppendFile | instruct the firewall to allow and to append text to a given file
Public method | AppendLineFile | Appends the line file.
Public method | AppendLineFileAsync | instruct the firewall to allow and to append text to a given file asynchronous.
Public method | DeleteFile | Deletes the file and removes the directory if empty.
Public method | TryWriteFile | Tries to writes the file to disk, will create the directory if needed and will replace any data in file exists
Public method | WriteFile(FileInfo, String) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFile(FileInfo, array<Byte>[]()[][]) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFileAsync(FileInfo, String, CancellationToken) | Write the content to disk
Public method | WriteFileAsync(FileInfo, array<Byte>[]()[][], CancellationToken) | Write the content to disk

Properties

 | Name | Description
Public property | DiskAudit | Track the changes that have been recorded
Public property | DiskChangesDetected | A counter with changes detected
Public property | DiskChangesMade | A counter showing the changes made using the system
Public property | DiskChangesPending | A counter with changes made but that have not triggered a detection

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


IControlledDiskIO Methods

The IControlledDiskIO type exposes the following members.

Methods

 | Name | Description
Public method | AppendFile | instruct the firewall to allow and to append text to a given file
Public method | AppendLineFile | Appends the line file.
Public method | AppendLineFileAsync | instruct the firewall to allow and to append text to a given file asynchronous.
Public method | DeleteFile | Deletes the file and removes the directory if empty.
Public method | TryWriteFile | Tries to writes the file to disk, will create the directory if needed and will replace any data in file exists
Public method | WriteFile(FileInfo, String) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFile(FileInfo, array<Byte>[]()[][]) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFileAsync(FileInfo, String, CancellationToken) | Write the content to disk
Public method | WriteFileAsync(FileInfo, array<Byte>[]()[][], CancellationToken) | Write the content to disk

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


AppendFile Method

IControlledDiskIO..::..AppendFile Method

instruct the firewall to allow and to append text to a given file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void AppendFile(
    FileInfo file,
    string text
)

Parameters

file
Type: FileInfo
file that will be allowed to be updated
text
Type: String
the text to append

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


AppendLineFile Method

IControlledDiskIO..::..AppendLineFile Method

Appends the line file.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void AppendLineFile(
    FileInfo file,
    string text
)

Parameters

file
Type: FileInfo
file that will be allowed to be updated
text
Type: String
The text.

Return Value

Task.

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


AppendLineFileAsync Method

IControlledDiskIO..::..AppendLineFileAsync Method

instruct the firewall to allow and to append text to a given file asynchronous.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Task AppendLineFileAsync(
    FileInfo file,
    string text,
    CancellationToken cancellationToken
)

Parameters

file
Type: FileInfo
file that will be allowed to be updated
text
Type: String
The text.
cancellationToken
Type: CancellationToken
Propagates notification if a operations should be canceled.

Return Value

Task.

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


DeleteFile Method

IControlledDiskIO..::..DeleteFile Method

Deletes the file and removes the directory if empty.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void DeleteFile(
    FileInfo file
)

Parameters

file
Type: FileInfo
file that will be allowed to be deleted

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


TryWriteFile Method

IControlledDiskIO..::..TryWriteFile Method

Tries to writes the file to disk, will create the directory if needed and will replace any data in file exists

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool TryWriteFile(
    FileInfo file,
    string text,
    out Nullable<Exception> e
)

Parameters

file
Type: FileInfo
file that will be allowed to be created or replaced
text
Type: String
The text that is to be stored.
e
Type: Nullable <(Of <(<'Exception>)>)>%
exception if failed

Return Value

False if a exception was thrown

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


WriteFile Method

IControlledDiskIO..::..WriteFile Method

Overload List

 | Name | Description
Public method | WriteFile(FileInfo, String) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFile(FileInfo, array<Byte>[]()[][]) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists

See Also

IControlledDiskIO Interface
IControlledDiskIO Members
Walter.BOM Namespace


WriteFile Method (FileInfo, String)

IControlledDiskIO..::..WriteFile Method (FileInfo, String)

Writes the file to disk, will create the directory if needed. Will replace any data in file exists

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void WriteFile(
    FileInfo file,
    string text
)

Parameters

file
Type: FileInfo
file that will be allowed to be created or replaced
text
Type: String
The text that is to be stored.

See Also

IControlledDiskIO Interface
WriteFile Overload
Walter.BOM Namespace


WriteFile Method (FileInfo, Byte[])

IControlledDiskIO..::..WriteFile Method (FileInfo, array<Byte>[]()[][])

Writes the file to disk, will create the directory if needed. Will replace any data in file exists

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void WriteFile(
    FileInfo file,
    byte[] bytes
)

Parameters

file
Type: FileInfo
file that will be allowed to be created or replaced
bytes
Type: array< Byte >[]()[][]
The byte data that is to be stored.

See Also

IControlledDiskIO Interface
WriteFile Overload
Walter.BOM Namespace


WriteFileAsync Method

IControlledDiskIO..::..WriteFileAsync Method

Overload List

 | Name | Description
Public method | WriteFileAsync(FileInfo, String, CancellationToken) | Write the content to disk
Public method | WriteFileAsync(FileInfo, array<Byte>[]()[][], CancellationToken) | Write the content to disk

See Also

IControlledDiskIO Interface
IControlledDiskIO Members
Walter.BOM Namespace


WriteFileAsync Method (FileInfo, String, CancellationToken)

IControlledDiskIO..::..WriteFileAsync Method (FileInfo, String, CancellationToken)

Write the content to disk

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Task WriteFileAsync(
    FileInfo file,
    string text,
    CancellationToken cancellationToken
)

Parameters

file
Type: FileInfo
the file to create or replace
text
Type: String
the text to write to it
cancellationToken
Type: CancellationToken
Propagates notification that operations should be canceled.

Return Value

Task

See Also

IControlledDiskIO Interface
WriteFileAsync Overload
Walter.BOM Namespace


WriteFileAsync Method (FileInfo, Byte[], CancellationToken)

IControlledDiskIO..::..WriteFileAsync Method (FileInfo, array<Byte>[]()[][], CancellationToken)

Write the content to disk

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Task WriteFileAsync(
    FileInfo file,
    byte[] bytes,
    CancellationToken cancellationToken
)

Parameters

file
Type: FileInfo
the file to create or replace
bytes
Type: array< Byte >[]()[][]
the bytes to write to it
cancellationToken
Type: CancellationToken
Propagates notification if a operations should be canceled.

Return Value

Task

See Also

IControlledDiskIO Interface
WriteFileAsync Overload
Walter.BOM Namespace


IControlledDiskIO Properties

The IControlledDiskIO type exposes the following members.

Properties

 | Name | Description
Public property | DiskAudit | Track the changes that have been recorded
Public property | DiskChangesDetected | A counter with changes detected
Public property | DiskChangesMade | A counter showing the changes made using the system
Public property | DiskChangesPending | A counter with changes made but that have not triggered a detection

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


DiskAudit Property

IControlledDiskIO..::..DiskAudit Property

Track the changes that have been recorded

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IReadOnlyBuffer<AuditLog> DiskAudit { get; }

Remarks

The audit log limits to track the last 100 entries. Look at [IReadOnlyBuffer{T}.Count] to know how many items have been recorded till data

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


DiskChangesDetected Property

IControlledDiskIO..::..DiskChangesDetected Property

A counter with changes detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int DiskChangesDetected { get; }

Remarks

This could be changes made using the system or potentially malicious changes made by other threads

See Also

IControlledDiskIO Interface
Walter.BOM Namespace
IControlledDiskIO..::..AppendFile(FileInfo, String)
IControlledDiskIO..::..DeleteFile(FileInfo)
IControlledDiskIO..::..WriteFile(FileInfo, String)


DiskChangesMade Property

IControlledDiskIO..::..DiskChangesMade Property

A counter showing the changes made using the system

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int DiskChangesMade { get; }

Remarks

Changes made to disk using the system are considered safe changes

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


DiskChangesPending Property

IControlledDiskIO..::..DiskChangesPending Property

A counter with changes made but that have not triggered a detection

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int DiskChangesPending { get; }

Remarks

This value may lag as processing the changes may be pending thread IO

See Also

IControlledDiskIO Interface
Walter.BOM Namespace


IDBConnection Interface

Database connection interface

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IDBConnection

See Also

IDBConnection Members
Walter.BOM Namespace


IDBConnection Members

The IDBConnection type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | the connection string used

See Also

IDBConnection Interface
Walter.BOM Namespace


IDBConnection Properties

The IDBConnection type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | the connection string used

See Also

IDBConnection Interface
Walter.BOM Namespace


ConnectionString Property

IDBConnection..::..ConnectionString Property

the connection string used

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ConnectionString { get; }

See Also

IDBConnection Interface
Walter.BOM Namespace


IDevice Interface

Determine type of device accessing the system

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IDevice : IDeviceSignature

See Also

IDevice Members
Walter.BOM Namespace
Walter.BOM..::..IDeviceSignature


IDevice Members

The IDevice type exposes the following members.

Properties

 | Name | Description
Public property | Agent | Gets the agent.
Public property | DocumentCapabilities | Gets the document capabilities.
Public property | Screen | Gets the screen.
Public property | WindowCapabilities | Gets the window capabilities.

See Also

IDevice Interface
Walter.BOM Namespace


IDevice Properties

The IDevice type exposes the following members.

Properties

 | Name | Description
Public property | Agent | Gets the agent.
Public property | DocumentCapabilities | Gets the document capabilities.
Public property | Screen | Gets the screen.
Public property | WindowCapabilities | Gets the window capabilities.

See Also

IDevice Interface
Walter.BOM Namespace


Agent Property

IDevice..::..Agent Property

Gets the agent.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Agent { get; }

Field Value

The agent.

See Also

IDevice Interface
Walter.BOM Namespace


DocumentCapabilities Property

IDevice..::..DocumentCapabilities Property

Gets the document capabilities.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IList<string> DocumentCapabilities { get; }

Field Value

The document capabilities.

See Also

IDevice Interface
Walter.BOM Namespace


Screen Property

IDevice..::..Screen Property

Gets the screen.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IUserScreen Screen { get; }

Field Value

The screen.

See Also

IDevice Interface
Walter.BOM Namespace


WindowCapabilities Property

IDevice..::..WindowCapabilities Property

Gets the window capabilities.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IList<string> WindowCapabilities { get; }

Field Value

The window capabilities.

See Also

IDevice Interface
Walter.BOM Namespace


IDeviceSignature Interface

Interface IDeviceSignature

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IDeviceSignature

See Also

IDeviceSignature Members
Walter.BOM Namespace


IDeviceSignature Members

The IDeviceSignature type exposes the following members.

Methods

 | Name | Description
Public method | TriggerAgentSwitch | Triggers a increment in AgentSwitch count
Public method | TriggerGeoBlock | Triggers an increment the GeoBlock count
Public method | TriggerViolations | Triggers an increment the count of violations

Properties

 | Name | Description
Public property | AgentHash | Gets the agent hash.
Public property | CapabilitiesHash | Gets the capabilities hash.
Public property | ScreenHash | Gets the screen hash.

See Also

IDeviceSignature Interface
Walter.BOM Namespace


IDeviceSignature Methods

The IDeviceSignature type exposes the following members.

Methods

 | Name | Description
Public method | TriggerAgentSwitch | Triggers a increment in AgentSwitch count
Public method | TriggerGeoBlock | Triggers an increment the GeoBlock count
Public method | TriggerViolations | Triggers an increment the count of violations

See Also

IDeviceSignature Interface
Walter.BOM Namespace


TriggerAgentSwitch Method

IDeviceSignature..::..TriggerAgentSwitch Method

Triggers a increment in AgentSwitch count

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int TriggerAgentSwitch()

Return Value

See Also

IDeviceSignature Interface
Walter.BOM Namespace


TriggerGeoBlock Method

IDeviceSignature..::..TriggerGeoBlock Method

Triggers an increment the GeoBlock count

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int TriggerGeoBlock()

Return Value

See Also

IDeviceSignature Interface
Walter.BOM Namespace


TriggerViolations Method

IDeviceSignature..::..TriggerViolations Method

Triggers an increment the count of violations

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
long TriggerViolations()

Return Value

See Also

IDeviceSignature Interface
Walter.BOM Namespace


IDeviceSignature Properties

The IDeviceSignature type exposes the following members.

Properties

 | Name | Description
Public property | AgentHash | Gets the agent hash.
Public property | CapabilitiesHash | Gets the capabilities hash.
Public property | ScreenHash | Gets the screen hash.

See Also

IDeviceSignature Interface
Walter.BOM Namespace


AgentHash Property

IDeviceSignature..::..AgentHash Property

Gets the agent hash.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string AgentHash { get; }

Field Value

The agent hash.

See Also

IDeviceSignature Interface
Walter.BOM Namespace


CapabilitiesHash Property

IDeviceSignature..::..CapabilitiesHash Property

Gets the capabilities hash.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int CapabilitiesHash { get; }

Field Value

The capabilities hash.

See Also

IDeviceSignature Interface
Walter.BOM Namespace


ScreenHash Property

IDeviceSignature..::..ScreenHash Property

Gets the screen hash.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int ScreenHash { get; }

Field Value

The screen hash.

See Also

IDeviceSignature Interface
Walter.BOM Namespace


IDomain Interface

the licensed domain based for products that are domain based licensed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IDomain

See Also

IDomain Members
Walter.BOM Namespace


IDomain Members

The IDomain type exposes the following members.

Methods

 | Name | Description
Public method | LoadKey | Loads the encryption key and key number.

Properties

 | Name | Description
Public property | DomainKey | Gets the domain key (license) that belongs to the web application being hosted.
Public property | DomainName | Gets the name of the domain.
Public property | DomainUrl | URL version of the domain name
Public property | KeyRing | Gets the key ring for the encryption keys.
Public property | LicenseHttpHeaderName | Gets or sets the name of the license HTTP header.

See Also

IDomain Interface
Walter.BOM Namespace


IDomain Methods

The IDomain type exposes the following members.

Methods

 | Name | Description
Public method | LoadKey | Loads the encryption key and key number.

See Also

IDomain Interface
Walter.BOM Namespace


LoadKey Method

IDomain..::..LoadKey Method

Loads the encryption key and key number.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void LoadKey(
    long key,
    string value
)

Parameters

key
Type: Int64
The key number.
value
Type: String
The cipher password.

See Also

IDomain Interface
Walter.BOM Namespace


IDomain Properties

The IDomain type exposes the following members.

Properties

 | Name | Description
Public property | DomainKey | Gets the domain key (license) that belongs to the web application being hosted.
Public property | DomainName | Gets the name of the domain.
Public property | DomainUrl | URL version of the domain name
Public property | KeyRing | Gets the key ring for the encryption keys.
Public property | LicenseHttpHeaderName | Gets or sets the name of the license HTTP header.

See Also

IDomain Interface
Walter.BOM Namespace


DomainKey Property

IDomain..::..DomainKey Property

Gets the domain key (license) that belongs to the web application being hosted.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string DomainKey { get; }

Field Value

The domain key.

See Also

IDomain Interface
Walter.BOM Namespace


DomainName Property

IDomain..::..DomainName Property

Gets the name of the domain.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string DomainName { get; set; }

Field Value

The name of the domain.

See Also

IDomain Interface
Walter.BOM Namespace


DomainUrl Property

IDomain..::..DomainUrl Property

URL version of the domain name

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Uri DomainUrl { get; }

See Also

IDomain Interface
Walter.BOM Namespace


KeyRing Property

IDomain..::..KeyRing Property

Gets the key ring for the encryption keys.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Dictionary<long, string> KeyRing { get; }

Field Value

The key ring.

See Also

IDomain Interface
Walter.BOM Namespace


LicenseHttpHeaderName Property

IDomain..::..LicenseHttpHeaderName Property

Gets or sets the name of the license HTTP header.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string LicenseHttpHeaderName { get; }

Field Value

The name of the license HTTP header.

See Also

IDomain Interface
Walter.BOM Namespace


IExceptionConsole Interface

Exception and ToDo console logging missing or faulty configurations

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IExceptionConsole : IExceptionConsoleData

See Also

IExceptionConsole Members
Walter.BOM Namespace


IExceptionConsole Members

The IExceptionConsole type exposes the following members.

Methods

 | Name | Description
Public method | LogException<(Of <<'(T>)>>) | Add the exception to the unique log of exceptions.
Public method | LogTodo<(Of <<'(T>)>>) | Logs the ToDo item with the firewall.

Properties

 | Name | Description
Public property | Owner | The instance where this class is used in and the one raising the exception

Events

 | Name | Description
Public event | OnExceptionRecorded | Occurs when an exception is recorded.

See Also

IExceptionConsole Interface
Walter.BOM Namespace


IExceptionConsole Methods

The IExceptionConsole type exposes the following members.

Methods

 | Name | Description
Public method | LogException<(Of <<'(T>)>>) | Add the exception to the unique log of exceptions.
Public method | LogTodo<(Of <<'(T>)>>) | Logs the ToDo item with the firewall.

See Also

IExceptionConsole Interface
Walter.BOM Namespace


LogException(T) Method

IExceptionConsole..::..LogException<(Of <(<'T>)>)> Method

Add the exception to the unique log of exceptions.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void LogException<T>(
    T code,
    Exception e,
    string message,
    Nullable<string> memberName,
    Nullable<string> sourceFilePath,
    Nullable<int> sourceLineNumber
)
where T : Enum

Type Parameters

T

Parameters

code
Type: T
The code.
e
Type: Exception
The e.
message
Type: String
The message.
memberName
Type: Nullable <(Of <(<' String >)>)>
Name of the member.
sourceFilePath
Type: Nullable <(Of <(<' String >)>)>
The source file path.
sourceLineNumber
Type: Nullable <(Of <(<' Int32 >)>)>
The source line number.

Exceptions

Exception | Condition
[System.ArgumentNullException] | e

See Also

IExceptionConsole Interface
Walter.BOM Namespace


LogTodo(T) Method

IExceptionConsole..::..LogTodo<(Of <(<'T>)>)> Method

Logs the ToDo item with the firewall.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void LogTodo<T>(
    T code,
    string message,
    bool isOptional
)
where T : Enum

Type Parameters

T
The enumerator type indication the type of ToDo this represents

Parameters

code
Type: T
The enumerator value stating task that needs to be implemented.
message
Type: String
The message.
isOptional
Type: Boolean
indicates if the to-do item is optional for the firewall to function as intended.

Remarks

The firewall will use this method to add missing configuration items. You can access the ToDo's directly via the property ToDo or via the Report interface No one stops you from using this method in your own code to document items that need to be done based on the work-flow(s) executed and plug-in's used.

The ToDo will output a log a Warning for a optional task and a critical task for a task detailing a activity that you should really should implement ASAP

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IExceptionConsole Interface
Walter.BOM Namespace


IExceptionConsole Properties

The IExceptionConsole type exposes the following members.

Properties

 | Name | Description
Public property | Owner | The instance where this class is used in and the one raising the exception

See Also

IExceptionConsole Interface
Walter.BOM Namespace


Owner Property

IExceptionConsole..::..Owner Property

The instance where this class is used in and the one raising the exception

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<Object> Owner { get; set; }

Field Value

The owner.

See Also

IExceptionConsole Interface
Walter.BOM Namespace


IExceptionConsole Events

The IExceptionConsole type exposes the following members.

Events

 | Name | Description
Public event | OnExceptionRecorded | Occurs when an exception is recorded.

See Also

IExceptionConsole Interface
Walter.BOM Namespace


OnExceptionRecorded Event

IExceptionConsole..::..OnExceptionRecorded Event

Occurs when an exception is recorded.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
event Nullable<EventHandler<EventRecordedEventArgs>> OnExceptionRecorded

See Also

IExceptionConsole Interface
Walter.BOM Namespace


IExceptionConsoleData Interface

Data in the exception console

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IExceptionConsoleData

See Also

IExceptionConsoleData Members
Walter.BOM Namespace


IExceptionConsoleData Members

The IExceptionConsoleData type exposes the following members.

Properties

 | Name | Description
Public property | Exceptions | exception recorder during the operation that need to be resolved
Public property | ToDo | Access all items that are considered needed for the application to perform correct

See Also

IExceptionConsoleData Interface
Walter.BOM Namespace


IExceptionConsoleData Properties

The IExceptionConsoleData type exposes the following members.

Properties

 | Name | Description
Public property | Exceptions | exception recorder during the operation that need to be resolved
Public property | ToDo | Access all items that are considered needed for the application to perform correct

See Also

IExceptionConsoleData Interface
Walter.BOM Namespace


Exceptions Property

IExceptionConsoleData..::..Exceptions Property

exception recorder during the operation that need to be resolved

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IReadOnlyList<IExceptionItem> Exceptions { get; }

See Also

IExceptionConsoleData Interface
Walter.BOM Namespace


ToDo Property

IExceptionConsoleData..::..ToDo Property

Access all items that are considered needed for the application to perform correct

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IReadOnlyList<IToDoItem> ToDo { get; }

See Also

IExceptionConsoleData Interface
Walter.BOM Namespace


IExceptionItem Interface

a given exception entry

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IExceptionItem

See Also

IExceptionItem Members
Walter.BOM Namespace


IExceptionItem Members

The IExceptionItem type exposes the following members.

Properties

 | Name | Description
Public property | ClassName | Gets the class name of where the error occurred.
Public property | ErrorNumber | Gets the error number.
Public property | ErrorType | Gets the type of the error.
Public property | Exception | Gets the exception.
Public property | File | Gets the file where the error occurred.
Public property | Line | Gets the line where the error occurred.
Public property | Message | Gets the error message/ reason.

See Also

IExceptionItem Interface
Walter.BOM Namespace


IExceptionItem Properties

The IExceptionItem type exposes the following members.

Properties

 | Name | Description
Public property | ClassName | Gets the class name of where the error occurred.
Public property | ErrorNumber | Gets the error number.
Public property | ErrorType | Gets the type of the error.
Public property | Exception | Gets the exception.
Public property | File | Gets the file where the error occurred.
Public property | Line | Gets the line where the error occurred.
Public property | Message | Gets the error message/ reason.

See Also

IExceptionItem Interface
Walter.BOM Namespace


ClassName Property

IExceptionItem..::..ClassName Property

Gets the class name of where the error occurred.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ClassName { get; }

Field Value

The class.

See Also

IExceptionItem Interface
Walter.BOM Namespace


ErrorNumber Property

IExceptionItem..::..ErrorNumber Property

Gets the error number.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int ErrorNumber { get; }

Field Value

The error number.

See Also

IExceptionItem Interface
Walter.BOM Namespace


ErrorType Property

IExceptionItem..::..ErrorType Property

Gets the type of the error.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ErrorType { get; }

Field Value

The type of the error.

See Also

IExceptionItem Interface
Walter.BOM Namespace


Exception Property

IExceptionItem..::..Exception Property

Gets the exception.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Exception { get; }

Field Value

The exception.

See Also

IExceptionItem Interface
Walter.BOM Namespace


File Property

IExceptionItem..::..File Property

Gets the file where the error occurred.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string File { get; }

Field Value

The file.

See Also

IExceptionItem Interface
Walter.BOM Namespace


Line Property

IExceptionItem..::..Line Property

Gets the line where the error occurred.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int Line { get; }

Field Value

The line.

See Also

IExceptionItem Interface
Walter.BOM Namespace


Message Property

IExceptionItem..::..Message Property

Gets the error message/ reason.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Message { get; }

Field Value

The message.

See Also

IExceptionItem Interface
Walter.BOM Namespace


IKeyRingKey Interface

Key ring entry holding a encryption key

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IKeyRingKey

See Also

IKeyRingKey Members
Walter.BOM Namespace


IKeyRingKey Members

The IKeyRingKey type exposes the following members.

Properties

 | Name | Description
Public property | Generated | date it was generated
Public property | Key | the cipher key
Public property | KeyNumber | the key number

See Also

IKeyRingKey Interface
Walter.BOM Namespace


IKeyRingKey Properties

The IKeyRingKey type exposes the following members.

Properties

 | Name | Description
Public property | Generated | date it was generated
Public property | Key | the cipher key
Public property | KeyNumber | the key number

See Also

IKeyRingKey Interface
Walter.BOM Namespace


Generated Property

IKeyRingKey..::..Generated Property

date it was generated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
DateTime Generated { get; set; }

See Also

IKeyRingKey Interface
Walter.BOM Namespace


Key Property

IKeyRingKey..::..Key Property

the cipher key

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Key { get; set; }

See Also

IKeyRingKey Interface
Walter.BOM Namespace


KeyNumber Property

IKeyRingKey..::..KeyNumber Property

the key number

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
long KeyNumber { get; set; }

See Also

IKeyRingKey Interface
Walter.BOM Namespace


ILicense Interface

License structure used by all products like firewall, mail server, identity protection and GDPR tools

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface ILicense

See Also

ILicense Members
Walter.BOM Namespace


ILicense Members

The ILicense type exposes the following members.

Properties

 | Name | Description
Public property | CompanyId | Gets the company identifier.
Public property | Contacts | Gets the contacts.
Public property | Domain | Gets the domain licensed (if per domain).
Public property | Expires | Gets the expires.
Public property | LicenseId | Gets the license identifier.
Public property | LicenseToken | Gets the license token.

See Also

ILicense Interface
Walter.BOM Namespace


ILicense Properties

The ILicense type exposes the following members.

Properties

 | Name | Description
Public property | CompanyId | Gets the company identifier.
Public property | Contacts | Gets the contacts.
Public property | Domain | Gets the domain licensed (if per domain).
Public property | Expires | Gets the expires.
Public property | LicenseId | Gets the license identifier.
Public property | LicenseToken | Gets the license token.

See Also

ILicense Interface
Walter.BOM Namespace


CompanyId Property

ILicense..::..CompanyId Property

Gets the company identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int CompanyId { get; }

Field Value

The company identifier.

See Also

ILicense Interface
Walter.BOM Namespace


Contacts Property

ILicense..::..Contacts Property

Gets the contacts.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
ICollection<int> Contacts { get; }

Field Value

The contacts.

See Also

ILicense Interface
Walter.BOM Namespace


Domain Property

ILicense..::..Domain Property

Gets the domain licensed (if per domain).

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IDomain Domain { get; }

Field Value

The domain.

See Also

ILicense Interface
Walter.BOM Namespace


Expires Property

ILicense..::..Expires Property

Gets the expires.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
DateTime Expires { get; }

Field Value

The expires.

See Also

ILicense Interface
Walter.BOM Namespace


LicenseId Property

ILicense..::..LicenseId Property

Gets the license identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int LicenseId { get; }

Field Value

The license identifier.

See Also

ILicense Interface
Walter.BOM Namespace


LicenseToken Property

ILicense..::..LicenseToken Property

Gets the license token.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string LicenseToken { get; }

Field Value

The license token.

See Also

ILicense Interface
Walter.BOM Namespace


ILicensedDomain Interface

Interface ILicensedDomain

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface ILicensedDomain

See Also

ILicensedDomain Members
Walter.BOM Namespace


ILicensedDomain Members

The ILicensedDomain type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationTag | Gets or sets the application tag.
Public property | DomainName | Gets or sets the name of the domain.

See Also

ILicensedDomain Interface
Walter.BOM Namespace


ILicensedDomain Properties

The ILicensedDomain type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationTag | Gets or sets the application tag.
Public property | DomainName | Gets or sets the name of the domain.

See Also

ILicensedDomain Interface
Walter.BOM Namespace


ApplicationTag Property

ILicensedDomain..::..ApplicationTag Property

Gets or sets the application tag.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
string ApplicationTag { get; }

Field Value

The application tag.

See Also

ILicensedDomain Interface
Walter.BOM Namespace


DomainName Property

ILicensedDomain..::..DomainName Property

Gets or sets the name of the domain.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
Uri DomainName { get; }

Field Value

The name of the domain.

See Also

ILicensedDomain Interface
Walter.BOM Namespace


ILicenseKey(T) Interface

ILicenseKey<(Of <(<'T>)>)> Interface

The license key storage object

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface ILicenseKey<T>
where T : Enum

Type Parameters

T

See Also

ILicenseKey Members
Walter.BOM Namespace


ILicenseKey Members

The ILicenseKey<(Of <(<'T>)>)> type exposes the following members.

Properties

 | Name | Description
Public property | Domain | The domain
Public property | Expires | The date the license expires
Public property | InDebugger | Indicates that the license hosts a debug session
Public property | LicenseLevel | Gets or sets the license level.
Public property | LicenseToken | license token
Public property | Status | Gets the status of the license.

Events

 | Name | Description
Public event | LicenseLevelChanged | triggered when the license level get's updated

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


ILicenseKey Properties

The ILicenseKey<(Of <(<'T>)>)> type exposes the following members.

Properties

 | Name | Description
Public property | Domain | The domain
Public property | Expires | The date the license expires
Public property | InDebugger | Indicates that the license hosts a debug session
Public property | LicenseLevel | Gets or sets the license level.
Public property | LicenseToken | license token
Public property | Status | Gets the status of the license.

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


Domain Property

ILicenseKey<(Of <(<'T>)>)>..::..Domain Property

The domain

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IDomain Domain { get; }

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


Expires Property

ILicenseKey<(Of <(<'T>)>)>..::..Expires Property

The date the license expires

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<DateTime> Expires { get; }

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


InDebugger Property

ILicenseKey<(Of <(<'T>)>)>..::..InDebugger Property

Indicates that the license hosts a debug session

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool InDebugger { get; }

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


LicenseLevel Property

ILicenseKey<(Of <(<'T>)>)>..::..LicenseLevel Property

Gets or sets the license level.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
T LicenseLevel { get; }

Field Value

The license level.

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


LicenseToken Property

ILicenseKey<(Of <(<'T>)>)>..::..LicenseToken Property

license token

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string LicenseToken { get; set; }

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


Status Property

ILicenseKey<(Of <(<'T>)>)>..::..Status Property

Gets the status of the license.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
LicenseStatus Status { get; }

Field Value

The status.

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


ILicenseKey Events

The ILicenseKey<(Of <(<'T>)>)> type exposes the following members.

Events

 | Name | Description
Public event | LicenseLevelChanged | triggered when the license level get's updated

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


LicenseLevelChanged Event

ILicenseKey<(Of <(<'T>)>)>..::..LicenseLevelChanged Event

triggered when the license level get's updated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
event EventHandler<EventArgs> LicenseLevelChanged

See Also

ILicenseKey<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


IncidentAssertType Enumeration

Incident type

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum IncidentAssertType

Members

Member name | Description
NotSet | The type was not set
Referrer | The referrer value provided
UserHeaderSalt | Salt header value
UserCookieSalt | Salt cookie value
SessionTrackingHeader | FireWall Session ID in header
SessionTrackingCookie | FireWall Session in Cookie
AddHockRequests | Request to resource from outside of the domain like links to documents images etc
ScrubbingPageLoads | data load vs allowed loads
ScrubbingTimeSpan | Timespan of measuring data load counts
HidRatePageLoads | Page load vs allowed loads
HitRateTimeSpan | Timespan of measuring page load counts
DDOSPageLoads | Requests vs allowed requests
DDOSTimeSpan | Timespan of measuring request counts
BlockDurationExpires | The blocking duration expires on provided date
RefreshRatePageLoads | The page was refreshed more often than allowed
PenetrationAttempt | The url contains a SQL or script injection
WrongAccessMethod | Wrong way of accessing an endpoint, can be that a HttpGet was used on a HttpPost endpoint
WrongAccessLocation | the geographical location from where the resource was requested is not supposed to access the resource
SessionTrackingCookieSet | indicate if optional cookie was used when tracking session cookie values
UserCookieSaltSet | indicate if optional cookie was used when tracking user salt cookie values
Pattern | the pattern discovered to be in violation
Location | the location where the pattern was found to be in violation
RuleNr | an optional rule number detailing the reason
RequestersAssociations | The request is not associated in the right way with the user validated via the PageRequestId
WrongUserType | The user accessing the resource is not associated with the correct group
MaximumViolations | Maximum violations reached
Model | The endpoint expected a model but none where provided
UserGenerated | User generated incident type and will contain the rule supplied by the user code
RepeatViolator | the requester is doing repeated violations
Report | special type showing the whole incident report of the users session
SiteMapStatus | SiteMap status
PageState | Page/ request status
AgentsConsideredMalicious | Bad user agent
PoisonedCookies | Incident created due to cookie poisoning
PortScann | The indecent is of type port scan indicating that the user tried to access a non-intended port
InternetServiceProviderBlocksUserAgent | The Internet service provider is blocked
TCPResetAttack | The source used a ResetAttack to block the application
Blacklisted | The user, IP address, or ISP was blacklisted
ViolatedCSPDirective | The violated directive in the report
EffectiveCSPDirective | the effective CSP directive on the page
HoneyPotPortUsers | Detected User using HoneyPot

See Also

Walter.BOM Namespace


InterceptLocations Enumeration

Enum InterceptLocations describes where a interception is taking place

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum InterceptLocations

Members

Member name | Description
None | NoIntercept
InApp | The in application
InAppIIS | In IIS IP address and Domain Restrictions for the application
ExternalFireWall | The external firewall
InServerlIIS | The global IIS
EMailOperator | The e mail operator will manually process the intercept request
ILogger | The logger class used
EventLog | The windows eventlog
ActiveDirectory | The active directory

See Also

Walter.BOM Namespace


IPAddressConverter Class

Class IPAddressConverter. This class cannot be inherited. Implements the [Newtonsoft.Json.JsonConverter]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class IPAddressConverter

See Also

IPAddressConverter Members
Walter.BOM Namespace
[Newtonsoft.Json.JsonConverter]


IPAddressConverter Members

The IPAddressConverter type exposes the following members.

Methods

 | Name | Description
Public method | CanConvert | Determines whether this instance can convert the specified object type.
Public method | ReadJson | Reads the JSON representation of the object.
Public method | WriteJson | Writes the JSON representation of the object.

See Also

IPAddressConverter Class
Walter.BOM Namespace


IPAddressConverter Methods

The IPAddressConverter type exposes the following members.

Methods

 | Name | Description
Public method | CanConvert | Determines whether this instance can convert the specified object type.
Public method | ReadJson | Reads the JSON representation of the object.
Public method | WriteJson | Writes the JSON representation of the object.

See Also

IPAddressConverter Class
Walter.BOM Namespace


CanConvert Method

IPAddressConverter..::..CanConvert Method

Determines whether this instance can convert the specified object type.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool CanConvert(
    Type objectType
)

Parameters

objectType
Type: Type
Type of the object.

Return Value

true if this instance can convert the specified object type; otherwise, false.

See Also

IPAddressConverter Class
Walter.BOM Namespace


ReadJson Method

IPAddressConverter..::..ReadJson Method

Reads the JSON representation of the object.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Object ReadJson(
    JsonReader reader,
    Type objectType,
    Nullable<Object> existingValue,
    JsonSerializer serializer
)

Parameters

reader
Type: JsonReader
The JsonReader to read from.
objectType
Type: Type
Type of the object.
existingValue
Type: Nullable <(Of <(<' Object >)>)>
The existing value of object being read.
serializer
Type: JsonSerializer
The calling serializer.

Return Value

The object value.

See Also

IPAddressConverter Class
Walter.BOM Namespace


WriteJson Method

IPAddressConverter..::..WriteJson Method

Writes the JSON representation of the object.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public void WriteJson(
    JsonWriter writer,
    Nullable<Object> value,
    JsonSerializer serializer
)

Parameters

writer
Type: JsonWriter
The JsonWriter to write to.
value
Type: Nullable <(Of <(<' Object >)>)>
The value.
serializer
Type: JsonSerializer
The calling serializer.

See Also

IPAddressConverter Class
Walter.BOM Namespace


IParse(T) Interface

IParse<(Of <(<'T>)>)> Interface

Implements parse

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IParse<T>

Type Parameters

T
the type to parse

See Also

IParse Members
Walter.BOM Namespace


IParse Members

The IParse<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

IParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


IParse Methods

The IParse<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

IParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


SetId Method

IParse<(Of <(<'T>)>)>..::..SetId Method

Sets the technical identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

IParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


SetValues Method

IParse<(Of <(<'T>)>)>..::..SetValues Method

Sets the specified values array.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

IParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


ToString Method

IParse<(Of <(<'T>)>)>..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ToString()

Return Value

A [System.String] that represents this instance.

See Also

IParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


IParse(T1, T2) Interface

IParse<(Of <(<'T1, T2>)>)> Interface

Interface IParse Implements the IParse<(Of <(<'T>)>)>

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IParse<T1, T2> : IParse<T2>

Type Parameters

T1
The type of the t1.
T2
The type of the t2.

See Also

IParse Members
Walter.BOM Namespace
Walter.BOM..::..IParse<(Of <(<'T>)>)>


IParse Members

The IParse<(Of <(<'T1, T2>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | Create | Creates T1 based on this instance.

See Also

IParse<(Of <(<'T1, T2>)>)> Interface
Walter.BOM Namespace


IParse Methods

The IParse<(Of <(<'T1, T2>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | Create | Creates T1 based on this instance.

See Also

IParse<(Of <(<'T1, T2>)>)> Interface
Walter.BOM Namespace


Create Method

IParse<(Of <(<'T1, T2>)>)>..::..Create Method

Creates T1 based on this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
T1 Create()

Return Value

T1.

See Also

IParse<(Of <(<'T1, T2>)>)> Interface
Walter.BOM Namespace


IPopulate(T) Interface

IPopulate<(Of <(<'T>)>)> Interface

Interface IPopulate

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IPopulate<T>

Type Parameters

T

See Also

IPopulate Members
Walter.BOM Namespace


IPopulate Members

The IPopulate<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | Populate | Populates the specified item.

See Also

IPopulate<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


IPopulate Methods

The IPopulate<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | Populate | Populates the specified item.

See Also

IPopulate<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


Populate Method

IPopulate<(Of <(<'T>)>)>..::..Populate Method

Populates the specified item.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void Populate(
    ref T item,
    string json,
    JsonSerializerSettings settings
)

Parameters

item
Type: T %
The item.
json
Type: String
The json.
settings
Type: JsonSerializerSettings
The settings.

See Also

IPopulate<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


IRepositoryStorageLocation Interface

Interface used to instrument storage location of a given repository data source

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IRepositoryStorageLocation

See Also

IRepositoryStorageLocation Members
Walter.BOM Namespace


IRepositoryStorageLocation Members

The IRepositoryStorageLocation type exposes the following members.

Properties

 | Name | Description
Public property | Details | Details of where stored
Public property | StorageLocation | the location used for storing firewall data

See Also

IRepositoryStorageLocation Interface
Walter.BOM Namespace


IRepositoryStorageLocation Properties

The IRepositoryStorageLocation type exposes the following members.

Properties

 | Name | Description
Public property | Details | Details of where stored
Public property | StorageLocation | the location used for storing firewall data

See Also

IRepositoryStorageLocation Interface
Walter.BOM Namespace


Details Property

IRepositoryStorageLocation..::..Details Property

Details of where stored

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Details { get; }

See Also

IRepositoryStorageLocation Interface
Walter.BOM Namespace


StorageLocation Property

IRepositoryStorageLocation..::..StorageLocation Property

the location used for storing firewall data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
StorageLocations StorageLocation { get; }

See Also

IRepositoryStorageLocation Interface
Walter.BOM Namespace


IToDoItem Interface

A to-do item for those hosting the firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IToDoItem

See Also

IToDoItem Members
Walter.BOM Namespace


IToDoItem Members

The IToDoItem type exposes the following members.

Properties

 | Name | Description
Public property | CreatedUtc | Gets the created UTC.
Public property | IsException | Gets a value indicating whether this instance is exception.
Public property | IsOptional | Gets a value indicating whether this IToDoItem is optional.
Public property | Reason | Gets the reason why the task needs to be executed.
Public property | Task | Gets the task thats needs to be executed.

See Also

IToDoItem Interface
Walter.BOM Namespace


IToDoItem Properties

The IToDoItem type exposes the following members.

Properties

 | Name | Description
Public property | CreatedUtc | Gets the created UTC.
Public property | IsException | Gets a value indicating whether this instance is exception.
Public property | IsOptional | Gets a value indicating whether this IToDoItem is optional.
Public property | Reason | Gets the reason why the task needs to be executed.
Public property | Task | Gets the task thats needs to be executed.

See Also

IToDoItem Interface
Walter.BOM Namespace


CreatedUtc Property

IToDoItem..::..CreatedUtc Property

Gets the created UTC.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
DateTime CreatedUtc { get; }

Field Value

The created UTC.

See Also

IToDoItem Interface
Walter.BOM Namespace


IsException Property

IToDoItem..::..IsException Property

Gets a value indicating whether this instance is exception.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool IsException { get; }

Field Value

true if this instance is exception; otherwise, false.

See Also

IToDoItem Interface
Walter.BOM Namespace


IsOptional Property

IToDoItem..::..IsOptional Property

Gets a value indicating whether this IToDoItem is optional.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool IsOptional { get; }

Field Value

true if optional; otherwise, false.

See Also

IToDoItem Interface
Walter.BOM Namespace


Reason Property

IToDoItem..::..Reason Property

Gets the reason why the task needs to be executed.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Reason { get; }

Field Value

The reason.

See Also

IToDoItem Interface
Walter.BOM Namespace


Task Property

IToDoItem..::..Task Property

Gets the task thats needs to be executed.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Enum Task { get; }

Field Value

The task.

See Also

IToDoItem Interface
Walter.BOM Namespace


ITryParse(T) Interface

ITryParse<(Of <(<'T>)>)> Interface

Implements try parse

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface ITryParse<T>

Type Parameters

T
the type to parse

See Also

ITryParse Members
Walter.BOM Namespace


ITryParse Members

The ITryParse<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

ITryParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


ITryParse Methods

The ITryParse<(Of <(<'T>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

ITryParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


ToString Method

ITryParse<(Of <(<'T>)>)>..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ToString()

Return Value

A [System.String] that represents this instance.

See Also

ITryParse<(Of <(<'T>)>)> Interface
Walter.BOM Namespace


IUserScreen Interface

Users screen definition. this is helpful to identify user displays and also mostly not implemented by bots. if a given screen does not make sense the system will generate a IsBOT flag.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IUserScreen

See Also

IUserScreen Members
Walter.BOM Namespace


IUserScreen Members

The IUserScreen type exposes the following members.

Properties

 | Name | Description
Public property | ColorDepth | Gets the color depth of the screen.
Public property | Height | Gets the height of the users screen.
Public property | Orientation | Gets the orientation of the screen.
Public property | OrientationChanged | Is true if the firewall detected a screen orientation change
Public property | PixelDepth | Gets the pixel depth of the screen.
Public property | Scrollbars | Gets a value indicating whether this IUserScreen is scrollbars showing scrollbars on a given page.
Public property | UseTouchScreen | Is true if the firewall detected a user used touch as input
Public property | Width | Gets the width of the users screen.

See Also

IUserScreen Interface
Walter.BOM Namespace


IUserScreen Properties

The IUserScreen type exposes the following members.

Properties

 | Name | Description
Public property | ColorDepth | Gets the color depth of the screen.
Public property | Height | Gets the height of the users screen.
Public property | Orientation | Gets the orientation of the screen.
Public property | OrientationChanged | Is true if the firewall detected a screen orientation change
Public property | PixelDepth | Gets the pixel depth of the screen.
Public property | Scrollbars | Gets a value indicating whether this IUserScreen is scrollbars showing scrollbars on a given page.
Public property | UseTouchScreen | Is true if the firewall detected a user used touch as input
Public property | Width | Gets the width of the users screen.

See Also

IUserScreen Interface
Walter.BOM Namespace


ColorDepth Property

IUserScreen..::..ColorDepth Property

Gets the color depth of the screen.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int ColorDepth { get; }

Field Value

The color depth.

See Also

IUserScreen Interface
Walter.BOM Namespace


Height Property

IUserScreen..::..Height Property

Gets the height of the users screen.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int Height { get; }

Field Value

The height.

See Also

IUserScreen Interface
Walter.BOM Namespace


Orientation Property

IUserScreen..::..Orientation Property

Gets the orientation of the screen.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
ScreenOrientations Orientation { get; }

Field Value

The orientation.

See Also

IUserScreen Interface
Walter.BOM Namespace


OrientationChanged Property

IUserScreen..::..OrientationChanged Property

Is true if the firewall detected a screen orientation change

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool OrientationChanged { get; }

See Also

IUserScreen Interface
Walter.BOM Namespace


PixelDepth Property

IUserScreen..::..PixelDepth Property

Gets the pixel depth of the screen.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int PixelDepth { get; }

Field Value

The pixel depth.

See Also

IUserScreen Interface
Walter.BOM Namespace


Scrollbars Property

IUserScreen..::..Scrollbars Property

Gets a value indicating whether this IUserScreen is scrollbars showing scrollbars on a given page.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool Scrollbars { get; }

Field Value

true if scrollbars; otherwise, false.

See Also

IUserScreen Interface
Walter.BOM Namespace


UseTouchScreen Property

IUserScreen..::..UseTouchScreen Property

Is true if the firewall detected a user used touch as input

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool UseTouchScreen { get; }

See Also

IUserScreen Interface
Walter.BOM Namespace


Width Property

IUserScreen..::..Width Property

Gets the width of the users screen.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int Width { get; }

Field Value

The width.

See Also

IUserScreen Interface
Walter.BOM Namespace


KnownIntentions Enumeration

Enum KnownBotIntentions

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum KnownIntentions

Members

Member name | Description
None | The nature of its intentions are is not known
Assigned | An assigned value and not assumed by the system
DataMining | The bot is known to performs data mining
PortScanner | The bot is known to performs port scanner
BrandProtection | The bot is known to performs brand protection
HackerTool | A known hacker tool
FileGrabber | A file grabber
Developer | A Developer
ReplayAgent | a piece of software used to generate, execute and record web request
IndexingAgent | Indexing data, pages or other artifacts
ViewPage | viewing a page
GainSystemAccess | tries to gain system access

See Also

Walter.BOM Namespace


LicensedDomain Class

Class LicensedDomain.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class LicensedDomain : ILicensedDomain

See Also

LicensedDomain Members
Walter.BOM Namespace


LicensedDomain Members

The LicensedDomain type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationTag | Gets or sets the application asset tag.
Public property | DomainName | Gets or sets the name of the domain that is licensed.

See Also

LicensedDomain Class
Walter.BOM Namespace


LicensedDomain Properties

The LicensedDomain type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationTag | Gets or sets the application asset tag.
Public property | DomainName | Gets or sets the name of the domain that is licensed.

See Also

LicensedDomain Class
Walter.BOM Namespace


ApplicationTag Property

LicensedDomain..::..ApplicationTag Property

Gets or sets the application asset tag.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string ApplicationTag { get; set; }

Field Value

The application tag.

See Also

LicensedDomain Class
Walter.BOM Namespace


DomainName Property

LicensedDomain..::..DomainName Property

Gets or sets the name of the domain that is licensed.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Uri DomainName { get; set; }

Field Value

The name of the domain.

See Also

LicensedDomain Class
Walter.BOM Namespace


LicenseStatus Enumeration

the license status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[HelpTopicAttribute]
public enum LicenseStatus

Members

Member name | Description
NotUsed | The not used
PendingPayment | The pending payment status
Payed | The payed status
Expired | The expired status
Discontinued | The discontinued status
LicenseKeyOrDomainKeyWrong | The license key or domain key are wrong (tampering)
ServerNotLicensed | The server is not licensed
LicenseRequestPending | License request is pending confirmation

See Also

Walter.BOM Namespace


LicenseViolationErrorException(T) Class

LicenseViolationErrorException<(Of <(<'T>)>)> Class

Class LicenseViolationError. Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class LicenseViolationErrorException<T>
where T : Enum

Type Parameters

T

See Also

LicenseViolationErrorException<(Of <(<'T>)>)> Members
Walter.BOM Namespace


LicenseViolationErrorException(T) Members

LicenseViolationErrorException<(Of <(<'T>)>)> Members

The LicenseViolationErrorException<(Of <(<'T>)>)> type exposes the following members.

Constructors

 | Name | Description
Public method | LicenseViolationErrorException<(Of <(<'T>)>)> | Creates a license violation error message for a given license product class.

Properties

 | Name | Description
Public property | Licensed | Gets the licensed.
Public property | LicenseNeeded | Gets the license needed.

See Also

LicenseViolationErrorException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


LicenseViolationErrorException(T) Constructor

LicenseViolationErrorException<(Of <(<'T>)>)> Constructor

Creates a license violation error message for a given license product class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public LicenseViolationErrorException(
    T licenseLevel,
    T licensed
)

Parameters

licenseLevel
Type: T
The license level needed.
licensed
Type: T
The licensed obtained.

See Also

LicenseViolationErrorException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


LicenseViolationErrorException(T) Properties

LicenseViolationErrorException<(Of <(<'T>)>)> Properties

The LicenseViolationErrorException<(Of <(<'T>)>)> type exposes the following members.

Properties

 | Name | Description
Public property | Licensed | Gets the licensed.
Public property | LicenseNeeded | Gets the license needed.

See Also

LicenseViolationErrorException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


Licensed Property

LicenseViolationErrorException<(Of <(<'T>)>)>..::..Licensed Property

Gets the licensed.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public T Licensed { get; }

Field Value

The licensed.

See Also

LicenseViolationErrorException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


LicenseNeeded Property

LicenseViolationErrorException<(Of <(<'T>)>)>..::..LicenseNeeded Property

Gets the license needed.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public T LicenseNeeded { get; }

Field Value

The license needed.

See Also

LicenseViolationErrorException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


LinkType Enumeration

Enum LinkType shows the type of resource that is referenced

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum LinkType

Members

Member name | Description
UnKnown | The resource is not known and therefore will become an issue when evaluated. default assumptions will be made
Page | The item is a page and may consume other link types. the Page is the root and usually is an action
Resource | A resource used by the system, could be a embedded javascript or other resource. Requesting a resource without a page will trigger the firewall
ApiEndpoint | The API endpoint calls a enumerable or single answer like a HTTP status
JsonEndpoint | The endpoint returns JSON object
PhysicalFile | Indicates that the items maps to a file on disk
VirualFile | A file that is created at runtime
NotAssigned | access to the link type was done but the endpoint was not found in the firewall's runtime database
HoneyPotResponse | The honey pot response

See Also

Walter.BOM Namespace


Location Structure

A address entry that can be used by 1 or more location aware objects

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public struct Location

See Also

Location Members
Walter.BOM Namespace


Location Members

The Location type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Location) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | City | Gets or sets the city.
Public property | Country | Gets or sets the country.
Public property | LocationId | Gets or sets the location identifier.
Public property | PostalCode | Gets or sets the postal code.
Public property | PrimaryEmailContact | Gets or sets the primary contact.
Public property | State | Gets or sets the state.
Public property | Street | Gets or sets the street.

See Also

Location Structure
Walter.BOM Namespace


Location Methods

The Location type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Location) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

Location Structure
Walter.BOM Namespace


Equals Method

Location..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Location) | Indicates whether the current object is equal to another object of the same type.

See Also

Location Structure
Location Members
Walter.BOM Namespace


Equals Method (Nullable(Object))

Location..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

Location Structure
Equals Overload
Walter.BOM Namespace


Equals Method (Location)

Location..::..Equals Method (Location)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Location other
)

Parameters

other
Type: Walter.BOM..::..Location
An object to compare with this object.

Return Value

true if the current object is equal to the other parameter; otherwise, false.

See Also

Location Structure
Equals Overload
Walter.BOM Namespace


GetHashCode Method

Location..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

Location Structure
Walter.BOM Namespace


Location Operators

The Location type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

Location Structure
Walter.BOM Namespace


Equality Operator

Location..::..Equality Operator

Implements the == operator.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool operator ==(
    Location left,
    Location right
)

Parameters

left
Type: Walter.BOM..::..Location
The left.
right
Type: Walter.BOM..::..Location
The right.

Return Value

The result of the operator.

See Also

Location Structure
Walter.BOM Namespace


Inequality Operator

Location..::..Inequality Operator

Implements the != operator.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool operator !=(
    Location left,
    Location right
)

Parameters

left
Type: Walter.BOM..::..Location
The left.
right
Type: Walter.BOM..::..Location
The right.

Return Value

The result of the operator.

See Also

Location Structure
Walter.BOM Namespace


Location Properties

The Location type exposes the following members.

Properties

 | Name | Description
Public property | City | Gets or sets the city.
Public property | Country | Gets or sets the country.
Public property | LocationId | Gets or sets the location identifier.
Public property | PostalCode | Gets or sets the postal code.
Public property | PrimaryEmailContact | Gets or sets the primary contact.
Public property | State | Gets or sets the state.
Public property | Street | Gets or sets the street.

See Also

Location Structure
Walter.BOM Namespace


City Property

Location..::..City Property

Gets or sets the city.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string City { get; set; }

Field Value

The city.

See Also

Location Structure
Walter.BOM Namespace


Country Property

Location..::..Country Property

Gets or sets the country.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public GeoLocation Country { get; set; }

Field Value

The country.

See Also

Location Structure
Walter.BOM Namespace


LocationId Property

Location..::..LocationId Property

Gets or sets the location identifier.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int LocationId { get; set; }

Field Value

The location identifier.

See Also

Location Structure
Walter.BOM Namespace


PostalCode Property

Location..::..PostalCode Property

Gets or sets the postal code.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string PostalCode { get; set; }

Field Value

The postal code.

See Also

Location Structure
Walter.BOM Namespace


PrimaryEmailContact Property

Location..::..PrimaryEmailContact Property

Gets or sets the primary contact.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string PrimaryEmailContact { get; set; }

Field Value

The primary contact.

See Also

Location Structure
Walter.BOM Namespace


State Property

Location..::..State Property

Gets or sets the state.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string State { get; set; }

Field Value

The state.

See Also

Location Structure
Walter.BOM Namespace


Street Property

Location..::..Street Property

Gets or sets the street.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Street { get; set; }

Field Value

The street.

See Also

Location Structure
Walter.BOM Namespace


LogEvents Class

Error codes used by the applications

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class LogEvents

See Also

LogEvents Members
Walter.BOM Namespace


LogEvents Members

The LogEvents type exposes the following members.

Properties

Name | Description
BOM_ToDo | TO-DO Configuration activity recommended
Cypher_DataTampered | Data tampering detected
DATA_BulkFail | BULK IMPORT FAILED
DATA_Configuration | Gets the data configuration error.
DATA_EventFailed | Indicates that a user event has caused an error
FireWall_ActionParametersNotProvided | Action Parameters Not Provided
FireWall_Attack_Pattern | Firewall detected a penetration attempt
FireWall_CookieCountBad | Cookie count is not the same as the cookies send on previous request
FireWall_DataCorrupt | Data became corrupt
FireWall_GuardAction | Firewall triggered a guard action event
FireWall_Incident | Firewall triggered a guard action event
FireWall_Info | General Information
FireWall_License | License error for firewall
FireWall_Warning | General Warning
IO_FileChanged | File successfully changed or removed
IO_MonitoringPathFailed | Could not monitor path
IO_RemoveFailed | Could not remove file
IO_SaveFileFailed | Updating file failed
IO_UserCodeFailed | User code failed
NET_Service_Event | User event caused the service to crash
SMTP_NoMailConfigured | BULK IMPORT FAILED
TALKING_Port_Access_Sniffed | Suspicious communication detected
TALKING_Port_Access_TimeOut | Suspicious communication detected
TALKING_Service_Upgrade_Failed | Database storage update failed

See Also

LogEvents Class
Walter.BOM Namespace


LogEvents Properties

The LogEvents type exposes the following members.

Properties

Name | Description
BOM_ToDo | TO-DO Configuration activity recommended
Cypher_DataTampered | Data tampering detected
DATA_BulkFail | BULK IMPORT FAILED
DATA_Configuration | Gets the data configuration error.
DATA_EventFailed | Indicates that a user event has caused an error
FireWall_ActionParametersNotProvided | Action Parameters Not Provided
FireWall_Attack_Pattern | Firewall detected a penetration attempt
FireWall_CookieCountBad | Cookie count is not the same as the cookies send on previous request
FireWall_DataCorrupt | Data became corrupt
FireWall_GuardAction | Firewall triggered a guard action event
FireWall_Incident | Firewall triggered a guard action event
FireWall_Info | General Information
FireWall_License | License error for firewall
FireWall_Warning | General Warning
IO_FileChanged | File successfully changed or removed
IO_MonitoringPathFailed | Could not monitor path
IO_RemoveFailed | Could not remove file
IO_SaveFileFailed | Updating file failed
IO_UserCodeFailed | User code failed
NET_Service_Event | User event caused the service to crash
SMTP_NoMailConfigured | BULK IMPORT FAILED
TALKING_Port_Access_Sniffed | Suspicious communication detected
TALKING_Port_Access_TimeOut | Suspicious communication detected
TALKING_Service_Upgrade_Failed | Database storage update failed

See Also

LogEvents Class
Walter.BOM Namespace


BOM_ToDo Property

LogEvents..::..BOM_ToDo Property

TO-DO Configuration activity recommended

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId BOM_ToDo { get; }

See Also

LogEvents Class
Walter.BOM Namespace


Cypher_DataTampered Property

LogEvents..::..Cypher_DataTampered Property

Data tampering detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId Cypher_DataTampered { get; }

See Also

LogEvents Class
Walter.BOM Namespace


DATA_BulkFail Property

LogEvents..::..DATA_BulkFail Property

BULK IMPORT FAILED

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId DATA_BulkFail { get; }

See Also

LogEvents Class
Walter.BOM Namespace


DATA_Configuration Property

LogEvents..::..DATA_Configuration Property

Gets the data configuration error.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId DATA_Configuration { get; }

Field Value

The data configuration.

See Also

LogEvents Class
Walter.BOM Namespace


DATA_EventFailed Property

LogEvents..::..DATA_EventFailed Property

Indicates that a user event has caused an error

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId DATA_EventFailed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_ActionParametersNotProvided Property

LogEvents..::..FireWall_ActionParametersNotProvided Property

Action Parameters Not Provided

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_ActionParametersNotProvided { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_Attack_Pattern Property

LogEvents..::..FireWall_Attack_Pattern Property

Firewall detected a penetration attempt

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_Attack_Pattern { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_CookieCountBad Property

LogEvents..::..FireWall_CookieCountBad Property

Cookie count is not the same as the cookies send on previous request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_CookieCountBad { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_DataCorrupt Property

LogEvents..::..FireWall_DataCorrupt Property

Data became corrupt

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_DataCorrupt { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_GuardAction Property

LogEvents..::..FireWall_GuardAction Property

Firewall triggered a guard action event

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_GuardAction { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_Incident Property

LogEvents..::..FireWall_Incident Property

Firewall triggered a guard action event

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_Incident { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_Info Property

LogEvents..::..FireWall_Info Property

General Information

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_Info { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_License Property

LogEvents..::..FireWall_License Property

License error for firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_License { get; }

See Also

LogEvents Class
Walter.BOM Namespace


FireWall_Warning Property

LogEvents..::..FireWall_Warning Property

General Warning

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId FireWall_Warning { get; }

See Also

LogEvents Class
Walter.BOM Namespace


IO_FileChanged Property

LogEvents..::..IO_FileChanged Property

File successfully changed or removed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId IO_FileChanged { get; }

See Also

LogEvents Class
Walter.BOM Namespace


IO_MonitoringPathFailed Property

LogEvents..::..IO_MonitoringPathFailed Property

Could not monitor path

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId IO_MonitoringPathFailed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


IO_RemoveFailed Property

LogEvents..::..IO_RemoveFailed Property

Could not remove file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId IO_RemoveFailed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


IO_SaveFileFailed Property

LogEvents..::..IO_SaveFileFailed Property

Updating file failed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId IO_SaveFileFailed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


IO_UserCodeFailed Property

LogEvents..::..IO_UserCodeFailed Property

User code failed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId IO_UserCodeFailed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


NET_Service_Event Property

LogEvents..::..NET_Service_Event Property

User event caused the service to crash

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId NET_Service_Event { get; }

See Also

LogEvents Class
Walter.BOM Namespace


SMTP_NoMailConfigured Property

LogEvents..::..SMTP_NoMailConfigured Property

BULK IMPORT FAILED

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId SMTP_NoMailConfigured { get; }

See Also

LogEvents Class
Walter.BOM Namespace


TALKING_Port_Access_Sniffed Property

LogEvents..::..TALKING_Port_Access_Sniffed Property

Suspicious communication detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId TALKING_Port_Access_Sniffed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


TALKING_Port_Access_TimeOut Property

LogEvents..::..TALKING_Port_Access_TimeOut Property

Suspicious communication detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId TALKING_Port_Access_TimeOut { get; }

See Also

LogEvents Class
Walter.BOM Namespace


TALKING_Service_Upgrade_Failed Property

LogEvents..::..TALKING_Service_Upgrade_Failed Property

Database storage update failed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static EventId TALKING_Service_Upgrade_Failed { get; }

See Also

LogEvents Class
Walter.BOM Namespace


ManagementTypes Enumeration

Enum ManagementType

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum ManagementTypes

Members

Member name | Description
None | The none
User | The user
IPAddress | The ip address
ISP | The isp
UserAgent | The user agent
Endpoint | The endpoint
Request | The request
Incident | The incident
PhishyRequest | The phishy request
Port | The port
Process | The process

See Also

Walter.BOM Namespace


NotImplementedByDesignException Class

Class NotImplementedByDesignException. Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class NotImplementedByDesignException

See Also

NotImplementedByDesignException Members
Walter.BOM Namespace
[System.Exception]


NotImplementedByDesignException Members

The NotImplementedByDesignException type exposes the following members.

Constructors

 | Name | Description
Public method | NotImplementedByDesignException()()()() | Initializes a new instance of the NotImplementedByDesignException class.
Public method | NotImplementedByDesignException(String) | Initializes a new instance of the NotImplementedByDesignException class.
Public method | NotImplementedByDesignException(String, Exception) | Initializes a new instance of the NotImplementedByDesignException class.

Properties

 | Name | Description
Public property | StackTrace | Gets a string representation of the immediate frames on the call stack.

See Also

NotImplementedByDesignException Class
Walter.BOM Namespace


NotImplementedByDesignException Constructor

Overload List

 | Name | Description
Public method | NotImplementedByDesignException()()()() | Initializes a new instance of the NotImplementedByDesignException class.
Public method | NotImplementedByDesignException(String) | Initializes a new instance of the NotImplementedByDesignException class.
Public method | NotImplementedByDesignException(String, Exception) | Initializes a new instance of the NotImplementedByDesignException class.

See Also

NotImplementedByDesignException Class
NotImplementedByDesignException Members
Walter.BOM Namespace


NotImplementedByDesignException Constructor

Initializes a new instance of the NotImplementedByDesignException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public NotImplementedByDesignException()

See Also

NotImplementedByDesignException Class
NotImplementedByDesignException Overload
Walter.BOM Namespace


NotImplementedByDesignException Constructor (String)

Initializes a new instance of the NotImplementedByDesignException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public NotImplementedByDesignException(
    string message
)

Parameters

message
Type: String
The message that describes the error.

See Also

NotImplementedByDesignException Class
NotImplementedByDesignException Overload
Walter.BOM Namespace


NotImplementedByDesignException Constructor (String, Exception)

Initializes a new instance of the NotImplementedByDesignException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public NotImplementedByDesignException(
    string message,
    Exception innerException
)

Parameters

message
Type: String
The error message that explains the reason for the exception.
innerException
Type: Exception
The exception that is the cause of the current exception, or a null reference (nullNothingnullptra null reference (Nothing in Visual Basic) in Visual Basic) if no inner exception is specified.

See Also

NotImplementedByDesignException Class
NotImplementedByDesignException Overload
Walter.BOM Namespace


NotImplementedByDesignException Properties

The NotImplementedByDesignException type exposes the following members.

Properties

 | Name | Description
Public property | StackTrace | Gets a string representation of the immediate frames on the call stack.

See Also

NotImplementedByDesignException Class
Walter.BOM Namespace


StackTrace Property

NotImplementedByDesignException..::..StackTrace Property

Gets a string representation of the immediate frames on the call stack.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string StackTrace { get; set; }

See Also

NotImplementedByDesignException Class
Walter.BOM Namespace


PropertyDoesNotAllowNullException Class

This exception is triggered to a property that does not allow null, empty strings or blank string to work properly Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class PropertyDoesNotAllowNullException

See Also

PropertyDoesNotAllowNullException Members
Walter.BOM Namespace
[System.Exception]


PropertyDoesNotAllowNullException Members

The PropertyDoesNotAllowNullException type exposes the following members.

Constructors

 | Name | Description
Public method | PropertyDoesNotAllowNullException(String) | Initializes a new instance of the PropertyDoesNotAllowNullException class.
Public method | PropertyDoesNotAllowNullException(String, String) | Initializes a new instance of the PropertyDoesNotAllowNullException class.

Properties

 | Name | Description
Public property | PropertyName | Gets the name of the property that caused the exception.

See Also

PropertyDoesNotAllowNullException Class
Walter.BOM Namespace


PropertyDoesNotAllowNullException Constructor

Overload List

 | Name | Description
Public method | PropertyDoesNotAllowNullException(String) | Initializes a new instance of the PropertyDoesNotAllowNullException class.
Public method | PropertyDoesNotAllowNullException(String, String) | Initializes a new instance of the PropertyDoesNotAllowNullException class.

See Also

PropertyDoesNotAllowNullException Class
PropertyDoesNotAllowNullException Members
Walter.BOM Namespace


PropertyDoesNotAllowNullException Constructor (String)

Initializes a new instance of the PropertyDoesNotAllowNullException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public PropertyDoesNotAllowNullException(
    string propertyName
)

Parameters

propertyName
Type: String
Name of the property that was assigned a non supported value.

See Also

PropertyDoesNotAllowNullException Class
PropertyDoesNotAllowNullException Overload
Walter.BOM Namespace


PropertyDoesNotAllowNullException Constructor (String, String)

Initializes a new instance of the PropertyDoesNotAllowNullException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public PropertyDoesNotAllowNullException(
    string propertyName,
    string errorMessage
)

Parameters

propertyName
Type: String
Name of the property.
errorMessage
Type: String
The error message.

See Also

PropertyDoesNotAllowNullException Class
PropertyDoesNotAllowNullException Overload
Walter.BOM Namespace


PropertyDoesNotAllowNullException Properties

The PropertyDoesNotAllowNullException type exposes the following members.

Properties

 | Name | Description
Public property | PropertyName | Gets the name of the property that caused the exception.

See Also

PropertyDoesNotAllowNullException Class
Walter.BOM Namespace


PropertyName Property

PropertyDoesNotAllowNullException..::..PropertyName Property

Gets the name of the property that caused the exception.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string PropertyName { get; }

Field Value

The name of the property.

See Also

PropertyDoesNotAllowNullException Class
Walter.BOM Namespace


RecoveryData Class

Data structure needed to recover ciphered data with old or temporary keys

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class RecoveryData

See Also

RecoveryData Members
Walter.BOM Namespace


RecoveryData Members

The RecoveryData type exposes the following members.

Constructors

 | Name | Description
Public method | RecoveryData(DateTime, RecoveryType, String, String) | Initializes a new instance of the RecoveryData struct.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(RecoveryData>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | SameRecovery | indicates that this type is the same where the only difference is the data

Properties

 | Name | Description
Public property | Name | Gets the name.
Public property | ProtectedKey | Gets the protected key.
Public property | RecoveryType | Gets the type of the recovery.
Public property | UtcDate | Gets the UTC date for when the password was used.

See Also

RecoveryData Class
Walter.BOM Namespace


RecoveryData Constructor (DateTime, RecoveryType, String, String)

Initializes a new instance of the RecoveryData struct.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public RecoveryData(
    DateTime utcDate,
    RecoveryType recoveryType,
    string name,
    string protectedKey
)

Parameters

utcDate
Type: DateTime
The UTC date.
recoveryType
Type: Walter.BOM..::..RecoveryType
Type of the recovery.
name
Type: String
The name.
protectedKey
Type: String
The protected key.

See Also

RecoveryData Class
#ctor Overload
Walter.BOM Namespace


RecoveryData Methods

The RecoveryData type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(RecoveryData>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | SameRecovery | indicates that this type is the same where the only difference is the data

See Also

RecoveryData Class
Walter.BOM Namespace


Equals Method

RecoveryData..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(RecoveryData>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

RecoveryData Class
RecoveryData Members
Walter.BOM Namespace


Equals Method (Nullable(Object))

RecoveryData..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

RecoveryData Class
Equals Overload
Walter.BOM Namespace


Equals Method (Nullable(RecoveryData))

RecoveryData..::..Equals Method (Nullable<(Of <(<'RecoveryData>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<RecoveryData> other
)

Parameters

other
Type: Nullable <(Of <(<' RecoveryData >)>)>
An object to compare with this object.

Return Value

true if the current object is equal to the other parameter; otherwise, false.

See Also

RecoveryData Class
Equals Overload
Walter.BOM Namespace


GetHashCode Method

RecoveryData..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

RecoveryData Class
Walter.BOM Namespace


SameRecovery Method

RecoveryData..::..SameRecovery Method

indicates that this type is the same where the only difference is the data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool SameRecovery(
    RecoveryType recoveryType,
    string name
)

Parameters

recoveryType
Type: Walter.BOM..::..RecoveryType
The type
name
Type: String
the name

Return Value

True avoiding duplicate recovery entries

See Also

RecoveryData Class
Walter.BOM Namespace


RecoveryData Properties

The RecoveryData type exposes the following members.

Properties

 | Name | Description
Public property | Name | Gets the name.
Public property | ProtectedKey | Gets the protected key.
Public property | RecoveryType | Gets the type of the recovery.
Public property | UtcDate | Gets the UTC date for when the password was used.

See Also

RecoveryData Class
Walter.BOM Namespace


Name Property

RecoveryData..::..Name Property

Gets the name.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Name { get; }

Field Value

The name.

See Also

RecoveryData Class
Walter.BOM Namespace


ProtectedKey Property

RecoveryData..::..ProtectedKey Property

Gets the protected key.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string ProtectedKey { get; }

Field Value

The protected key.

See Also

RecoveryData Class
Walter.BOM Namespace


RecoveryType Property

RecoveryData..::..RecoveryType Property

Gets the type of the recovery.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public RecoveryType RecoveryType { get; }

Field Value

The type of the recovery.

See Also

RecoveryData Class
Walter.BOM Namespace


UtcDate Property

RecoveryData..::..UtcDate Property

Gets the UTC date for when the password was used.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DateTime UtcDate { get; }

Field Value

The UTC date.

See Also

RecoveryData Class
Walter.BOM Namespace


RecoveryType Enumeration

Type of data being recovered

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum RecoveryType

Members

Member name | Description
NotSet | recovery type was not specified
Email | contains email data
LicenseBased | license type recovery
DataRepository | data repository data

See Also

Walter.BOM Namespace


ResourceNotFoundException Class

Class ResourceNotFoundException. Implements the [System.Exception]

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class ResourceNotFoundException

See Also

ResourceNotFoundException Members
Walter.BOM Namespace
[System.Exception]


ResourceNotFoundException Members

The ResourceNotFoundException type exposes the following members.

Constructors

 | Name | Description
Public method | ResourceNotFoundException | Initializes a new instance of the ResourceNotFoundException class.

Properties

 | Name | Description
Public property | AvailableResources | Gets the available resource names that are included in the assembly.
Public property | ResourceName | Gets the name of the resource that was queried and not found.

See Also

ResourceNotFoundException Class
Walter.BOM Namespace


ResourceNotFoundException Constructor

Initializes a new instance of the ResourceNotFoundException class.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public ResourceNotFoundException(
    string name,
    Assembly assembly
)

Parameters

name
Type: String
The name.
assembly
Type: Assembly
The assembly.

See Also

ResourceNotFoundException Class
Walter.BOM Namespace


ResourceNotFoundException Properties

The ResourceNotFoundException type exposes the following members.

Properties

 | Name | Description
Public property | AvailableResources | Gets the available resource names that are included in the assembly.
Public property | ResourceName | Gets the name of the resource that was queried and not found.

See Also

ResourceNotFoundException Class
Walter.BOM Namespace


AvailableResources Property

ResourceNotFoundException..::..AvailableResources Property

Gets the available resource names that are included in the assembly.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public IEnumerable<string> AvailableResources { get; }

Field Value

The available resources.

See Also

ResourceNotFoundException Class
Walter.BOM Namespace


ResourceName Property

ResourceNotFoundException..::..ResourceName Property

Gets the name of the resource that was queried and not found.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string ResourceName { get; }

Field Value

The name of the resource.

See Also

ResourceNotFoundException Class
Walter.BOM Namespace


ResponceExpected Enumeration

Enum ResponceExpected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum ResponceExpected

Members

Member name | Description
None | The none
Html | The response type is supposed to be HTML
Json | The response type is supposed to be json
XML | The response type is supposed to be XML
FileStream | The response type is a file stream
Zip | The response type is a a zip stream
SevenZip | The response type is a a 7.zip stream
Png | The response type is a PNG image
Jpeg | The response type is a JPEG image
CSS | The response type is a CSS file
MP4 | The response type is a video file
Script | expects a script
Text | Expects text
UnKnown | response type was not mapped
GZip | GZIP compression
RARZip | RAR zip file
MOV | Video file
WebM | Video file

See Also

Walter.BOM Namespace


ScreenOrientations Enumeration

The Screen Orientation provides information about the current orientation of the document.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum ScreenOrientations

Members

Member name | Description
None | The value is not set
Portrait | The orientation of the document is portrait
Landscape | Landscape is an orientation where the screen width is greater than the screen height and depending on platform convention locking the screen to landscape can represent landscape-primary, landscape-secondary or both.
Secondary | Alternative rotation(not the factory default)
Primary | Primary intended rotation (factory default)
Natural | Natural is an orientation that refers to either portrait-primary or landscape-primary depending on the device's usual orientation.
PortraitSecondary | Portrait-secondary is an orientation where the screen width is less than or equal to the screen height.
PortraitPrimary | Portrait-primary is an orientation where the screen width is less than or equal to the screen height
LandscapePrimary | Landscape-secondary is an orientation where the screen width is greater than the screen height.
LandscapeSecondary | Landscape-secondary is an orientation where the screen width is greater than the screen height.
Any | Any is an orientation that means the screen can be locked to any one of portrait-primary, portrait-secondary, landscape-primary and landscape-secondary.

See Also

Walter.BOM Namespace


SearchEngine Enumeration

Identified bots that are indexing the Internet for human search or other reasons like when looking for copyright content

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum SearchEngine

Members

Member name | Description
NotSure | The search engine is un-known/ not supported
Google | identified as being google search engine
Bing | identified as being bing search engine
Yandex | The identified as being Yandex search engine
Baido | The identified as being Baido search engine
Yahoo | The identified as being Yahoo search engine
DuckDuckGo | identified as being DuckDuckGo search engine
Blekko | Blekko, trademarked as blekko, was a company that provided a web search engine with the stated goal of providing better search results than those offered by Google Search, with results gathered from a set of 3 billion trusted webpages and excluding such sites as content farms
Exalead | EXALEAD is a software company, created in 2000, that provided search platforms and search-based applications for consumer and business users. The company is headquartered in Paris, France, and is a subsidiary of Dassault Systèmes.
FaceBook | not a "real" search engine but lists contents
GiGaBlast | Gigablast is a free and open-source web search engine and directory.
LinkedIn | a Microsoft service linking persons
Pinterest | Pinterest is an American image sharing and social media service designed to enable saving and discovery of information on the internet using images and, on a smaller scale, animated GIFs and videos, in the form of pinboards
Ask | ASK search engine
Twitter | Registered twitter networks
Qwant | QWANT search engine

See Also

Walter.BOM Namespace


ShouldSerializeContractResolver Class

Json serialization settings for managing lists serialization of empty lists

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class ShouldSerializeContractResolver

See Also

ShouldSerializeContractResolver Members
Walter.BOM Namespace


ShouldSerializeContractResolver Members

The ShouldSerializeContractResolver type exposes the following members.

Methods

 | Name | Description
Protected method | CreateProperty | the json property override

Fields

Name | Description
Instance | the contract resolver to use

See Also

ShouldSerializeContractResolver Class
Walter.BOM Namespace


ShouldSerializeContractResolver Fields

The ShouldSerializeContractResolver type exposes the following members.

Fields

Name | Description
Instance | the contract resolver to use

See Also

ShouldSerializeContractResolver Class
Walter.BOM Namespace


Instance Field

ShouldSerializeContractResolver..::..Instance Field

the contract resolver to use

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static ShouldSerializeContractResolver Instance

See Also

ShouldSerializeContractResolver Class
Walter.BOM Namespace


ShouldSerializeContractResolver Methods

The ShouldSerializeContractResolver type exposes the following members.

Methods

 | Name | Description
Protected method | CreateProperty | the json property override

See Also

ShouldSerializeContractResolver Class
Walter.BOM Namespace


CreateProperty Method

ShouldSerializeContractResolver..::..CreateProperty Method

the json property override

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
protected JsonProperty CreateProperty(
    MemberInfo member,
    MemberSerialization memberSerialization
)

Parameters

member
Type: MemberInfo
memberSerialization
Type: MemberSerialization

Return Value

See Also

ShouldSerializeContractResolver Class
Walter.BOM Namespace


SingletonException(T) Class

SingletonException<(Of <(<'T>)>)> Class

Singleton violation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class SingletonException<T>

Type Parameters

T
the type to have

See Also

SingletonException<(Of <(<'T>)>)> Members
Walter.BOM Namespace


SingletonException(T) Members

SingletonException<(Of <(<'T>)>)> Members

The SingletonException<(Of <(<'T>)>)> type exposes the following members.

Constructors

 | Name | Description
Public method | SingletonException<(Of <(<'T>)>)> | thrown when more than one type was create for a type where only one is allowed

See Also

SingletonException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


SingletonException(T) Constructor

SingletonException<(Of <(<'T>)>)> Constructor

thrown when more than one type was create for a type where only one is allowed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public SingletonException()

See Also

SingletonException<(Of <(<'T>)>)> Class
Walter.BOM Namespace


StorageLocations Enumeration

Types of storage location to use

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum StorageLocations

Members

Member name | Description
None | The storage location was not defined
Disk | serialize to disk using a duration specified in Cashing.BufferFirewallData in IFireWall.Configuration
Database | serialize to database using a duration specified in Cashing.BufferFirewallData in IFireWall.Configuration
RestAPI | The entry retrieved from rest API
Memory | in memory only
Computed | The entry is computed

See Also

Walter.BOM Namespace


TcpPortAlias Enumeration

Named ports that are frequently attacked using the port name in a way that they are easily identified by service [Name]_[Port] naming standard

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum TcpPortAlias

Members

Member name | Description
UserDefined | A user defined port
None | indicated that the value was not configured
Echo_7 | Ping - port 7
FTP1_20 | File transfer protocol - port 20
FTP2_21 | File transfer protocol - port 21
SSH_22 | Secure Shell port 22
Telnet_23 | Telnet -port 23
SMTP_25 | Simple Mail Transfer Protocol - port 25
MSGIPC_29 | Internet Cache Protocol (ICP)
IPSec1_50 | Internet Protocol Security - Port 50
IPSec2_51 | Internet Protocol Security - Port 51
DNS_53 | Domain Name System - Port 53
Finger_79 | The Finger User Information Protocol
HTTP_80 | HyperText Transfer Protocol (do not use when you expose port 80)
POP3_110 | Post Office Protocol
NNTP_119 | Network News Transport Protocol -Port 119
NetBIOS_135 | NetBIOS (RPC) - Port 135
NetBIOS_136 | NetBIOS (Profile Name Service)- Port 136
NetBIOS_137 | NetBIOS (CIFS)- Port 137
NetBIOS_138 | NetBIOS - Port 138
NetBIOS_139 | NetBIOS - Port 139
IMAP_143 | Internet Message Access Protocol - Port 134
SNMP_161 | Simple Network Management Protocol - Port 161
SNMP_162 | Simple Network Management Protocol - Port 162
LDAP_389 | Lightweight Directory Access Protocol - Port 389
SSL_443 | HTTP with Secure Sockets Layer - Port 443
FTPSSL_989 | FTP over Secure Socket Layer (SSL) - Port 989
FTPTLS_990 | FTP over TLS Transport Layer Security (TLS)- Port 990
IMAP_993 | Internet Messaging Protocol IMAP encrypted
TSQL_1433 | Microsoft SQL server
Oracle_1521 | oracle server
OpenEdge_20931 | open edge database
Sybase_2638 | Sybase database
RDP_3389 | Remote Desktop Protocol - Port 3389
MYSQL_3306 | MySQL database port 3306
WAC_6516 | The windows administration center
Tomcat_8443 | The default port for Apache Tomcat

Remarks

Each port number identifies a distinct service, this enum's list the services with the default port mapped. you can create a alias on your GateWay and map the ports not external used to the firewall and the firewall will detect them, ideally you would map them from the default port to a detect port not used by the server to avoid conflicts, you can map ports to a maximum value of value of 65,535

You can use the firewall's disk reporting NuGet package to generate PoweShell script to block and unblock the IP address are seeking exploits

The Firewall and HoneyPotService exposes the OnPortAccessDetected that can be used for controlling the detected signal in real-time

Examples

port monitoring in services configuration
Configure the application to monitor ports
services.UsePortScannerProtection(options => {
                  /* Map the service ports to a local port on your computer
                  *  Redirect the requests to your computer and open the firewall
                  *  for the redirected ports
                  *
                  * In this sample you'd map original port to a custom port to not interfere with the
                  * original service on your servers firewall open the ports 64000-64006 to enable detection
                  */
                  options.SSH    = 64000; // map port 22 to port 64000 on your router
                  options.TSQL   = 64001; // map port 1433 to port 64001 on your router
                  options.Telnet = 64002; // map port 23 to port 64002 on your router
                  options.MYSQL  = 64005; // map port 3306 to port 64005 on your router
                  options.DNS    = 64006; // map port 53 to port 64005 on your router

                  /*you can manually map port aliases in the range from 0 till 65535*/
                  options.AddOrUpdate(externalPort: 587, internalPort:4007, name:"ESMTP Extended Simple Mail Transfer Protocol");
                  options.AddOrUpdate(externalPort: 647, internalPort:4008, name:"DHCP Fail-over");

                  /*Record up-to 8,000 character when someone is trying to attack the service for legal reporting*/
                  options.MaximumDataSizeToAccept = 254;

                  /*Look between every 100ms and 30000ms if someone is trying to gain access to the system */
                  options.PoolFrequency = 100;

                  /* Add a default reply to any connection, you can send a auto reply
                   * You can use the template values:
                   * {IP}  - the attackers IP address
                   * {Port}- the port being attacked
                   * {Name}- the name of the alias being used
                   * {ISP} - the name of the Internet service provider that the attacker is using will be injected
                   * {Country} - the country name will be injected
                   * to personalize the message or leave it blank to record silently*/
                  options.DefaultReply = "This service is being monitored and we have detected your intentions attack {Name}" +
                                         " via {IP}:{Port} to gain unlawful access to the system, please note that any unlawful" +
                                         " activity will be reported to {ISP} as well as the relevant authorities in {Country}";

              })

See Also

Walter.BOM Namespace


WorkflowReport Class

class used to exchange work flow data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class WorkflowReport

See Also

WorkflowReport Members
Walter.BOM Namespace


WorkflowReport Members

The WorkflowReport type exposes the following members.

Constructors

 | Name | Description
Public method | WorkflowReport(String, String) | create a work flow
Public method | WorkflowReport(String, String, FileInfo) | read PDF into work flow

Methods

 | Name | Description
Public method | GetPdfData | PDF data
Public method | SetPdfData | Sets the PDF data.

Properties

 | Name | Description
Public property | ProcessingParameters | Parameters for processing the work flow
Public property | RawData | Data as PDF
Public property | WorkFlowName | name identifier of the work flow aka business key
Public property | WorkFlowStepName | the step in the work flow

See Also

WorkflowReport Class
Walter.BOM Namespace


WorkflowReport Constructor

Overload List

 | Name | Description
Public method | WorkflowReport(String, String) | create a work flow
Public method | WorkflowReport(String, String, FileInfo) | read PDF into work flow

See Also

WorkflowReport Class
WorkflowReport Members
Walter.BOM Namespace


WorkflowReport Constructor (String, String)

create a work flow

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public WorkflowReport(
    string workFlowName,
    string workFlowStepName
)

Parameters

workFlowName
Type: String
workFlowStepName
Type: String

See Also

WorkflowReport Class
WorkflowReport Overload
Walter.BOM Namespace


WorkflowReport Constructor (String, String, FileInfo)

read PDF into work flow

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public WorkflowReport(
    string workFlowName,
    string workFlowStepName,
    FileInfo pdf
)

Parameters

workFlowName
Type: String
the name of the work flow
workFlowStepName
Type: String
the name of the step in the work flow that is represented in the PDF
pdf
Type: FileInfo
the PDF to load

See Also

WorkflowReport Class
WorkflowReport Overload
Walter.BOM Namespace


WorkflowReport Methods

The WorkflowReport type exposes the following members.

Methods

 | Name | Description
Public method | GetPdfData | PDF data
Public method | SetPdfData | Sets the PDF data.

See Also

WorkflowReport Class
Walter.BOM Namespace


GetPdfData Method

WorkflowReport..::..GetPdfData Method

PDF data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<byte>[] GetPdfData()

See Also

WorkflowReport Class
Walter.BOM Namespace


SetPdfData Method

WorkflowReport..::..SetPdfData Method

Sets the PDF data.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public void SetPdfData(
    byte[] bytes
)

Parameters

bytes
Type: array< Byte >[]()[][]
The bytes.

See Also

WorkflowReport Class
Walter.BOM Namespace


WorkflowReport Properties

The WorkflowReport type exposes the following members.

Properties

 | Name | Description
Public property | ProcessingParameters | Parameters for processing the work flow
Public property | RawData | Data as PDF
Public property | WorkFlowName | name identifier of the work flow aka business key
Public property | WorkFlowStepName | the step in the work flow

See Also

WorkflowReport Class
Walter.BOM Namespace


ProcessingParameters Property

WorkflowReport..::..ProcessingParameters Property

Parameters for processing the work flow

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<string> ProcessingParameters { get; set; }

See Also

WorkflowReport Class
Walter.BOM Namespace


RawData Property

WorkflowReport..::..RawData Property

Data as PDF

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public Nullable<string> RawData { get; set; }

See Also

WorkflowReport Class
Walter.BOM Namespace


WorkFlowName Property

WorkflowReport..::..WorkFlowName Property

name identifier of the work flow aka business key

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string WorkFlowName { get; set; }

See Also

WorkflowReport Class
Walter.BOM Namespace


WorkFlowStepName Property

WorkflowReport..::..WorkFlowStepName Property

the step in the work flow

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string WorkFlowStepName { get; set; }

See Also

WorkflowReport Class
Walter.BOM Namespace


Walter.BOM.Data Namespace

Classes

 | Class | Description
Public class | InfoCard | Info-card data object


InfoCard Class

Info-card data object

Namespace: Walter.BOM.Data
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class InfoCard

See Also

InfoCard Members
Walter.BOM.Data Namespace


InfoCard Members

The InfoCard type exposes the following members.

Properties

 | Name | Description
Public property | Action | the action it is to execute
Public property | Body | the body
Public property | Controler | The controller that the card points to
Public property | SubTitle | sub title of the card
Public property | Title | the title of the card

See Also

InfoCard Class
Walter.BOM.Data Namespace


InfoCard Properties

The InfoCard type exposes the following members.

Properties

 | Name | Description
Public property | Action | the action it is to execute
Public property | Body | the body
Public property | Controler | The controller that the card points to
Public property | SubTitle | sub title of the card
Public property | Title | the title of the card

See Also

InfoCard Class
Walter.BOM.Data Namespace


Action Property

InfoCard..::..Action Property

the action it is to execute

Namespace: Walter.BOM.Data
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Action { get; set; }

See Also

InfoCard Class
Walter.BOM.Data Namespace


Body Property

InfoCard..::..Body Property

the body

Namespace: Walter.BOM.Data
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Body { get; set; }

See Also

InfoCard Class
Walter.BOM.Data Namespace


Controler Property

InfoCard..::..Controler Property

The controller that the card points to

Namespace: Walter.BOM.Data
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Controler { get; set; }

See Also

InfoCard Class
Walter.BOM.Data Namespace


SubTitle Property

InfoCard..::..SubTitle Property

sub title of the card

Namespace: Walter.BOM.Data
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string SubTitle { get; set; }

See Also

InfoCard Class
Walter.BOM.Data Namespace


Title Property

InfoCard..::..Title Property

the title of the card

Namespace: Walter.BOM.Data
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Title { get; set; }

See Also

InfoCard Class
Walter.BOM.Data Namespace


Walter.BOM.ErrorCodes Namespace

Enumerations

 | Enumeration | Description
Public enumeration | ConfigurationErrors | Configuration errors
Public enumeration | ConfigurationTasks | configuration errors
Public enumeration | RuntimeConfigurationErrors | Enum Runtime Configuration Errors detected
Public enumeration | RunTimeErrors | Runtime errors
Public enumeration | SecurityCode | /Security codes generated by the system


ConfigurationErrors Enumeration

Configuration errors

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[HelpTopicAttribute]
public enum ConfigurationErrors

Members

Member name | Description
None | generic misconfiguration
IP2LocationDatabase_Get_Country | IP2 location database could not retrieve country
IP2LocationDatabase_Get_Proxy | ip 2 location could not get proxy
Create_Default_Table_If_Missing | The create default table if missing
BCP_Import_Failed | The BCP import failed
Disk_Access | The disk access was denied
Connection_String_Wrong | The connection string is wrong
License_Expiring | The license will be expiring soon
License_Missing_or_Expired | The license missing or has expired
MaxMind_Api_Key_missing | The maximum mind API key is missing
BadDefaultRoute | Default route format is not supported
UserApiPathMissing | You did not configure the endpoint to store your user discovery data
UserApiRouteMissing | You did not configure an route on an endpoint to store your user discovery data
RegisterLinksApiUrlMissing | You did not configure the endpoint to store your user discovery links
RegisterLinksApiRouteMissing | You did not configure an route on an endpoint to store your user discovery links
GeoPluginMissing | The GEO plug-in missing
SessionUsedButNotConfigured | The session used but not configured in startup.cs
SQL | Indicates that the database is not compatible with the applications TSQL statements
Rules | Rules have not been setup properly
DatabasePluginMissing | You are missing a database plug-in
NoApplicationPasswordUsed | Application password is not set
AdminEmailNotConfigured | No email configured for mail logging
License_UpgradeRequired | license update is needed for the feature to work
EmailTemplate | Email template is configured but not provided
UserDiscoveryNotCalled | User discovery script was not used in the application but the models where submitted
EventLogPermissions | You are missing permissions for the user running the web application to interact with the event log.
BlockingDetected | A block was triggered as an issue was detected

See Also

Walter.BOM.ErrorCodes Namespace


ConfigurationTasks Enumeration

configuration errors

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[HelpTopicAttribute]
public enum ConfigurationTasks

Members

Member name | Description
None | The none specific, generic task
Populate_Empty_Table | populate empty tables before functionality can be used
Configure_Location_Provider | you need to configure location provider
ConnectionStringIsNotSet | A connection string is not provided however needed
UrlNotValid | The provided URL is not valid
Setup | Setup is not configured properly
UpdateLicense | Indicates that you should visit www.asp-waf.com and update the license status for the firewall
ObtainLicense | Indicates that you should visit www.asp-waf.com and update the license status for the firewall
UpdateBlockingPatternsToAllowUrl | update the blocking patterns in IFireWall.Configuration.Rules.BlockedPatterns to allow for a endpoint or change the route

See Also

Walter.BOM.ErrorCodes Namespace


RuntimeConfigurationErrors Enumeration

Enum Runtime Configuration Errors detected

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum RuntimeConfigurationErrors

Members

Member name | Description
Generic | generic misconfiguration
SiteContainsBadLink | the site contains a broken link

See Also

Walter.BOM.ErrorCodes Namespace


RunTimeErrors Enumeration

Runtime errors

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[HelpTopicAttribute]
public enum RunTimeErrors

Members

Member name | Description
None | The none specific, a generic error
License_Server_Generic_Error | license related error
License_Server_Tempering_detected | license tampering expected
License_Server_Profile_error | profile error
GeographyRequestFailed | The geography request failed
Reject_Known_BadBoys_Failed | The middle ware failed
Url_Validation_Failed | The URL validation failed/
ArgumentNullException | An argument null exception was generated
DataStorage | Data storage related exception was generated, can user rights etc
ReadCookie | The read a particular cookie failed
ReadSession | The read from session, or a particular session item
WriteToCookie | The write to a cookie failed
WriteToSession | The write to a particular session item session
ReadOrWriteJson | Json serialization error
Reject_Repeat_Violations_Failed | The reject repeat violations failed
Reject_Wrong_UserType_Failed | The reject wrong user type failed
Maximum_Violations_Reached_Failed | The maximum violations reached failed
Reject_Penetration_Attempts_Failed | The reject penetration attempts failed
None_ASP_NET | The none ASP net
Reject_Known_BadBoys | The reject known bad boys
Reject_DDOS_Failed | The reject ddos failed
MiddleWareFailed | The middle ware failed
GuardAction_IsAuthorized_Failed | The guard action is authorized failed
SqlSetup | SQL server setup is not compatible with database
WebRequest | The web request has failed
FileMonitor | A file was manipulated outside of the scope of the firewall.
TemplateFailed | Rendering razor template failed
IncompatibleFireWallState | the firewall state does not allow for the activity to execute
User_Code | Some code in the user's code base caused an exception

See Also

Walter.BOM.ErrorCodes Namespace


SecurityCode Enumeration

/Security codes generated by the system

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum SecurityCode

Members

Member name | Description
Info | Information only message
ContentSecurityPolicyViolation | Content Security Policy - CSP violation raised by the browser
BlockIP | a blocked IP
AllowIP | an allowed IP

See Also

Walter.BOM.ErrorCodes Namespace


Walter.BOM.Geo Namespace

Classes

 | Class | Description
Public class | GeoExtensionMethods | Geography extension method
Public class | GeoLocationMapping | Helper class that can be used to map country ISO code to a country as well as country to ISO codes.
Public class | InMemmoryGeoBuffer | Class InMemmoryGeoBuffer. Implements the IGeoBuffer
Public class | LocationExtensionMethods | Helper method calculating coordinates to degrees

Structures

 | Structure | Description
Public structure | SimpleLatLong | Simple lat-long data structure

Interfaces

 | Interface | Description
Public interface | IGeoBuffer | Interface IGeoBuffer used for store GEO data based on the IP address
Public interface | IGeoResolver | Basic geography resolver
Public interface | IISPResolver | Basic geography resolver
Public interface | ILatLongResolver | Tells that the GEO factory is also capable of providing lat/long values as well as city related information
Public interface | IMapLocation | A map location that can be used in emails and visualized on a map via the Lat en Long values. To be able to generate map data you must use an interface that implements ILatLongRepository

Enumerations

 | Enumeration | Description
Public enumeration | GeoLocation | geographical regions represented as countries and regions


GeoExtensionMethods Class

Geography extension method

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class GeoExtensionMethods

See Also

GeoExtensionMethods Members
Walter.BOM.Geo Namespace


GeoExtensionMethods Members

The GeoExtensionMethods type exposes the following members.

Methods

Name | Description
Exists | Indicates if a given set of Geo-locations covers a item queries
GetCountryName(Nullable<(Of <<'(GeoLocation>)>>)) | Get the Country Name belonging to a country code
GetCountryName(GeoLocation) | Get the Country Name belonging to a country code

See Also

GeoExtensionMethods Class
Walter.BOM.Geo Namespace


GeoExtensionMethods Methods

The GeoExtensionMethods type exposes the following members.

Methods

Name | Description
Exists | Indicates if a given set of Geo-locations covers a item queries
GetCountryName(Nullable<(Of <<'(GeoLocation>)>>)) | Get the Country Name belonging to a country code
GetCountryName(GeoLocation) | Get the Country Name belonging to a country code

See Also

GeoExtensionMethods Class
Walter.BOM.Geo Namespace


Exists Method

GeoExtensionMethods..::..Exists Method

Indicates if a given set of Geo-locations covers a item queries

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool Exists(
    Nullable<IEnumerable<GeoLocation>> locations,
    GeoLocation item
)

Parameters

locations
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' GeoLocation >)>)>>)>)>
locations can be countries or regions
item
Type: Walter.BOM.Geo..::..GeoLocation
can be a country or a region if a comparison with a region is intended

Return Value

True if matched

See Also

GeoExtensionMethods Class
Walter.BOM.Geo Namespace


GetCountryName Method

GeoExtensionMethods..::..GetCountryName Method

Overload List

Name | Description
GetCountryName(Nullable<(Of <<'(GeoLocation>)>>)) | Get the Country Name belonging to a country code
GetCountryName(GeoLocation) | Get the Country Name belonging to a country code

See Also

GeoExtensionMethods Class
GeoExtensionMethods Members
Walter.BOM.Geo Namespace


GetCountryName Method (Nullable(GeoLocation))

GeoExtensionMethods..::..GetCountryName Method (Nullable<(Of <(<'GeoLocation>)>)>)

Get the Country Name belonging to a country code

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string GetCountryName(
    Nullable<GeoLocation> location
)

Parameters

location
Type: Nullable <(Of <(<' GeoLocation >)>)>
The location

Return Value

The country name or "UnKnown" if not provided

See Also

GeoExtensionMethods Class
GetCountryName Overload
Walter.BOM.Geo Namespace


GetCountryName Method (GeoLocation)

GeoExtensionMethods..::..GetCountryName Method (GeoLocation)

Get the Country Name belonging to a country code

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string GetCountryName(
    GeoLocation location
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation
The location

Return Value

The country name or "UnKnown" if not provided

See Also

GeoExtensionMethods Class
GetCountryName Overload
Walter.BOM.Geo Namespace


GeoLocation Enumeration

geographical regions represented as countries and regions

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public enum GeoLocation

Members

Member name | Description
ALL | All
UnKnown | Unknown region or not supported by provider
Afghanistan | Afghanistan
AlandIslands | Aland islands (Åland islands, is an autonomous region of Finland Comprising around 6,700 islands)
Albania | The Republic of Albania
Algeria | The People's Democratic Republic of Algeria
AmericanSamoa | The Territory of American Samoa
Andorra | The Principality of Andorra
Angola | The Republic of Angola
Anguilla | Anguilla
Antarctica | Antarctica
AntiguaAndBarbuda | Antigua and Barbuda
Argentina | The Argentine Republic
Armenia | The Republic of Armenia
Aruba | Aruba
Australia | Australia
Austria | Austria
Azerbaijan | Azerbaijan
Bahamas | The Bahamas
Bahrain | Bahrain
Bangladesh | Bangladesh
Barbados | Barbados
Belarus | Belarus
Belgium | Belgium
Belize | Belize
Benin | Benin
Bermuda | Bermuda
Bhutan | Bhutan
Bolivia | Bolivia
Bonaire | Bonaire
BosniaHerzegovina | Bosnia Herzegovina
Botswana | Botswana
Brazil | Brazil
BRITISH_INDIAN_OCEAN_TERRITORY | The British Indian Ocean Territory
Brunei | Brunei
Bulgaria | Bulgaria
BurkinaFaso | Burkina Faso
Burundi | Burundi
CaboVerde | Cabo Verde
Cambodia | Cambodia
Cameroon | Cameroon
Canada | Canada
CaymanIslands | Cayman Islands
CentralAfricanRepublic | The Central African Republic
Chad | The Chad
Chile | The Chile
China | The china
ChristmasIsland | Christmas Island/Christmas (l'Île)
CocosIsland | Cocos (Keeling) Islands
Colombia | The Colombia
Comoros | The Comoros
RepCongo | the Republic of the Congo
Congo | Democratic republic of the Congo
CookIslands | The cook islands
CostaRica | The Costa Rica
CoteDivoire | Cote D'Ivoire (ivory coast)
Croatia | Croatia
Cuba | Cuba
Curacao | Curacao
Cyprus | Cyprus
CzechRepublic | Czech republic
Denmark | Denmark
Djibouti | Djibouti
Dominica | Dominica
DominicanRepublic | Dominican republic
Ecuador | Ecuador
Egypt | Egypt
ElSalvador | El Salvador
EquatorialGuinea | Equatorial guinea
Eritrea | Eritrea
Estonia | Estonia
Eswatini | Eswatini
Ethiopia | Ethiopia
FalklandIslands | Falkland islands
FaroeIslands | Faroe islands
Fiji | Fiji
Finland | Finland
France | France
FrenchGuiana | French Guiana
FrenchPolynesia | French Polynesia
Gabon | Gabon
Gambia | Gambia
Georgia | Georgia
Germany | Germany
Ghana | Ghana
Gibraltar | Gibraltar
Greece | Greece
Greenland | Greenland
Grenada | Grenada
Guadeloupe | Guadeloupe
Guam | Guam
Guatemala | Guatemala
Guernsey | Guernsey
Guinea | Guinea
GuineaBissau | Guinea Bissau
Guyana | Guyana
Haiti | Haiti
HolySee | Holy see (Vatican)
Honduras | Honduras
HongKong | Hong Kong
Hungary | Hungary
Iceland | Iceland
India | India
Indonesia | Indonesia
Iran | Iran
Iraq | Iraq
Ireland | Ireland
IsleofMan | Isle of Aan
Israel | Israel
Italy | Italy
Jamaica | Jamaica
Japan | Japan
Jersey | Jersey
Jordan | Jordan
Kazakhstan | Kazakhstan
Kenya | Kenya
Kiribati | Kiribati
NorthKorea | North Korea
SouthKorea | South Korea
Kuwait | Kuwait
Kyrgyzstan | Kyrgyzstan
Lao | Lao
Latvia | Latvia
Lebanon | Lebanon
Lesotho | Lesotho
Liberia | Liberia
Libya | Libya
Liechtenstein | Liechtenstein
Lithuania | Lithuania
Luxembourg | Luxembourg
Macao | Macao
Madagascar | Madagascar
Malawi | Malawi
Malaysia | Malaysia
Maldives | Maldives
Mali | Mali
Malta | Malta
MarshallIslands | Marshall islands
Martinique | Martinique
Mauritania | Mauritania
Mauritius | Mauritius
Mayotte | Mayotte
Mexico | Mexico
Micronesia | Micronesia
Moldova | Moldova
Monaco | Monaco
Mongolia | Mongolia
Montenegro | Montenegro
Montserrat | Montserrat
Morocco | Morocco
Mozambique | Mozambique
Myanmar | Myanmar
Namibia | Namibia
Nauru | Nauru
Nepal | Nepal
Netherlands | Netherlands
NewCaledonia | Caledonia.
NewZealand | New Zealand.
Nicaragua | Nicaragua
Niger | Niger
Nigeria | Nigeria
Niue | Niue
NorfolkIsland | Norfolk island
NorthMacedonia | North Macedonia
NorthernMarianaIslands | Northern Mariana islands
Norway | Norway
Oman | Oman
Pakistan | Pakistan
Palau | Palau
Palestine | Palestine
Panama | Panama
PapuaNewGuinea | Papua new guinea
Paraguay | Paraguay
Peru | Peru
Philippines | Philippines
Poland | Poland
Portugal | Portugal
PuertoRico | Puerto Rico
Qatar | Qatar
Reunion | Reunion
Romania | Romania
RussianFederation | Russian federation
Rwanda | Rwanda
SaintBarthelemy | Saint Barthélemy
SaintKittsAndNevis | Saint Kitts and Nevis
SaintLucia | Saint Lucia
SaintMartin | Saint Martin
SaintPierreAndMiquelon | Saint Pierre and miquelon
SaintVincentandTheGrenadines | Saint Vincent and the Grenadines
Samoa | Samoa
SanMarino | San Marino
SaoTomeAndPrincipe | Sao Tome and Principe
SaudiArabia | Saudi Arabia
Senegal | Senegal
Serbia | Serbia
Seychelles | The Seychelles
SierraLeone | The Sierra Leone
Singapore | Singapore
SintMaarten | Sint Maarten
Slovakia | Slovakia
Slovenia | Slovenia
SolomonIslands | Solomon islands
Somalia | Somalia
SouthAfrica | South Africa
SouthSudan | South Sudan
Spain | Spain
SriLanka | Sri Lanka
Sudan | Sudan
Suriname | Suriname
Sweden | Sweden
Switzerland | Switzerland
Syrian | Syrian
Taiwan | Taiwan
Tajikistan | Tajikistan
Tanzania | Tanzania
Thailand | Thailand
TimorLeste | Timor Leste (East Timor)
Togo | Togo
Tokelau | Tokelau
Tonga | Tonga
TrinidadAndTobago | Trinidad and Tobago
Tunisia | Tunisia
Turkey | Turkey
Turkmenistan | Turkmenistan
TurksAndCaicos | Turks and Caicos
Tuvalu | Tuvalu
Uganda | Uganda
Ukraine | Ukraine
UnitedArabEmirates | The United Arab Emirates (UAE)
UnitedKingdom | The United Kingdom
UnitedStates | The United States
UnitedStatesOutlyingIslands | The United states outlying islands (Baker Island, Howland Island, Jarvis Island, Johnston Atoll, Kingman Reef, Midway Atoll, Palmyra Atoll, and Wake Island, Navassa Island.)
Uruguay | Uruguay
Uzbekistan | Uzbekistan
Vanuatu | Vanuatu
Venezuela | Venezuela
VietNam | Viet Nam
VirginIslandsBritish | British Virgin Islands
VirginIslandsUS | The virgin islands (United States)
WallisAndFutuna | Wallis and Futuna
Yemen | Yemen
Zambia | Zambia
Zimbabwe | Zimbabwe
OCEANIA | The Oceania definition covers Australia | Fiji | FrenchPolynesia | Guam | Kiribati | MarshallIslands | Micronesia | NewCaledonia | NewZealand | PapuaNewGuinea | Samoa | SolomonIslands | Tonga | Vanuatu
MIDDLE_EAST | The middle east definition covers = Bahrain | Iraq | Iraq | Israel | Jordan | Kuwait | Lebanon | Oman | Palestine | Qatar | SaudiArabia | Syrian | Yemen
EUROPEAN_UNION | The European union covers Austria| Aland Islands | Belgium | Bulgaria | Cyprus | CzechRepublic | Denmark | Estonia | Finland | France | Germany | Greece | Hungary | Ireland | Italy | Latvia | Lithuania | Luxembourg | Malta | Netherlands | Poland | Portugal | Romania | Slovakia | Slovenia | Spain | Sweden
EUROPE | Europe covers EUROPEAN_UNION | Albania | Andorra | Belarus | BosniaHerzegovina | Croatia | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Moldova | Monaco | Montenegro | Norway | RussianFederation | SanMarino | Serbia | Switzerland | Turkey | Ukraine
EASTERN_EUROPE | The eastern Europe covers Belarus | Ukraine | RussianFederation | Romania | Georgia | Moldova | Armenia | Azerbaijan
BALTIC_STATES | The Baltic states covers Estonia | Latvia | Lithuania
CENTRAL_EUROPE | The central Europe covers Austria | CzechRepublic | Croatia | Hungary | Poland | Serbia | Slovakia | Slovenia
WESTERN_EUROPE | Western Europe covers EUROPEAN_UNION | Andorra | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Monaco | Norway | Switzerland, United Kingdom
ASIA | Asia covers Afghanistan | Armenia | Azerbaijan | Bangladesh | Bhutan | Brunei | Cambodia | China | Georgia | HongKong | India | Indonesia | Japan | Kazakhstan | NorthKorea | SouthKorea | Kyrgyzstan | Lao | Macao | Malaysia | Maldives | Mongolia | Myanmar | Nepal | Pakistan | Philippines | Singapore | SriLanka | Taiwan | Tajikistan | Thailand | TimorLeste | Turkmenistan | Uzbekistan | VietNam
NORTH_AMERICA | North America covers Bermuda | Canada | Greenland | Saint Pierre and Miquelon | United States
SOUTH_AMERICA | South America contains Argentina | Bolivia | Brazil | Chile | Colombia | Ecuador | Falkland Islands | French Guiana | Paraguay | Peru | Suriname | Uruguay | Venezuela
CENTRAL_AMERICA | Central America covers Belize | CostaRica | ElSalvador | Guatemala | Honduras | Nicaragua | Panama
LATIN_AMERICA | Latin America covers SOUTH_AMERICA | CENTRAL_AMERICA
CARIBBEAN | The Caribbean covers Anguilla | AntiguaAndBarbuda | Aruba | Bahamas | Barbados | Bonaire | VirginIslandsBritish | CaymanIslands | Cuba | Curacao | Dominica | Dominican Republic | Grenada | Guadeloupe | Haiti | Jamaica | Martinique | Montserrat | Puerto Rico | Saint Barthelemy | Saint Kitts and Nevis | SaintLucia | Saint Martin | Trinidad And Tobago | Turks and Caicos | US Virgin Islands
THE_AMERICAS | The Americas covers NORTH_AMERICA | LATIN_AMERICA | CARIBEAN
WESTER_AFRICA | Wester Africa covers Benin | BurkinaFaso | CaboVerde | CoteDivoire | Gambia | Ghana | Guinea | GuineaBissau | Liberia | Mali | Mauritania | Niger | Senegal | SierraLeone | Togo
SOUTH_AFRICA | South Africa covers Botswana | Eswatini | Lesotho | Namibia | South Africa
NORTH_AFRICA | North Africa covers Algeria | Egypt | Libya | Morocco | SouthSudan | Sudan | Tunisia | Mauritania
MIDDLE_AFRICA | Middle Africa covers Angola | Cameroon | Central African Republic | Chad | Congo | Equatorial Guinea | Gabon | São Tomé and Príncipe
EASTERN_AFRICA | Eastern Africa covers Brunei | Comoros | Djibouti | Eritrea | Ethiopia | Kenya | Madagascar | Malawi | Mauritius | Mayotte | Mozambique | Reunion | Rwanda | Seychelles | Somalia | Tanzania | Uganda | Zambia | Zimbabwe
AFRICA | Africa covers WESTER_AFRICA | SOUTH_AFRICA | NORTH_AFRICA | MIDDLE_AFRICA
BouvetIsland | Bouvetøya (norway)

Remarks

Please countries numbered using ISO country codes, to match the 2 letter assignments for country codes use the GeoLocationMapping class. This class also contains Regions, these are all in upper case and are assigned negative numbers.

Examples

Query the country enumerator for a 2 letter iso code
look-up country
if(GeoLocationMapping.TryGetValue(response.Country.IsoCode, out var result)
{
    //do something with code
}

See Also

Walter.BOM.Geo Namespace


GeoLocationMapping Class

Helper class that can be used to map country ISO code to a country as well as country to ISO codes.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class GeoLocationMapping

Remarks

This class contains quite a few utility classes that make it easy to validate is a GeoLocation is a given county or region and the association between regions and countries.

Perhaps the most central method is to convert 2letter ISO codes to GeoLocations TryGetValue(Nullable<(Of <<'(String>)>>), GeoLocation%). However the list does not stop there and take some time to go over the other methods available.

Examples

The bellow sample makes use of the County being of type GeoLocation. and uses that property to test if EU tax is applicable and if so validate if the VAT identifier is belonging to the company name provided. This sample uses the location provided by the firewall framework using NuGet package Walter.Web.FireWall This code is overly simplified but demonstrate how you could use this feature.

The method used to validate European value added tax (VAT) is from NuGet Package Walter.Vat and allows the validation of VAT data without making use of paid subscription services.

C#
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ProcessOrder(Order model)
{
    if (!ModelState.IsValid)
        return View(model);

    if (model.Country.IsInTheEuropeanUnion())
    {
        var vies = await Walter.Vat.EuropeanVatInformationQuery.GetAsync(model.VATNumber).ConfigureAwait(false);
        if (!vies.IsValid || !vies.CompanyName.Equals(model.CompanyName, StringComparison.OrdinalIgnoreCase))
        {
            if (!vies.IsValid)
            {
                if (vies.Exception is null)
                {
                    _logger?.Lazy().LogWarning(vies.Exception
                                    ,"Query European VAT failed with a for {vat} in {country}"
                                    , model.VATNumber
                                    , model.Country);
                }
                else
                {
                    _logger?.Lazy().LogWarning(vies.Exception,
                                    "Query European VAT failed with a {exception} exception error {message}"
                                    , vies.Exception.GetType().Name
                                    , vies.Exception.Message);
                }

                ModelState.AddModelError(nameof(model.VATNumber)
                                        , "The VAT number is not valid");
            }

            if (!vies.CompanyName.Equals(model.CompanyName, StringComparison.OrdinalIgnoreCase))
            {
                ModelState.AddModelError(nameof(model.VATNumber)
                                        , $"The VAT ID provided is belongs to another company than the one you specified, did you enter the wrong ID?");

                if (vies.CompanyName.Contains(model.CompanyName, StringComparison.OrdinalIgnoreCase))
                {
                    ModelState.AddModelError(nameof(model.CompanyName)
                                            , $"The VAT number provided is belongs to {vies.CompanyName}, this sounds like {model.CompanyName} but you should update it to avoid complications.");
                }
                else
                {
                    ModelState.AddModelError(nameof(model.CompanyName)
                                           , $"The VAT number provided is belongs to {vies.CompanyName} did you provide the wrong name?");
                }
            }

            return View(model);
        }
    }
}

See Also

GeoLocationMapping Members
Walter.BOM.Geo Namespace
Walter.BOM.Geo..::..GeoLocation


GeoLocationMapping Members

The GeoLocationMapping type exposes the following members.

Methods

Name Description
Africa
Africa covers WESTER_AFRICA | SOUTH_AFRICA | NORTH_AFRICA | MIDDLE_AFRICA | EASTERN_AFRICA
Asia
Asia covers. Afghanistan | Armenia | Azerbaijan | Bangladesh | Bhutan | Brunei | Cambodia | China | Georgia | HongKong | India | Indonesia | Japan | Kazakhstan | NorthKorea | SouthKorea | Kyrgyzstan | Lao | Macao | Malaysia | Maldives | Mongolia | Myanmar | Nepal | Pakistan | Philippines | Singapore | SriLanka | Taiwan | Tajikistan | Thailand | TimorLeste | Turkmenistan | Uzbekistan | VietNam
BalticStates
Baltic states contains: Estonia | Latvia | Lithuania.
Caribbean
The Caribbeans: Anguilla | AntiguaAndBarbuda | Aruba | Bahamas | Barbados | Bonaire | VirginIslandsBritish | CaymanIslands | Cuba | Curacao | Dominica | Dominican Republic | Grenada | Guadeloupe | Haiti | Jamaica | Martinique | Montserrat | Puerto Rico | Saint Barthelemy | Saint Kitts and Nevis | SaintLucia | Saint Martin | Trinidad And Tobago | Turks and Caicos | US Virgin Islands
CentralAmerica
Centrals America contains: Belize | CostaRica | ElSalvador | Guatemala | Honduras | Nicaragua | Panama
CentralEurope
Centrals Europe contains: Austria | CzechRepublic | Croatia | Hungary | Poland | Serbia | Slovakia | Slovenia
EasternAfrica
Eastern Africa covers Brunei | Comoros | Djibouti | Eritrea | Ethiopia | Kenya | Madagascar | Malawi | Mauritius | Mayotte | Mozambique | Reunion | Rwanda | Seychelles | Somalia | Tanzania | Uganda | Zambia | Zimbabwe
EasternEurope
Eastern Europe contains: Belarus | Ukraine | RussianFederation | Romania | Georgia | Moldova | Armenia | Azerbaijan
Europe
Europe contains the European union: Austria, AlandIslands , Belgium , Bulgaria , Cyprus , CzechRepublic , Denmark , Estonia , Finland , France , Germany , Greece , Hungary , Ireland , Italy , Latvia , Lithuania , Luxembourg , Malta , Netherlands , Poland , Portugal , Romania , Slovakia , Slovenia , Spain , Sweden, as well as the European countries outside of the European union: Albania , Andorra , Belarus , BosniaHerzegovina , Croatia , FaroeIslands , Gibraltar , Guernsey , Iceland , Jersey , Liechtenstein , Moldova , Monaco , Montenegro , Norway , RussianFederation , SanMarino , Serbia , Switzerland , Turkey , Ukraine, United Kingdom
EuropeanUnion
Countries in the European the union.
GetCapitol
get the map locations for with capitals per country
GetCountryName(GeoLocation)
Returns the country name associated with a GeoLocation
GetCountryName(Nullable<(Of <<'(GeoLocation>)>>))
Returns the country name associated with a GeoLocation
GetLocation
Gets the location based on the country name.
GetLocations
Get all locations that are in a given location key
IsAnBalticState
Determines whether the item is in a Baltic state.
IsCentralEuropean
Determines whether the item is in a Centrals European state.
IsCountry
determine if the location is a country
IsInAfrica
Determines whether the item is in Africa.
IsInAsia
Determines whether the item is in Asia.
IsInCentralAmerica
Determines whether the item is in Centrals America .
IsInEasternAfrica
Determines whether the item is in Eastern Africa.
IsInEasternEurope
Determines whether the item is in Eastern Europe.
IsInEurope
Determines whether the item is in Europe.
IsInLatinAmerica
Determines whether the item is in Latin America .
IsInMiddleAfrica
Determines whether the item is in Middle Africa.
IsInNorthAfrica
Determines whether the item is in North Africa.
IsInNorthAmerica
Determines whether the item is in North America .
IsInOceania
Determines whether the specified item is in Oceania.
IsInSouthAfrica
Determines whether the item is in South Africa.
IsInSouthAmerica
Determines whether the item is in South America .
IsInTheAmericas
Determines whether the item is in the Americas.
IsInTheCaribbean
Determines whether the item is in the Caribbean .
IsInTheEuropeanUnion
Determines whether the item is in the EuropeanUnion.
IsInTheMiddleEast
Determines whether the item in MiddleEast.
IsInWesterAfrica
Determines whether the item is in Wester Africa.
IsInWesternEurope
Determines whether the item is in a Western European state.
LatinAmerica
Latin America covers. SOUTH_AMERICA and CENTRAL_AMERICA
MiddleAfrica
Middle Africa covers Angola | Cameroon | Central African Republic | Chad | Congo | Equatorial Guinea | Gabon | São Tomé and Príncipe
MiddleEast
Middles the east contains the flowing countries:
  • Bahrain
  • Iraq
  • Iraq
  • Israel
  • Jordan
  • Kuwait
  • Lebanon
  • Oman
  • Palestine
  • Qatar
  • SaudiArabia
  • Syrian
  • Yemen
NorthAfrica
North Africa covers Algeria | Egypt | Libya | Morocco | SouthSudan | Sudan | Tunisia | Mauritania
NorthAmerica
North America covers: Bermuda | Canada | Greenland | Saint Pierre and Miquelon | UnitedStates
Oceania

Oceania is a pacific region and contains

  • Australia+ ChristmasIsland
  • Fiji,
  • FrenchPolynesia
  • Guam
  • Kiribati
  • Marshall Islands
  • Micronesia,
  • New Caledonia
  • New Zealand
  • Papua New Guinea
  • Samoa
  • Solomon Islands
  • Tonga
  • Vanuatu
SouthAfrica
South Africa covers Botswana | Eswatini | Lesotho | Namibia | South Africa
SouthAmerica
South America contains: Argentina | Bolivia | Brazil | Chile | Colombia | Ecuador | Falkland Islands | French Guiana | Paraguay | Peru | Suriname | Uruguay | Venezuela
SupportedCountries
returns the countries that are supported by this system.
SupportedIsoCodes
Returns the supported ISO country codes.
TheAmericas
The Americas covers NORTH_AMERICA | LATIN_AMERICA | CARIBEAN
TryGetCountryName
Tries to get the country name for a GeoLocation, will fail if the location is unknown or a region
TryGetGeoLocation
Tries to get the geo location of a country name.
TryGetIsoCode
Get the 2 letter ISO code for a given country
TryGetValue
Tries to get the country code from a 2 letter ISO string.
WesterAfrica
Wester Africa covers Benin | BurkinaFaso | CaboVerde | CoteDivoire | Gambia | Ghana | Guinea | GuineaBissau | Liberia | Mali | Mauritania | Niger | Senegal | SierraLeone | Togo
WesternEurope
Western the Europe contain European union as well as: Andorra | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Monaco | Norway | Switzerland, United Kingdom

Properties

Name | Description
CountryNamesToIsoCodes | Key = country name, value is the 2 letter country code for the ISO 3166-1 country name (including some exceptions)
LocationTable | List with tuples of the supported countries, the format is [GeoLocation | Country Name | 2Letter ISO Code]

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


GeoLocationMapping Methods

The GeoLocationMapping type exposes the following members.

Methods

Name Description
Africa
Africa covers WESTER_AFRICA | SOUTH_AFRICA | NORTH_AFRICA | MIDDLE_AFRICA | EASTERN_AFRICA
Asia
Asia covers. Afghanistan | Armenia | Azerbaijan | Bangladesh | Bhutan | Brunei | Cambodia | China | Georgia | HongKong | India | Indonesia | Japan | Kazakhstan | NorthKorea | SouthKorea | Kyrgyzstan | Lao | Macao | Malaysia | Maldives | Mongolia | Myanmar | Nepal | Pakistan | Philippines | Singapore | SriLanka | Taiwan | Tajikistan | Thailand | TimorLeste | Turkmenistan | Uzbekistan | VietNam
BalticStates
Baltic states contains: Estonia | Latvia | Lithuania.
Caribbean
The Caribbeans: Anguilla | AntiguaAndBarbuda | Aruba | Bahamas | Barbados | Bonaire | VirginIslandsBritish | CaymanIslands | Cuba | Curacao | Dominica | Dominican Republic | Grenada | Guadeloupe | Haiti | Jamaica | Martinique | Montserrat | Puerto Rico | Saint Barthelemy | Saint Kitts and Nevis | SaintLucia | Saint Martin | Trinidad And Tobago | Turks and Caicos | US Virgin Islands
CentralAmerica
Centrals America contains: Belize | CostaRica | ElSalvador | Guatemala | Honduras | Nicaragua | Panama
CentralEurope
Centrals Europe contains: Austria | CzechRepublic | Croatia | Hungary | Poland | Serbia | Slovakia | Slovenia
EasternAfrica
Eastern Africa covers Brunei | Comoros | Djibouti | Eritrea | Ethiopia | Kenya | Madagascar | Malawi | Mauritius | Mayotte | Mozambique | Reunion | Rwanda | Seychelles | Somalia | Tanzania | Uganda | Zambia | Zimbabwe
EasternEurope
Eastern Europe contains: Belarus | Ukraine | RussianFederation | Romania | Georgia | Moldova | Armenia | Azerbaijan
Europe
Europe contains the European union: Austria, AlandIslands , Belgium , Bulgaria , Cyprus , CzechRepublic , Denmark , Estonia , Finland , France , Germany , Greece , Hungary , Ireland , Italy , Latvia , Lithuania , Luxembourg , Malta , Netherlands , Poland , Portugal , Romania , Slovakia , Slovenia , Spain , Sweden, as well as the European countries outside of the European union: Albania , Andorra , Belarus , BosniaHerzegovina , Croatia , FaroeIslands , Gibraltar , Guernsey , Iceland , Jersey , Liechtenstein , Moldova , Monaco , Montenegro , Norway , RussianFederation , SanMarino , Serbia , Switzerland , Turkey , Ukraine, United Kingdom
EuropeanUnion
Countries in the European the union.
GetCapitol
get the map locations for with capitals per country
GetCountryName(GeoLocation)
Returns the country name associated with a GeoLocation
GetCountryName(Nullable<(Of <<'(GeoLocation>)>>))
Returns the country name associated with a GeoLocation
GetLocation
Gets the location based on the country name.
GetLocations
Get all locations that are in a given location key
IsAnBalticState
Determines whether the item is in a Baltic state.
IsCentralEuropean
Determines whether the item is in a Centrals European state.
IsCountry
determine if the location is a country
IsInAfrica
Determines whether the item is in Africa.
IsInAsia
Determines whether the item is in Asia.
IsInCentralAmerica
Determines whether the item is in Centrals America .
IsInEasternAfrica
Determines whether the item is in Eastern Africa.
IsInEasternEurope
Determines whether the item is in Eastern Europe.
IsInEurope
Determines whether the item is in Europe.
IsInLatinAmerica
Determines whether the item is in Latin America .
IsInMiddleAfrica
Determines whether the item is in Middle Africa.
IsInNorthAfrica
Determines whether the item is in North Africa.
IsInNorthAmerica
Determines whether the item is in North America .
IsInOceania
Determines whether the specified item is in Oceania.
IsInSouthAfrica
Determines whether the item is in South Africa.
IsInSouthAmerica
Determines whether the item is in South America .
IsInTheAmericas
Determines whether the item is in the Americas.
IsInTheCaribbean
Determines whether the item is in the Caribbean .
IsInTheEuropeanUnion
Determines whether the item is in the EuropeanUnion.
IsInTheMiddleEast
Determines whether the item in MiddleEast.
IsInWesterAfrica
Determines whether the item is in Wester Africa.
IsInWesternEurope
Determines whether the item is in a Western European state.
LatinAmerica
Latin America covers. SOUTH_AMERICA and CENTRAL_AMERICA
MiddleAfrica
Middle Africa covers Angola | Cameroon | Central African Republic | Chad | Congo | Equatorial Guinea | Gabon | São Tomé and Príncipe
MiddleEast
Middles the east contains the flowing countries:
  • Bahrain
  • Iraq
  • Iraq
  • Israel
  • Jordan
  • Kuwait
  • Lebanon
  • Oman
  • Palestine
  • Qatar
  • SaudiArabia
  • Syrian
  • Yemen
NorthAfrica
North Africa covers Algeria | Egypt | Libya | Morocco | SouthSudan | Sudan | Tunisia | Mauritania
NorthAmerica
North America covers: Bermuda | Canada | Greenland | Saint Pierre and Miquelon | UnitedStates
Oceania

Oceania is a pacific region and contains

  • Australia+ ChristmasIsland
  • Fiji,
  • FrenchPolynesia
  • Guam
  • Kiribati
  • Marshall Islands
  • Micronesia,
  • New Caledonia
  • New Zealand
  • Papua New Guinea
  • Samoa
  • Solomon Islands
  • Tonga
  • Vanuatu
SouthAfrica
South Africa covers Botswana | Eswatini | Lesotho | Namibia | South Africa
SouthAmerica
South America contains: Argentina | Bolivia | Brazil | Chile | Colombia | Ecuador | Falkland Islands | French Guiana | Paraguay | Peru | Suriname | Uruguay | Venezuela
SupportedCountries
returns the countries that are supported by this system.
SupportedIsoCodes
Returns the supported ISO country codes.
TheAmericas
The Americas covers NORTH_AMERICA | LATIN_AMERICA | CARIBEAN
TryGetCountryName
Tries to get the country name for a GeoLocation, will fail if the location is unknown or a region
TryGetGeoLocation
Tries to get the geo location of a country name.
TryGetIsoCode
Get the 2 letter ISO code for a given country
TryGetValue
Tries to get the country code from a 2 letter ISO string.
WesterAfrica
Wester Africa covers Benin | BurkinaFaso | CaboVerde | CoteDivoire | Gambia | Ghana | Guinea | GuineaBissau | Liberia | Mali | Mauritania | Niger | Senegal | SierraLeone | Togo
WesternEurope
Western the Europe contain European union as well as: Andorra | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Monaco | Norway | Switzerland, United Kingdom

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


Africa Method

GeoLocationMapping..::..Africa Method

Africa covers WESTER_AFRICA | SOUTH_AFRICA | NORTH_AFRICA | MIDDLE_AFRICA | EASTERN_AFRICA

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] Africa()

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


Asia Method

GeoLocationMapping..::..Asia Method

Asia covers. Afghanistan | Armenia | Azerbaijan | Bangladesh | Bhutan | Brunei | Cambodia | China | Georgia | HongKong | India | Indonesia | Japan | Kazakhstan | NorthKorea | SouthKorea | Kyrgyzstan | Lao | Macao | Malaysia | Maldives | Mongolia | Myanmar | Nepal | Pakistan | Philippines | Singapore | SriLanka | Taiwan | Tajikistan | Thailand | TimorLeste | Turkmenistan | Uzbekistan | VietNam

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] Asia()

Return Value

Walter.Web.FireWall.BOM.Geo.GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


BalticStates Method

GeoLocationMapping..::..BalticStates Method

Baltic states contains: Estonia | Latvia | Lithuania.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] BalticStates()

Return Value

GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


Caribbean Method

GeoLocationMapping..::..Caribbean Method

The Caribbeans: Anguilla | AntiguaAndBarbuda | Aruba | Bahamas | Barbados | Bonaire | VirginIslandsBritish | CaymanIslands | Cuba | Curacao | Dominica | Dominican Republic | Grenada | Guadeloupe | Haiti | Jamaica | Martinique | Montserrat | Puerto Rico | Saint Barthelemy | Saint Kitts and Nevis | SaintLucia | Saint Martin | Trinidad And Tobago | Turks and Caicos | US Virgin Islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] Caribbean()

Return Value

Walter.Web.FireWall.BOM.Geo.GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


CentralAmerica Method

GeoLocationMapping..::..CentralAmerica Method

Centrals America contains: Belize | CostaRica | ElSalvador | Guatemala | Honduras | Nicaragua | Panama

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] CentralAmerica()

Return Value

GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


CentralEurope Method

GeoLocationMapping..::..CentralEurope Method

Centrals Europe contains: Austria | CzechRepublic | Croatia | Hungary | Poland | Serbia | Slovakia | Slovenia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] CentralEurope()

Return Value

GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


EasternAfrica Method

GeoLocationMapping..::..EasternAfrica Method

Eastern Africa covers Brunei | Comoros | Djibouti | Eritrea | Ethiopia | Kenya | Madagascar | Malawi | Mauritius | Mayotte | Mozambique | Reunion | Rwanda | Seychelles | Somalia | Tanzania | Uganda | Zambia | Zimbabwe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] EasternAfrica()

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


EasternEurope Method

GeoLocationMapping..::..EasternEurope Method

Eastern Europe contains: Belarus | Ukraine | RussianFederation | Romania | Georgia | Moldova | Armenia | Azerbaijan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] EasternEurope()

Return Value

GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


Europe Method

GeoLocationMapping..::..Europe Method

Europe contains the European union: Austria, AlandIslands , Belgium , Bulgaria , Cyprus , CzechRepublic , Denmark , Estonia , Finland , France , Germany , Greece , Hungary , Ireland , Italy , Latvia , Lithuania , Luxembourg , Malta , Netherlands , Poland , Portugal , Romania , Slovakia , Slovenia , Spain , Sweden, as well as the European countries outside of the European union: Albania , Andorra , Belarus , BosniaHerzegovina , Croatia , FaroeIslands , Gibraltar , Guernsey , Iceland , Jersey , Liechtenstein , Moldova , Monaco , Montenegro , Norway , RussianFederation , SanMarino , Serbia , Switzerland , Turkey , Ukraine, United Kingdom

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] Europe()

Return Value

GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


EuropeanUnion Method

GeoLocationMapping..::..EuropeanUnion Method

Countries in the European the union.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] EuropeanUnion()

Return Value

IEnumerable<GeoLocation>.

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


GetCapitol Method

GeoLocationMapping..::..GetCapitol Method

get the map locations for with capitals per country

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static SimpleLatLong GetCapitol(
    GeoLocation location
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


GetCountryName Method

GeoLocationMapping..::..GetCountryName Method

Overload List

Name | Description
GetCountryName(GeoLocation) | Returns the country name associated with a GeoLocation
GetCountryName(Nullable<(Of <<'(GeoLocation>)>>)) | Returns the country name associated with a GeoLocation

See Also

GeoLocationMapping Class
GeoLocationMapping Members
Walter.BOM.Geo Namespace


GetCountryName Method (GeoLocation)

GeoLocationMapping..::..GetCountryName Method (GeoLocation)

Returns the country name associated with a GeoLocation

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string GetCountryName(
    GeoLocation location
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation
The location to look for

Return Value

The country name

Remarks

If the location is not a country but UnKnown a Region the region will ToString representation will be used

See Also

GeoLocationMapping Class
GetCountryName Overload
Walter.BOM.Geo Namespace
GeoLocationMapping..::..TryGetCountryName(GeoLocation, String%)
GeoLocationMapping..::..LocationTable


GetCountryName Method (Nullable(GeoLocation))

GeoLocationMapping..::..GetCountryName Method (Nullable<(Of <(<'GeoLocation>)>)>)

Returns the country name associated with a GeoLocation

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string GetCountryName(
    Nullable<GeoLocation> location
)

Parameters

location
Type: Nullable <(Of <(<' GeoLocation >)>)>
The location to look for

Return Value

The country name

Remarks

If the location is not a country but UnKnown a Region the region will ToString representation will be used

See Also

GeoLocationMapping Class
GetCountryName Overload
Walter.BOM.Geo Namespace
GeoLocationMapping..::..TryGetCountryName(GeoLocation, String%)
GeoLocationMapping..::..LocationTable


GetLocation Method

GeoLocationMapping..::..GetLocation Method

Gets the location based on the country name.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation GetLocation(
    string countryName
)

Parameters

countryName
Type: String
Name of the country.

Return Value

Walter.BOM.Geo.GeoLocation.

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


GetLocations Method

GeoLocationMapping..::..GetLocations Method

Get all locations that are in a given location key

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] GetLocations(
    GeoLocation location
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation
The location key of country and regions

Return Value

a array with a single country that are included in regions if a region was provided

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsAnBalticState Method

GeoLocationMapping..::..IsAnBalticState Method

Determines whether the item is in a Baltic state.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsAnBalticState(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Baltic states

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsCentralEuropean Method

GeoLocationMapping..::..IsCentralEuropean Method

Determines whether the item is in a Centrals European state.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsCentralEuropean(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Centrals European states

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsCountry Method

GeoLocationMapping..::..IsCountry Method

determine if the location is a country

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsCountry(
    GeoLocation location
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation

Return Value

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInAfrica Method

GeoLocationMapping..::..IsInAfrica Method

Determines whether the item is in Africa.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInAfrica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Eastern African countries

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInAsia Method

GeoLocationMapping..::..IsInAsia Method

Determines whether the item is in Asia.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInAsia(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of Asia

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInCentralAmerica Method

GeoLocationMapping..::..IsInCentralAmerica Method

Determines whether the item is in Centrals America .

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInCentralAmerica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of Centrals America

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInEasternAfrica Method

GeoLocationMapping..::..IsInEasternAfrica Method

Determines whether the item is in Eastern Africa.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInEasternAfrica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Eastern African countries

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInEasternEurope Method

GeoLocationMapping..::..IsInEasternEurope Method

Determines whether the item is in Eastern Europe.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInEasternEurope(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Eastern European states

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInEurope Method

GeoLocationMapping..::..IsInEurope Method

Determines whether the item is in Europe.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInEurope(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of Europe

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInLatinAmerica Method

GeoLocationMapping..::..IsInLatinAmerica Method

Determines whether the item is in Latin America .

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInLatinAmerica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of Centrals America

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInMiddleAfrica Method

GeoLocationMapping..::..IsInMiddleAfrica Method

Determines whether the item is in Middle Africa.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInMiddleAfrica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Middle African countries

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInNorthAfrica Method

GeoLocationMapping..::..IsInNorthAfrica Method

Determines whether the item is in North Africa.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInNorthAfrica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the North African countries

Remarks

The countries included are Algeria | Egypt | Libya | Morocco | SouthSudan | Sudan | Tunisia | Mauritania

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInNorthAmerica Method

GeoLocationMapping..::..IsInNorthAmerica Method

Determines whether the item is in North America .

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInNorthAmerica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of North America

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInOceania Method

GeoLocationMapping..::..IsInOceania Method

Determines whether the specified item is in Oceania.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInOceania(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the specified item is in Oceania; otherwise, false.

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInSouthAfrica Method

GeoLocationMapping..::..IsInSouthAfrica Method

Determines whether the item is in South Africa.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInSouthAfrica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the South African countries

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInSouthAmerica Method

GeoLocationMapping..::..IsInSouthAmerica Method

Determines whether the item is in South America .

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInSouthAmerica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of South America

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInTheAmericas Method

GeoLocationMapping..::..IsInTheAmericas Method

Determines whether the item is in the Americas.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInTheAmericas(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Americas

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInTheCaribbean Method

GeoLocationMapping..::..IsInTheCaribbean Method

Determines whether the item is in the Caribbean .

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInTheCaribbean(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Caribbean

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInTheEuropeanUnion Method

GeoLocationMapping..::..IsInTheEuropeanUnion Method

Determines whether the item is in the EuropeanUnion.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInTheEuropeanUnion(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the EuropeanUnion

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInTheMiddleEast Method

GeoLocationMapping..::..IsInTheMiddleEast Method

Determines whether the item in MiddleEast.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInTheMiddleEast(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the MiddleEast

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInWesterAfrica Method

GeoLocationMapping..::..IsInWesterAfrica Method

Determines whether the item is in Wester Africa.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInWesterAfrica(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Wester African countries

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


IsInWesternEurope Method

GeoLocationMapping..::..IsInWesternEurope Method

Determines whether the item is in a Western European state.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool IsInWesternEurope(
    GeoLocation item
)

Parameters

item
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

true if the item is considered to be part of the Western European states

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


LatinAmerica Method

GeoLocationMapping..::..LatinAmerica Method

Latin America covers. SOUTH_AMERICA and CENTRAL_AMERICA

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] LatinAmerica()

Return Value

GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


MiddleAfrica Method

GeoLocationMapping..::..MiddleAfrica Method

Middle Africa covers Angola | Cameroon | Central African Republic | Chad | Congo | Equatorial Guinea | Gabon | São Tomé and Príncipe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] MiddleAfrica()

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


MiddleEast Method

GeoLocationMapping..::..MiddleEast Method

Middles the east contains the flowing countries:
  • Bahrain
  • Iraq
  • Iraq
  • Israel
  • Jordan
  • Kuwait
  • Lebanon
  • Oman
  • Palestine
  • Qatar
  • SaudiArabia
  • Syrian
  • Yemen

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] MiddleEast()

Return Value

An list containing the countries in the region

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


NorthAfrica Method

GeoLocationMapping..::..NorthAfrica Method

North Africa covers Algeria | Egypt | Libya | Morocco | SouthSudan | Sudan | Tunisia | Mauritania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] NorthAfrica()

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


NorthAmerica Method

GeoLocationMapping..::..NorthAmerica Method

North America covers: Bermuda | Canada | Greenland | Saint Pierre and Miquelon | UnitedStates

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] NorthAmerica()

Return Value

Walter.Web.FireWall.BOM.Geo.GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


Oceania Method

GeoLocationMapping..::..Oceania Method

Oceania is a pacific region and contains

  • Australia+ ChristmasIsland
  • Fiji,
  • FrenchPolynesia
  • Guam
  • Kiribati
  • Marshall Islands
  • Micronesia,
  • New Caledonia
  • New Zealand
  • Papua New Guinea
  • Samoa
  • Solomon Islands
  • Tonga
  • Vanuatu

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] Oceania()

Return Value

An array containing the countries in the region

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


SouthAfrica Method

GeoLocationMapping..::..SouthAfrica Method

South Africa covers Botswana | Eswatini | Lesotho | Namibia | South Africa

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] SouthAfrica()

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


SouthAmerica Method

GeoLocationMapping..::..SouthAmerica Method

South America contains: Argentina | Bolivia | Brazil | Chile | Colombia | Ecuador | Falkland Islands | French Guiana | Paraguay | Peru | Suriname | Uruguay | Venezuela

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] SouthAmerica()

Return Value

Walter.Web.FireWall.BOM.Geo.GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


SupportedCountries Method

GeoLocationMapping..::..SupportedCountries Method

returns the countries that are supported by this system.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] SupportedCountries()

Return Value

GeoLocation[].

Remarks

if storing in the a database the data type to use is a .net ulong

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


SupportedIsoCodes Method

GeoLocationMapping..::..SupportedIsoCodes Method

Returns the supported ISO country codes.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string[] SupportedIsoCodes()

Return Value

IEnumerable<System.String>.

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


TheAmericas Method

GeoLocationMapping..::..TheAmericas Method

The Americas covers NORTH_AMERICA | LATIN_AMERICA | CARIBEAN

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] TheAmericas()

Return Value

Walter.Web.FireWall.BOM.Geo.GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


TryGetCountryName Method

GeoLocationMapping..::..TryGetCountryName Method

Tries to get the country name for a GeoLocation, will fail if the location is unknown or a region

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryGetCountryName(
    GeoLocation location,
    out string name
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation
the location to query
name
Type: String %
the display name or an empty string if not found

Return Value

True if found, false if not

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace
GeoLocationMapping..::..GetCountryName(GeoLocation)
GeoLocationMapping..::..LocationTable


TryGetGeoLocation Method

GeoLocationMapping..::..TryGetGeoLocation Method

Tries to get the geo location of a country name.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryGetGeoLocation(
    string name,
    out GeoLocation country
)

Parameters

name
Type: String
The name to lookup.
country
Type: Walter.BOM.Geo..::..GeoLocation %
The country mapped to the country name.

Return Value

true if found

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


TryGetIsoCode Method

GeoLocationMapping..::..TryGetIsoCode Method

Get the 2 letter ISO code for a given country

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryGetIsoCode(
    GeoLocation country,
    out string isoCode
)

Parameters

country
Type: Walter.BOM.Geo..::..GeoLocation
The geographic enum value to translate
isoCode
Type: String %
The 2 letter ISO code

Return Value

True if country code was set

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


TryGetValue Method

GeoLocationMapping..::..TryGetValue Method

Tries to get the country code from a 2 letter ISO string.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryGetValue(
    Nullable<string> IsoCode,
    out GeoLocation country
)

Parameters

IsoCode
Type: Nullable <(Of <(<' String >)>)>
The 2 letter ISO code.
country
Type: Walter.BOM.Geo..::..GeoLocation %
The country.

Return Value

true if found the country code is populated, false otherwise.

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


WesterAfrica Method

GeoLocationMapping..::..WesterAfrica Method

Wester Africa covers Benin | BurkinaFaso | CaboVerde | CoteDivoire | Gambia | Ghana | Guinea | GuineaBissau | Liberia | Mali | Mauritania | Niger | Senegal | SierraLeone | Togo

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] WesterAfrica()

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


WesternEurope Method

GeoLocationMapping..::..WesternEurope Method

Western the Europe contain European union as well as: Andorra | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Monaco | Norway | Switzerland, United Kingdom

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static GeoLocation[] WesternEurope()

Return Value

Walter.Web.FireWall.BOM.Geo.GeoLocation[].

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


GeoLocationMapping Properties

The GeoLocationMapping type exposes the following members.

Properties

Name | Description
CountryNamesToIsoCodes | Key = country name, value is the 2 letter country code for the ISO 3166-1 country name (including some exceptions)
LocationTable | List with tuples of the supported countries, the format is [GeoLocation | Country Name | 2Letter ISO Code]

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


CountryNamesToIsoCodes Property

GeoLocationMapping..::..CountryNamesToIsoCodes Property

Key = country name, value is the 2 letter country code for the ISO 3166-1 country name (including some exceptions)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static Dictionary<string, string> CountryNamesToIsoCodes { get; }

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace


LocationTable Property

GeoLocationMapping..::..LocationTable Property

List with tuples of the supported countries, the format is [GeoLocation | Country Name | 2Letter ISO Code]

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static IReadOnlyList<ValueTuple<GeoLocation, string, string>> LocationTable { get; }

See Also

GeoLocationMapping Class
Walter.BOM.Geo Namespace
GeoLocationMapping..::..TryGetCountryName(GeoLocation, String%)
GeoLocationMapping..::..GetCountryName(GeoLocation)


IGeoBuffer Interface

Interface IGeoBuffer used for store GEO data based on the IP address

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IGeoBuffer

See Also

IGeoBuffer Members
Walter.BOM.Geo Namespace


IGeoBuffer Members

The IGeoBuffer type exposes the following members.

Methods

 | Name | Description
Public method | Remember | Remembers the specified address.
Public method | TryGet | Tries the get.

See Also

IGeoBuffer Interface
Walter.BOM.Geo Namespace


IGeoBuffer Methods

The IGeoBuffer type exposes the following members.

Methods

 | Name | Description
Public method | Remember | Remembers the specified address.
Public method | TryGet | Tries the get.

See Also

IGeoBuffer Interface
Walter.BOM.Geo Namespace


Remember Method

IGeoBuffer..::..Remember Method

Remembers the specified address.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void Remember(
    IPAddress address,
    SimpleLatLong latLong,
    GeoLocation location
)

Parameters

address
Type: IPAddress
The address.
latLong
Type: Walter.BOM.Geo..::..SimpleLatLong
The lat long.
location
Type: Walter.BOM.Geo..::..GeoLocation
the Geo location if known

See Also

IGeoBuffer Interface
Walter.BOM.Geo Namespace


TryGet Method

IGeoBuffer..::..TryGet Method

Tries the get.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool TryGet(
    IPAddress address,
    out SimpleLatLong latLong
)

Parameters

address
Type: IPAddress
The address.
latLong
Type: Walter.BOM.Geo..::..SimpleLatLong %
The lat long.

Return Value

true if XXXX, false otherwise.

See Also

IGeoBuffer Interface
Walter.BOM.Geo Namespace


IGeoResolver Interface

Basic geography resolver

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IGeoResolver

See Also

IGeoResolver Members
Walter.BOM.Geo Namespace


IGeoResolver Members

The IGeoResolver type exposes the following members.

Methods

 | Name | Description
Public method | QueryLocation | queries IP address to retrieve country the request came from

See Also

IGeoResolver Interface
Walter.BOM.Geo Namespace


IGeoResolver Methods

The IGeoResolver type exposes the following members.

Methods

 | Name | Description
Public method | QueryLocation | queries IP address to retrieve country the request came from

See Also

IGeoResolver Interface
Walter.BOM.Geo Namespace


QueryLocation Method

IGeoResolver..::..QueryLocation Method

queries IP address to retrieve country the request came from

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
GeoLocation QueryLocation(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

the country

See Also

IGeoResolver Interface
Walter.BOM.Geo Namespace


IISPResolver Interface

Basic geography resolver

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IISPResolver

See Also

IISPResolver Members
Walter.BOM.Geo Namespace


IISPResolver Members

The IISPResolver type exposes the following members.

Methods

 | Name | Description
Public method | QueryASN | queries IP address to retrieve the name of the ISP hosting a IP address

See Also

IISPResolver Interface
Walter.BOM.Geo Namespace


IISPResolver Methods

The IISPResolver type exposes the following members.

Methods

 | Name | Description
Public method | QueryASN | queries IP address to retrieve the name of the ISP hosting a IP address

See Also

IISPResolver Interface
Walter.BOM.Geo Namespace


QueryASN Method

IISPResolver..::..QueryASN Method

queries IP address to retrieve the name of the ISP hosting a IP address

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string QueryASN(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

the ISP^s name

See Also

IISPResolver Interface
Walter.BOM.Geo Namespace


ILatLongResolver Interface

Tells that the GEO factory is also capable of providing lat/long values as well as city related information

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface ILatLongResolver : IGeoResolver

See Also

ILatLongResolver Members
Walter.BOM.Geo Namespace


ILatLongResolver Members

The ILatLongResolver type exposes the following members.

Methods

 | Name | Description
Public method | QueryMapLocation | the IP address to retrieve the map location from

See Also

ILatLongResolver Interface
Walter.BOM.Geo Namespace


ILatLongResolver Methods

The ILatLongResolver type exposes the following members.

Methods

 | Name | Description
Public method | QueryMapLocation | the IP address to retrieve the map location from

See Also

ILatLongResolver Interface
Walter.BOM.Geo Namespace


QueryMapLocation Method

ILatLongResolver..::..QueryMapLocation Method

the IP address to retrieve the map location from

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IMapLocation QueryMapLocation(
    IPAddress ipAddress
)

Parameters

ipAddress
Type: IPAddress
the address to look at

Return Value

Returns a map location or null if the IP address does not result resolve, see IMapLocation for details for details on the Location returned

See Also

ILatLongResolver Interface
Walter.BOM.Geo Namespace


IMapLocation Interface

A map location that can be used in emails and visualized on a map via the Lat en Long values. To be able to generate map data you must use an interface that implements ILatLongRepository

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IMapLocation

Remarks

To be able to generate map data you must use an interface that implements ILatLongRepository like NuGet package Walter.Web.FireWall.Geo.MaxMind working with the API as well as Free GeoLite2 files

See Also

IMapLocation Members
Walter.BOM.Geo Namespace


IMapLocation Members

The IMapLocation type exposes the following members.

Methods

 | Name | Description
Public method | GoogleMapLocation | Get a google map url for the address

Properties

 | Name | Description
Public property | CIDR | The IP address to a CIDR format (Classless Inter-Domain Routing) of the IP address that belongs to the map location
Public property | City | the name of the city
Public property | Country | The country as text
Public property | Expires | The date the entry should be considered as being expired and should no longer be used
Public property | Geo | Enumerator showing what country or region the location is on
Public property | IPAddress | The IP address that was used to generate the map location
Public property | Latitute | the approximate latitude location
Public property | Longitude | the approximate Longitude location

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


IMapLocation Methods

The IMapLocation type exposes the following members.

Methods

 | Name | Description
Public method | GoogleMapLocation | Get a google map url for the address

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


GoogleMapLocation Method

IMapLocation..::..GoogleMapLocation Method

Get a google map url for the address

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Uri GoogleMapLocation()

Return Value

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


IMapLocation Properties

The IMapLocation type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | The IP address to a CIDR format (Classless Inter-Domain Routing) of the IP address that belongs to the map location
Public property | City | the name of the city
Public property | Country | The country as text
Public property | Expires | The date the entry should be considered as being expired and should no longer be used
Public property | Geo | Enumerator showing what country or region the location is on
Public property | IPAddress | The IP address that was used to generate the map location
Public property | Latitute | the approximate latitude location
Public property | Longitude | the approximate Longitude location

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


CIDR Property

IMapLocation..::..CIDR Property

The IP address to a CIDR format (Classless Inter-Domain Routing) of the IP address that belongs to the map location

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
long CIDR { get; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


City Property

IMapLocation..::..City Property

the name of the city

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string City { get; set; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


Country Property

IMapLocation..::..Country Property

The country as text

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Country { get; set; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


Expires Property

IMapLocation..::..Expires Property

The date the entry should be considered as being expired and should no longer be used

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<DateTime> Expires { get; set; }

Remarks

If null the entry is flagged as never expires

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


Geo Property

IMapLocation..::..Geo Property

Enumerator showing what country or region the location is on

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
GeoLocation Geo { get; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


IPAddress Property

IMapLocation..::..IPAddress Property

The IP address that was used to generate the map location

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string IPAddress { get; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


Latitute Property

IMapLocation..::..Latitute Property

the approximate latitude location

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
double Latitute { get; set; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


Longitude Property

IMapLocation..::..Longitude Property

the approximate Longitude location

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
double Longitude { get; set; }

See Also

IMapLocation Interface
Walter.BOM.Geo Namespace


InMemmoryGeoBuffer Class

Class InMemmoryGeoBuffer. Implements the IGeoBuffer

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class InMemmoryGeoBuffer : IGeoBuffer

See Also

InMemmoryGeoBuffer Members
Walter.BOM.Geo Namespace
Walter.BOM.Geo..::..IGeoBuffer


InMemmoryGeoBuffer Members

The InMemmoryGeoBuffer type exposes the following members.

Constructors

 | Name | Description
Public method | InMemmoryGeoBuffer | Initializes a new instance of the InMemmoryGeoBuffer class.

Methods

 | Name | Description
Public method | Remember | Remembers the specified address.
Public method | TryGet | Tries the get.

See Also

InMemmoryGeoBuffer Class
Walter.BOM.Geo Namespace


InMemmoryGeoBuffer Constructor

Initializes a new instance of the InMemmoryGeoBuffer class.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public InMemmoryGeoBuffer(
    IMemoryCache memory
)

Parameters

memory
Type: IMemoryCache
The memory.

Exceptions

Exception | Condition
[ArgumentNullException] | memory

See Also

InMemmoryGeoBuffer Class
Walter.BOM.Geo Namespace


InMemmoryGeoBuffer Methods

The InMemmoryGeoBuffer type exposes the following members.

Methods

 | Name | Description
Public method | Remember | Remembers the specified address.
Public method | TryGet | Tries the get.

See Also

InMemmoryGeoBuffer Class
Walter.BOM.Geo Namespace


Remember Method

InMemmoryGeoBuffer..::..Remember Method

Remembers the specified address.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public void Remember(
    IPAddress address,
    SimpleLatLong latLong,
    GeoLocation location
)

Parameters

address
Type: IPAddress
The address.
latLong
Type: Walter.BOM.Geo..::..SimpleLatLong
The lat long.
location
Type: Walter.BOM.Geo..::..GeoLocation

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

InMemmoryGeoBuffer Class
Walter.BOM.Geo Namespace


TryGet Method

InMemmoryGeoBuffer..::..TryGet Method

Tries the get.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool TryGet(
    IPAddress address,
    out SimpleLatLong latLong
)

Parameters

address
Type: IPAddress
The address.
latLong
Type: Walter.BOM.Geo..::..SimpleLatLong %
The lat long.

Return Value

true if found, false otherwise.

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

InMemmoryGeoBuffer Class
Walter.BOM.Geo Namespace


LocationExtensionMethods Class

Helper method calculating coordinates to degrees

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class LocationExtensionMethods

See Also

LocationExtensionMethods Members
Walter.BOM.Geo Namespace


LocationExtensionMethods Members

Methods

Name | Description
LatitudeDegrees(Decimal) | convert latitude to GPS latitude degrees
LatitudeDegrees(Double) | convert latitude to GPS latitude degrees
LongitudeDegrees(Decimal) | convert Longitude to GPS Longitude degrees
LongitudeDegrees(Double) | convert Longitude to GPS Longitude degrees

See Also

LocationExtensionMethods Class
Walter.BOM.Geo Namespace


LocationExtensionMethods Methods

Methods

Name | Description
LatitudeDegrees(Decimal) | convert latitude to GPS latitude degrees
LatitudeDegrees(Double) | convert latitude to GPS latitude degrees
LongitudeDegrees(Decimal) | convert Longitude to GPS Longitude degrees
LongitudeDegrees(Double) | convert Longitude to GPS Longitude degrees

See Also

LocationExtensionMethods Class
Walter.BOM.Geo Namespace


LatitudeDegrees Method

LocationExtensionMethods..::..LatitudeDegrees Method

Overload List

Name | Description
LatitudeDegrees(Decimal) | convert latitude to GPS latitude degrees
LatitudeDegrees(Double) | convert latitude to GPS latitude degrees

See Also

LocationExtensionMethods Class
LocationExtensionMethods Members
Walter.BOM.Geo Namespace


LatitudeDegrees Method (Decimal)

LocationExtensionMethods..::..LatitudeDegrees Method (Decimal)

convert latitude to GPS latitude degrees

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string LatitudeDegrees(
    decimal latitude
)

Parameters

latitude
Type: Decimal
the point to convert to degrees

Return Value

string

See Also

LocationExtensionMethods Class
LatitudeDegrees Overload
Walter.BOM.Geo Namespace


LatitudeDegrees Method (Double)

LocationExtensionMethods..::..LatitudeDegrees Method (Double)

convert latitude to GPS latitude degrees

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string LatitudeDegrees(
    double latitude
)

Parameters

latitude
Type: Double
the point to convert to degrees

Return Value

string

See Also

LocationExtensionMethods Class
LatitudeDegrees Overload
Walter.BOM.Geo Namespace


LongitudeDegrees Method

LocationExtensionMethods..::..LongitudeDegrees Method

Overload List

Name | Description
LongitudeDegrees(Decimal) | convert Longitude to GPS Longitude degrees
LongitudeDegrees(Double) | convert Longitude to GPS Longitude degrees

See Also

LocationExtensionMethods Class
LocationExtensionMethods Members
Walter.BOM.Geo Namespace


LongitudeDegrees Method (Decimal)

LocationExtensionMethods..::..LongitudeDegrees Method (Decimal)

convert Longitude to GPS Longitude degrees

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string LongitudeDegrees(
    decimal longitude
)

Parameters

longitude
Type: Decimal
the point to convert to degrees

Return Value

string

See Also

LocationExtensionMethods Class
LongitudeDegrees Overload
Walter.BOM.Geo Namespace


LongitudeDegrees Method (Double)

LocationExtensionMethods..::..LongitudeDegrees Method (Double)

convert Longitude to GPS Longitude degrees

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string LongitudeDegrees(
    double longitude
)

Parameters

longitude
Type: Double
the point to convert to degrees

Return Value

string

See Also

LocationExtensionMethods Class
LongitudeDegrees Overload
Walter.BOM.Geo Namespace


SimpleLatLong Structure

Simple lat-long data structure

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public struct SimpleLatLong

See Also

SimpleLatLong Members
Walter.BOM.Geo Namespace


SimpleLatLong Members

The SimpleLatLong type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(SimpleLatLong) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
 | Load | generate from csv header
Public method | ToCsv | CSV row
Public method | ToString | string representation

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Fields

Name | Description
UnKnown | constant used for comparing to see if the location is unknown

Properties

 | Name | Description
Public property | AccuracyRadiosKm | The Approximate accuracy of the location within the country
Public property | City | the city
Public property | Country | The country
Public property | Lat | latitude
Public property | Latitude | Latitude as GPS coordinates
Public property | Lng | longitude
Public property | Longitude | longitude as GPS coordinates
Public property | RecordedUtc | date entry was recorded

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


SimpleLatLong Fields

The SimpleLatLong type exposes the following members.

Fields

Name | Description
UnKnown | constant used for comparing to see if the location is unknown

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


UnKnown Field

SimpleLatLong..::..UnKnown Field

constant used for comparing to see if the location is unknown

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const string UnKnown

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


SimpleLatLong Methods

The SimpleLatLong type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(SimpleLatLong) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
 | Load | generate from csv header
Public method | ToCsv | CSV row
Public method | ToString | string representation

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Equals Method

SimpleLatLong..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(SimpleLatLong) | Indicates whether the current object is equal to another object of the same type.

See Also

SimpleLatLong Structure
SimpleLatLong Members
Walter.BOM.Geo Namespace


Equals Method (Nullable(Object))

SimpleLatLong..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

SimpleLatLong Structure
Equals Overload
Walter.BOM.Geo Namespace


Equals Method (SimpleLatLong)

SimpleLatLong..::..Equals Method (SimpleLatLong)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool Equals(
    SimpleLatLong other
)

Parameters

other
Type: Walter.BOM.Geo..::..SimpleLatLong
An object to compare with this object.

Return Value

true if the current object is equal to the other parameter; otherwise, false.

See Also

SimpleLatLong Structure
Equals Overload
Walter.BOM.Geo Namespace


GetHashCode Method

SimpleLatLong..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Load Method

SimpleLatLong..::..Load Method

generate from csv header

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static SimpleLatLong Load(
    StringValues csv
)

Parameters

csv
Type: StringValues
The CSV.

Return Value

SimpleLatLong.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


ToCsv Method

SimpleLatLong..::..ToCsv Method

CSV row

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public StringValues ToCsv()

Return Value

StringValues.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


ToString Method

SimpleLatLong..::..ToString Method

string representation

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string ToString()

Return Value

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


SimpleLatLong Operators

The SimpleLatLong type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Equality Operator

SimpleLatLong..::..Equality Operator

Implements the == operator.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool operator ==(
    SimpleLatLong left,
    SimpleLatLong right
)

Parameters

left
Type: Walter.BOM.Geo..::..SimpleLatLong
The left.
right
Type: Walter.BOM.Geo..::..SimpleLatLong
The right.

Return Value

The result of the operator.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Inequality Operator

SimpleLatLong..::..Inequality Operator

Implements the != operator.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool operator !=(
    SimpleLatLong left,
    SimpleLatLong right
)

Parameters

left
Type: Walter.BOM.Geo..::..SimpleLatLong
The left.
right
Type: Walter.BOM.Geo..::..SimpleLatLong
The right.

Return Value

The result of the operator.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


SimpleLatLong Properties

The SimpleLatLong type exposes the following members.

Properties

 | Name | Description
Public property | AccuracyRadiosKm | The Approximate accuracy of the location within the country
Public property | City | the city
Public property | Country | The country
Public property | Lat | latitude
Public property | Latitude | Latitude as GPS coordinates
Public property | Lng | longitude
Public property | Longitude | longitude as GPS coordinates
Public property | RecordedUtc | date entry was recorded

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


AccuracyRadiosKm Property

SimpleLatLong..::..AccuracyRadiosKm Property

The Approximate accuracy of the location within the country

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int AccuracyRadiosKm { get; set; }

Remarks

Unless the user provides access to a GPS module one will not have a accurate location as no mapping exists between a DNS assigned IP address with a provider to a client with a ISP due to client privacy regulations (fortunately)

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


City Property

SimpleLatLong..::..City Property

the city

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string City { get; set; }

Field Value

The city.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Country Property

SimpleLatLong..::..Country Property

The country

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Country { get; set; }

Field Value

The country.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Lat Property

SimpleLatLong..::..Lat Property

latitude

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public double Lat { get; set; }

Field Value

The lat.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Latitude Property

SimpleLatLong..::..Latitude Property

Latitude as GPS coordinates

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Latitude { get; }

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Lng Property

SimpleLatLong..::..Lng Property

longitude

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public double Lng { get; set; }

Field Value

The LNG.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Longitude Property

SimpleLatLong..::..Longitude Property

longitude as GPS coordinates

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string Longitude { get; }

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


RecordedUtc Property

SimpleLatLong..::..RecordedUtc Property

date entry was recorded

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DateTime RecordedUtc { get; set; }

Field Value

The recorded UTC.

See Also

SimpleLatLong Structure
Walter.BOM.Geo Namespace


Walter.BOM.Violations Namespace

Interfaces

 | Interface | Description
Public interface | IContentSecurityPolicyViolation | Interface containing content violation report
Public interface | IContentSecurityPolicyViolationsReport | Report that contains security violations for a specific page, this can be linked and is not generally safe contained content


IContentSecurityPolicyViolation Interface

Interface containing content violation report

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IContentSecurityPolicyViolation

See Also

IContentSecurityPolicyViolation Members
Walter.BOM.Violations Namespace


IContentSecurityPolicyViolation Members

The IContentSecurityPolicyViolation type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | the integer representation of the ip address
Public property | Country | country of the person or bot creating the violation
Public property | CreatedUtc | when the violation occurred
Public property | Details | the details of the violation
Public property | DnsName | The dns name of the owner of the IP address
Public property | IncidentId | Gets the incident identifier for the policy violation.
Public property | IPAddress | the IP address used by the person or bot that triggered the violation
Public property | ProviderGeoLocation | The geo location of the provider
Public property | Proxy | the location of the proxy if proxy resolver is used

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


IContentSecurityPolicyViolation Properties

The IContentSecurityPolicyViolation type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | the integer representation of the ip address
Public property | Country | country of the person or bot creating the violation
Public property | CreatedUtc | when the violation occurred
Public property | Details | the details of the violation
Public property | DnsName | The dns name of the owner of the IP address
Public property | IncidentId | Gets the incident identifier for the policy violation.
Public property | IPAddress | the IP address used by the person or bot that triggered the violation
Public property | ProviderGeoLocation | The geo location of the provider
Public property | Proxy | the location of the proxy if proxy resolver is used

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


CIDR Property

IContentSecurityPolicyViolation..::..CIDR Property

the integer representation of the ip address

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
long CIDR { get; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


Country Property

IContentSecurityPolicyViolation..::..Country Property

country of the person or bot creating the violation

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
GeoLocation Country { get; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


CreatedUtc Property

IContentSecurityPolicyViolation..::..CreatedUtc Property

when the violation occurred

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
DateTime CreatedUtc { get; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


Details Property

IContentSecurityPolicyViolation..::..Details Property

the details of the violation

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IContentSecurityPolicyViolationsReport Details { get; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


DnsName Property

IContentSecurityPolicyViolation..::..DnsName Property

The dns name of the owner of the IP address

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string DnsName { get; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


IncidentId Property

IContentSecurityPolicyViolation..::..IncidentId Property

Gets the incident identifier for the policy violation.

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Guid IncidentId { get; }

Field Value

The incident identifier.

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


IPAddress Property

IContentSecurityPolicyViolation..::..IPAddress Property

the IP address used by the person or bot that triggered the violation

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IPAddress IPAddress { get; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


ProviderGeoLocation Property

IContentSecurityPolicyViolation..::..ProviderGeoLocation Property

The geo location of the provider

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
GeoLocation ProviderGeoLocation { get; set; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


Proxy Property

IContentSecurityPolicyViolation..::..Proxy Property

the location of the proxy if proxy resolver is used

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
GeoLocation Proxy { get; set; }

See Also

IContentSecurityPolicyViolation Interface
Walter.BOM.Violations Namespace


IContentSecurityPolicyViolationsReport Interface

Report that contains security violations for a specific page, this can be linked and is not generally safe contained content

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IContentSecurityPolicyViolationsReport

See Also

IContentSecurityPolicyViolationsReport Members
Walter.BOM.Violations Namespace


IContentSecurityPolicyViolationsReport Members

The IContentSecurityPolicyViolationsReport type exposes the following members.

Properties

 | Name | Description
Public property | BlockedUri | the URL blocked
Public property | Disposition | The disposition
Public property | DocumentUri | The documents URL
Public property | EffectiveDirective | The directive that blocked
Public property | LineNumber | the line number in the document that caused the violation
Public property | OriginalPolicy | the original policy
Public property | Referrer | the previous page
Public property | ScriptSample | a sample of the script causing the violation
Public property | SourceFile | the file name
Public property | StatusCode | the status code generated
Public property | ViolatedDirective | the directive violated

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


IContentSecurityPolicyViolationsReport Properties

The IContentSecurityPolicyViolationsReport type exposes the following members.

Properties

 | Name | Description
Public property | BlockedUri | the URL blocked
Public property | Disposition | The disposition
Public property | DocumentUri | The documents URL
Public property | EffectiveDirective | The directive that blocked
Public property | LineNumber | the line number in the document that caused the violation
Public property | OriginalPolicy | the original policy
Public property | Referrer | the previous page
Public property | ScriptSample | a sample of the script causing the violation
Public property | SourceFile | the file name
Public property | StatusCode | the status code generated
Public property | ViolatedDirective | the directive violated

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


BlockedUri Property

IContentSecurityPolicyViolationsReport..::..BlockedUri Property

the URL blocked

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string BlockedUri { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


Disposition Property

IContentSecurityPolicyViolationsReport..::..Disposition Property

The disposition

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Disposition { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


DocumentUri Property

IContentSecurityPolicyViolationsReport..::..DocumentUri Property

The documents URL

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string DocumentUri { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


EffectiveDirective Property

IContentSecurityPolicyViolationsReport..::..EffectiveDirective Property

The directive that blocked

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string EffectiveDirective { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


LineNumber Property

IContentSecurityPolicyViolationsReport..::..LineNumber Property

the line number in the document that caused the violation

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int LineNumber { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


OriginalPolicy Property

IContentSecurityPolicyViolationsReport..::..OriginalPolicy Property

the original policy

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string OriginalPolicy { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


Referrer Property

IContentSecurityPolicyViolationsReport..::..Referrer Property

the previous page

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string Referrer { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


ScriptSample Property

IContentSecurityPolicyViolationsReport..::..ScriptSample Property

a sample of the script causing the violation

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ScriptSample { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


SourceFile Property

IContentSecurityPolicyViolationsReport..::..SourceFile Property

the file name

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string SourceFile { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


StatusCode Property

IContentSecurityPolicyViolationsReport..::..StatusCode Property

the status code generated

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
int StatusCode { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


ViolatedDirective Property

IContentSecurityPolicyViolationsReport..::..ViolatedDirective Property

the directive violated

Namespace: Walter.BOM.Violations
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string ViolatedDirective { get; set; }

See Also

IContentSecurityPolicyViolationsReport Interface
Walter.BOM.Violations Namespace


Walter.Casts Namespace

Classes

 | Class | Description
Public class | ObjectExtensions | extension methods used by the framework when working with objects


ObjectExtensions Class

extension methods used by the framework when working with objects

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static class ObjectExtensions

See Also

ObjectExtensions Members
Walter.Casts Namespace


ObjectExtensions Members

The ObjectExtensions type exposes the following members.

Methods

Name | Description
CanCast(Nullable<(Of <<'(Object>)>>), Type) | test and see if a item can safely be casted
CanCast(String, Type) | test and see if a type, must be a class, can safely be casted using json
CanCast(NameValueCollection, Type) | validate if a NameValueCollection collection can be cast into a given class
CanCast(IDictionary<(Of <<'(String, String>)>>), Type) | validate if a NameValueCollection collection can be cast into a given class
ToCheckSum | get the checksum of a value
ToJson | Convert a name value collection to a flat json object
ToType(NameValueCollection, Type) | Converts to the NameValueCollection to a given type.
ToType(IDictionary<(Of <<'(String, String>)>>), Type) | Converts to the dictionary to a given type.
TryAsNameValueCollection | try and cast a object to a NameValueCollection
TryCast<(Of <<'(T>)>>) | Try and cast the object to a given type

See Also

ObjectExtensions Class
Walter.Casts Namespace


ObjectExtensions Methods

The ObjectExtensions type exposes the following members.

Methods

Name | Description
CanCast(Nullable<(Of <<'(Object>)>>), Type) | test and see if a item can safely be casted
CanCast(String, Type) | test and see if a type, must be a class, can safely be casted using json
CanCast(NameValueCollection, Type) | validate if a NameValueCollection collection can be cast into a given class
CanCast(IDictionary<(Of <<'(String, String>)>>), Type) | validate if a NameValueCollection collection can be cast into a given class
ToCheckSum | get the checksum of a value
ToJson | Convert a name value collection to a flat json object
ToType(NameValueCollection, Type) | Converts to the NameValueCollection to a given type.
ToType(IDictionary<(Of <<'(String, String>)>>), Type) | Converts to the dictionary to a given type.
TryAsNameValueCollection | try and cast a object to a NameValueCollection
TryCast<(Of <<'(T>)>>) | Try and cast the object to a given type

See Also

ObjectExtensions Class
Walter.Casts Namespace


CanCast Method

ObjectExtensions..::..CanCast Method

Overload List

Name | Description
CanCast(Nullable<(Of <<'(Object>)>>), Type) | test and see if a item can safely be casted
CanCast(String, Type) | test and see if a type, must be a class, can safely be casted using json
CanCast(NameValueCollection, Type) | validate if a NameValueCollection collection can be cast into a given class
CanCast(IDictionary<(Of <<'(String, String>)>>), Type) | validate if a NameValueCollection collection can be cast into a given class

See Also

ObjectExtensions Class
ObjectExtensions Members
Walter.Casts Namespace


CanCast Method (Nullable(Object), Type)

ObjectExtensions..::..CanCast Method (Nullable<(Of <(<'Object>)>)>, Type)

test and see if a item can safely be casted

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool CanCast(
    Nullable<Object> source,
    Type type
)

Parameters

source
Type: Nullable <(Of <(<' Object >)>)>
the source to validate
type
Type: Type
the type to be casted into

Return Value

true if a cast is possible

See Also

ObjectExtensions Class
CanCast Overload
Walter.Casts Namespace


CanCast Method (String, Type)

ObjectExtensions..::..CanCast Method (String, Type)

test and see if a type, must be a class, can safely be casted using json

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool CanCast(
    string json,
    Type type
)

Parameters

json
Type: String
the json to validate
type
Type: Type
the type to be casted into

Return Value

true if a cast is possible

See Also

ObjectExtensions Class
CanCast Overload
Walter.Casts Namespace


CanCast Method (NameValueCollection, Type)

ObjectExtensions..::..CanCast Method (NameValueCollection, Type)

validate if a NameValueCollection collection can be cast into a given class

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool CanCast(
    NameValueCollection collection,
    Type type
)

Parameters

collection
Type: NameValueCollection
the collection to validate
type
Type: Type
the type to test

Return Value

true if possible

Exceptions

Exception | Condition
[ArgumentNullException] | collection is required
[ArgumentNullException] | type is required

See Also

ObjectExtensions Class
CanCast Overload
Walter.Casts Namespace


CanCast Method (IDictionary(String, String), Type)

ObjectExtensions..::..CanCast Method (IDictionary<(Of <(<'String, String>)>)>, Type)

validate if a NameValueCollection collection can be cast into a given class

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool CanCast(
    IDictionary<string, string> collection,
    Type type
)

Parameters

collection
Type: IDictionary<(Of <(<' String, String >)>)>
the collection to validate
type
Type: Type
the type to test

Return Value

true if possible

Exceptions

Exception | Condition
[ArgumentNullException] | collection is needed
[ArgumentNullException] | Type is needed

See Also

ObjectExtensions Class
CanCast Overload
Walter.Casts Namespace


ToCheckSum Method

ObjectExtensions..::..ToCheckSum Method

get the checksum of a value

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static int ToCheckSum(
    Nullable<Object> source
)

Parameters

source
Type: Nullable <(Of <(<' Object >)>)>
the source to convert

Return Value

a checksum value for the provided object

See Also

ObjectExtensions Class
Walter.Casts Namespace
[Walter.Cypher.CheckSum.GenerateSqlChecksum(string)]


ToJson Method

ObjectExtensions..::..ToJson Method

Convert a name value collection to a flat json object

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static string ToJson(
    NameValueCollection collection
)

Parameters

collection
Type: NameValueCollection
the collection to transfer

Return Value

json string

Exceptions

Exception | Condition
[ArgumentNullException] | collection can't be null

See Also

ObjectExtensions Class
Walter.Casts Namespace


ToType Method

ObjectExtensions..::..ToType Method

Overload List

Name | Description
ToType(NameValueCollection, Type) | Converts to the NameValueCollection to a given type.
ToType(IDictionary<(Of <<'(String, String>)>>), Type) | Converts to the dictionary to a given type.

See Also

ObjectExtensions Class
ObjectExtensions Members
Walter.Casts Namespace


ToType Method (NameValueCollection, Type)

ObjectExtensions..::..ToType Method (NameValueCollection, Type)

Converts to the NameValueCollection to a given type.

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static Nullable<Object> ToType(
    NameValueCollection collection,
    Type type
)

Parameters

collection
Type: NameValueCollection
The collection.
type
Type: Type
The type.

Return Value

object or null

Exceptions

Exception | Condition
[ArgumentNullException] | nameof(collection)
[ArgumentNullException] | nameof(type)

See Also

ObjectExtensions Class
ToType Overload
Walter.Casts Namespace


ToType Method (IDictionary(String, String), Type)

ObjectExtensions..::..ToType Method (IDictionary<(Of <(<'String, String>)>)>, Type)

Converts to the dictionary to a given type.

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static Nullable<Object> ToType(
    IDictionary<string, string> collection,
    Type type
)

Parameters

collection
Type: IDictionary<(Of <(<' String, String >)>)>
The collection.
type
Type: Type
The type.

Return Value

object or null

Exceptions

Exception | Condition
[ArgumentNullException] | nameof(collection)
[ArgumentNullException] | nameof(type)

See Also

ObjectExtensions Class
ToType Overload
Walter.Casts Namespace


TryAsNameValueCollection Method

ObjectExtensions..::..TryAsNameValueCollection Method

try and cast a object to a NameValueCollection

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryAsNameValueCollection(
    Object obj,
    out Nullable<NameValueCollection> col
)

Parameters

obj
Type: Object
the object to cast
col
Type: Nullable <(Of <(<'NameValueCollection>)>)>%
the collection to populate

Return Value

true if successful

See Also

ObjectExtensions Class
Walter.Casts Namespace


TryCast(T) Method

ObjectExtensions..::..TryCast<(Of <(<'T>)>)> Method

Try and cast the object to a given type

Namespace: Walter.Casts
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryCast<T>(
    Object obj,
    out Nullable<T> result
)

Type Parameters

T
the type to cast into

Parameters

obj
Type: Object
the object to cast
result
Type: Nullable <(Of <(<'T>)>)>%
the value of the conversion

Return Value

true if the cast worked

See Also

ObjectExtensions Class
Walter.Casts Namespace


Walter.DataTools Namespace

Enumerations

 | Enumeration | Description
Public enumeration | TableTypes | Enum TableTypes specified what table definitions to generate


TableTypes Enumeration

Enum TableTypes specified what table definitions to generate

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public enum TableTypes

Members

Member name | Description
None | The table type is not set
CSP | The CSP
IP | The IP address
Incidents | The incidents
PageRequests | The page requests
EmailArchive | The email archive

See Also

Walter.DataTools Namespace


Walter.DataTools.MsSql Namespace

Classes

 | Class | Description
Public class | ConnectionDetails | Connection details for factory or repository that needs specialized connection configurations
Public class | ConnectionProperties | Class ConnectionProperties.
Public class | DatabaseMigrationException | constraint on the migration
Public class | DataBaseRepository | Class DataBaseRepository is the base repository for dealing with Walter.DataTools
Public class | DataTableExtensions | DataTable Extension methods
Public class | DBScriptConfiguration | Script configuration used with a database script update. if not altered the objects will be created in the dbo schema setting all permissions to public
Public class | EventException | Event exception class used when external code caused an exception
Public class | EventsException | Event exception class used when external code caused an exception
Public class | ExecuteStatementsException | Class ExecuteStatementsException. Implements the [System.Exception]
Public class | InitializeStateEventArgs | Initialization argument interface for events
Public class | TSqlResult | Contains TSQL statements executed including the result of the SQL statement
Public class | TSqlResult..::..TSqlError | the SQL server error generated by a TSqlResult
Public class | TSqlResultException | Class TSqlResultException. This class cannot be inherited. Implements the [System.Exception]

Interfaces

 | Interface | Description
Public interface | IDatabaseDetails | Health status details
Public interface | IDatabaseTools | Interface IDatabaseTools
Public interface | IDatabaseToolsState | Reporting state for data tools interface objects
Public interface | IFailedTSqlResult | Contains a list of failed statements in a repository or other data factories
Public interface | IInitializeState | Initialization argument interface
Public interface | INamedSqlConnection | Interface INamedSqlConnection

Enumerations

 | Enumeration | Description
Public enumeration | DataState | data states a database can be in
Public enumeration | TableState | The table state a table is in


ConnectionDetails Class

Connection details for factory or repository that needs specialized connection configurations

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class ConnectionDetails

See Also

ConnectionDetails Members
Walter.DataTools.MsSql Namespace


ConnectionDetails Members

The ConnectionDetails type exposes the following members.

Constructors

 | Name | Description
Public method | ConnectionDetails(String, String, Nullable<(Of <<'(TimeSpan>)>>)) | Initializes a new instance of the ConnectionDetails class.
Public method | ConnectionDetails(String, Nullable<(Of <<'(TimeSpan>)>>)) | Initializes a new instance of the ConnectionDetails class.

Properties

 | Name | Description
Public property | ConnectionString | The connection string to use when connection IDatabaseTools
Public property | DataRetention | Data retention to configure for repository
Public property | Schema | The schema to use in data objects

See Also

ConnectionDetails Class
Walter.DataTools.MsSql Namespace


ConnectionDetails Constructor

Overload List

 | Name | Description
Public method | ConnectionDetails(String, String, Nullable<(Of <<'(TimeSpan>)>>)) | Initializes a new instance of the ConnectionDetails class.
Public method | ConnectionDetails(String, Nullable<(Of <<'(TimeSpan>)>>)) | Initializes a new instance of the ConnectionDetails class.

See Also

ConnectionDetails Class
ConnectionDetails Members
Walter.DataTools.MsSql Namespace


ConnectionDetails Constructor (String, String, Nullable(TimeSpan))

ConnectionDetails Constructor (String, String, Nullable<(Of <(<'TimeSpan>)>)>)

Initializes a new instance of the ConnectionDetails class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public ConnectionDetails(
    string schema,
    string connectionString,
    Nullable<TimeSpan> dataRetention
)

Parameters

schema
Type: String
The schema.
connectionString
Type: String
The connection string.
dataRetention
Type: Nullable <(Of <(<'TimeSpan>)>)>
The data retention duration (optional).

See Also

ConnectionDetails Class
ConnectionDetails Overload
Walter.DataTools.MsSql Namespace


ConnectionDetails Constructor (String, Nullable(TimeSpan))

ConnectionDetails Constructor (String, Nullable<(Of <(<'TimeSpan>)>)>)

Initializes a new instance of the ConnectionDetails class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public ConnectionDetails(
    string connectionString,
    Nullable<TimeSpan> dataRetention
)

Parameters

connectionString
Type: String
The connection string.
dataRetention
Type: Nullable <(Of <(<'TimeSpan>)>)>
The data retention duration (optional).

See Also

ConnectionDetails Class
ConnectionDetails Overload
Walter.DataTools.MsSql Namespace


ConnectionDetails Properties

The ConnectionDetails type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | The connection string to use when connection IDatabaseTools
Public property | DataRetention | Data retention to configure for repository
Public property | Schema | The schema to use in data objects

See Also

ConnectionDetails Class
Walter.DataTools.MsSql Namespace


ConnectionString Property

ConnectionDetails..::..ConnectionString Property

The connection string to use when connection IDatabaseTools

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string ConnectionString { get; set; }

See Also

ConnectionDetails Class
Walter.DataTools.MsSql Namespace


DataRetention Property

ConnectionDetails..::..DataRetention Property

Data retention to configure for repository

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<TimeSpan> DataRetention { get; set; }

See Also

ConnectionDetails Class
Walter.DataTools.MsSql Namespace


Schema Property

ConnectionDetails..::..Schema Property

The schema to use in data objects

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Schema { get; set; }

See Also

ConnectionDetails Class
Walter.DataTools.MsSql Namespace


ConnectionProperties Class

Class ConnectionProperties.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class ConnectionProperties

See Also

ConnectionProperties Members
Walter.DataTools.MsSql Namespace


ConnectionProperties Members

The ConnectionProperties type exposes the following members.

Properties

 | Name | Description
Public property | AuthScheme | Gets the authentication scheme.
Public property | DBServerName | Gets the name of the database server.
Public property | Encrypted | Gets a value indicating whether this ConnectionProperties is encrypted.
Public property | FROM | Gets from.
Public property | MachineName | Gets the name of the machine.
Public property | NetTransport | Gets the net transport.
Public property | ProtocolType | Gets the type of the protocol.
Public property | SecuredConnections | Gets the secured connections.
Public property | TO | Gets to.
Public property | UnsecuredConnections | Gets the unsecured connections.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


ConnectionProperties Properties

The ConnectionProperties type exposes the following members.

Properties

 | Name | Description
Public property | AuthScheme | Gets the authentication scheme.
Public property | DBServerName | Gets the name of the database server.
Public property | Encrypted | Gets a value indicating whether this ConnectionProperties is encrypted.
Public property | FROM | Gets from.
Public property | MachineName | Gets the name of the machine.
Public property | NetTransport | Gets the net transport.
Public property | ProtocolType | Gets the type of the protocol.
Public property | SecuredConnections | Gets the secured connections.
Public property | TO | Gets to.
Public property | UnsecuredConnections | Gets the unsecured connections.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


AuthScheme Property

ConnectionProperties..::..AuthScheme Property

Gets the authentication scheme.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string AuthScheme { get; set; }

Field Value

The authentication scheme.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


DBServerName Property

ConnectionProperties..::..DBServerName Property

Gets the name of the database server.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string DBServerName { get; set; }

Field Value

The name of the database server.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


Encrypted Property

ConnectionProperties..::..Encrypted Property

Gets a value indicating whether this ConnectionProperties is encrypted.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool Encrypted { get; set; }

Field Value

true if encrypted; otherwise, false.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


FROM Property

ConnectionProperties..::..FROM Property

Gets from.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string FROM { get; set; }

Field Value

From.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


MachineName Property

ConnectionProperties..::..MachineName Property

Gets the name of the machine.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string MachineName { get; set; }

Field Value

The name of the machine.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


NetTransport Property

ConnectionProperties..::..NetTransport Property

Gets the net transport.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string NetTransport { get; set; }

Field Value

The net transport.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


ProtocolType Property

ConnectionProperties..::..ProtocolType Property

Gets the type of the protocol.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string ProtocolType { get; set; }

Field Value

The type of the protocol.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


SecuredConnections Property

ConnectionProperties..::..SecuredConnections Property

Gets the secured connections.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int SecuredConnections { get; set; }

Field Value

The secured connections.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


TO Property

ConnectionProperties..::..TO Property

Gets to.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string TO { get; set; }

Field Value

To.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


UnsecuredConnections Property

ConnectionProperties..::..UnsecuredConnections Property

Gets the unsecured connections.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int UnsecuredConnections { get; set; }

Field Value

The unsecured connections.

See Also

ConnectionProperties Class
Walter.DataTools.MsSql Namespace


DatabaseMigrationException Class

constraint on the migration

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public sealed class DatabaseMigrationException

See Also

DatabaseMigrationException Members
Walter.DataTools.MsSql Namespace


DatabaseMigrationException Members

Constructors

 | Name | Description
Public method | DatabaseMigrationException()()()() | general migration exception
Public method | DatabaseMigrationException(TimeSpan, String) | migration duration exception

See Also

DatabaseMigrationException Class
Walter.DataTools.MsSql Namespace


DatabaseMigrationException Constructor

Overload List

 | Name | Description
Public method | DatabaseMigrationException()()()() | general migration exception
Public method | DatabaseMigrationException(TimeSpan, String) | migration duration exception

See Also

DatabaseMigrationException Class
DatabaseMigrationException Members
Walter.DataTools.MsSql Namespace


DatabaseMigrationException Constructor

general migration exception

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DatabaseMigrationException()

See Also

DatabaseMigrationException Class
DatabaseMigrationException Overload
Walter.DataTools.MsSql Namespace


DatabaseMigrationException Constructor (TimeSpan, String)

migration duration exception

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DatabaseMigrationException(
    TimeSpan duration,
    string repository
)

Parameters

duration
Type: TimeSpan
the duration exceeding
repository
Type: String
the repository transfered

See Also

DatabaseMigrationException Class
DatabaseMigrationException Overload
Walter.DataTools.MsSql Namespace


DataBaseRepository Class

Class DataBaseRepository is the base repository for dealing with Walter.DataTools

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public abstract class DataBaseRepository : IFailedTSqlResult

See Also

DataBaseRepository Members
Walter.DataTools.MsSql Namespace


DataBaseRepository Members

The DataBaseRepository type exposes the following members.

Constructors

 | Name | Description
Public method | DataBaseRepository | Initializes a new instance of the DataBaseRepository class.

Methods

 | Name | Description
Public method | DatabaseUpdateNeeded | determine if an update is failed
Protected method | Initialize | Initializes the specified factory for use.
Public method | TryGetConnectionDetails | Gets the connection details from the .
 | Value | return a SqlDateTime value
 | ValueOrNull | Return the value of null
Public method | WriteError | Write all errors to disk
Public method | WriteFailedStatementsToDisk | will write the failed statements, if any to the failed file info variable.

Fields

 | Name | Description
Protected field | _json | Json settings used when serializing data

Properties

 | Name | Description
Public property | ConnectionProperties | Gets or sets the connection properties.
Protected property | Database | Gets the database.
Public property | FailedStatements | Access all failed statements from the database
Public property | Faulty | Indicates that the migration has completed and issues where detected
Public property | FriendlyName | Gets or sets the name of the friendly.
Public property | InitializationFailed | If true it indicates if initialization has completed without incidents
Public property | InitializedOnUtc | Informed when the repository was ready to start processing requests
Public property | Initializing | if it has a value it indicates that the repository or factory is ready and has initialized
Public property | IsReady | Database state is ready for data processing, if faulty depending on the error some data may get lost
Protected property | LastUpdate | Gets the last update.
Public property | Ready | if it has a value it indicates the time that the database was ready for use
Protected property | Schema | Gets the schema.
Public property | State | Access the current state of the database
 | TIME_OUT_SETUP | maximum time that migration can take before an exception is thrown
Public property | UpdateLog | The result of the last update that has executed
Public property | Upgrade | if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

Events

 | Name | Description
Public event | OnInitialized | firers when the database is ready so any post scripts can be started

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DataBaseRepository Constructor

Initializes a new instance of the DataBaseRepository class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DataBaseRepository(
    string friendlyName,
    IExceptionConsole exceptionConsole,
    IDiskGuard diskGuard,
    Nullable<ILoggerFactory> factory
)

Parameters

friendlyName
Type: String
Name of the friendly.
exceptionConsole
Type: IExceptionConsole
The exception console.
diskGuard
Type: Walter.IO..::..IDiskGuard
The disk guard provided by the DI to control safe disk IO
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
The factory.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DataBaseRepository Fields

The DataBaseRepository type exposes the following members.

Fields

 | Name | Description
Protected field | _json | Json settings used when serializing data

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


_json Field

DataBaseRepository..::.._json Field

Json settings used when serializing data

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected JsonSerializerSettings _json

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DataBaseRepository Methods

The DataBaseRepository type exposes the following members.

Methods

 | Name | Description
Public method | DatabaseUpdateNeeded | determine if an update is failed
Protected method | Initialize | Initializes the specified factory for use.
Public method | TryGetConnectionDetails | Gets the connection details from the .
 | Value | return a SqlDateTime value
 | ValueOrNull | Return the value of null
Public method | WriteError | Write all errors to disk
Public method | WriteFailedStatementsToDisk | will write the failed statements, if any to the failed file info variable.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DatabaseUpdateNeeded Method

DataBaseRepository..::..DatabaseUpdateNeeded Method

determine if an update is failed

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool DatabaseUpdateNeeded(
    Assembly assemly
)

Parameters

assemly
Type: Assembly
the assembly to get the update script from

Return Value

true if a update is needed

Exceptions

Exception | Condition
[ArgumentNullException] | assemly

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Initialize Method

DataBaseRepository..::..Initialize Method

Initializes the specified factory for use.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected void Initialize(
    Assembly asam,
    string resourceName
)

Parameters

asam
Type: Assembly
The Assembly that contains the resource.
resourceName
Type: String
Name of the resource.

Exceptions

Exception | Condition
[ArgumentException] | '{nameof(resourceName)}' cannot be null or empty - resourceName
[ArgumentNullException] | asam
[ResourceNotFoundException] |

Remarks

It is safe to call this message as it will skip loading if not needed

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


TryGetConnectionDetails Method

DataBaseRepository..::..TryGetConnectionDetails Method

Gets the connection details from the .

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool TryGetConnectionDetails(
    out ConnectionProperties result
)

Parameters

result
Type: Walter.DataTools.MsSql..::..ConnectionProperties %
The result.

Return Value

ConnectionProperties.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Value Method

DataBaseRepository..::..Value Method

return a SqlDateTime value

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected static SqlDateTime Value(
    DateTime dateTime
)

Parameters

dateTime
Type: DateTime
the date to test and to use

Return Value

a valid dateTime

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


ValueOrNull Method

DataBaseRepository..::..ValueOrNull Method

Return the value of null

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected static Object ValueOrNull(
    Nullable<DateTime> dateTime
)

Parameters

dateTime
Type: Nullable <(Of <(<'DateTime>)>)>
the date to validate

Return Value

The date time or null

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


WriteError Method

DataBaseRepository..::..WriteError Method

Write all errors to disk

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public void WriteError(
    IReadOnlyList<TSqlResult> result
)

Parameters

result
Type: IReadOnlyList<(Of <(<' TSqlResult >)>)>
The result.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


WriteFailedStatementsToDisk Method

DataBaseRepository..::..WriteFailedStatementsToDisk Method

will write the failed statements, if any to the failed file info variable.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool WriteFailedStatementsToDisk(
    out Nullable<FileInfo> failed
)

Parameters

failed
Type: Nullable <(Of <(<'FileInfo>)>)>%
The file info that will be generated if any failed statements exists.

Return Value

True if failed statements exists and writing them to disk was successful

Remarks

Look at the database state to see if failed statements exists and you are using this to validate the failed reason

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DataBaseRepository Properties

The DataBaseRepository type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionProperties | Gets or sets the connection properties.
Protected property | Database | Gets the database.
Public property | FailedStatements | Access all failed statements from the database
Public property | Faulty | Indicates that the migration has completed and issues where detected
Public property | FriendlyName | Gets or sets the name of the friendly.
Public property | InitializationFailed | If true it indicates if initialization has completed without incidents
Public property | InitializedOnUtc | Informed when the repository was ready to start processing requests
Public property | Initializing | if it has a value it indicates that the repository or factory is ready and has initialized
Public property | IsReady | Database state is ready for data processing, if faulty depending on the error some data may get lost
Protected property | LastUpdate | Gets the last update.
Public property | Ready | if it has a value it indicates the time that the database was ready for use
Protected property | Schema | Gets the schema.
Public property | State | Access the current state of the database
 | TIME_OUT_SETUP | maximum time that migration can take before an exception is thrown
Public property | UpdateLog | The result of the last update that has executed
Public property | Upgrade | if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


ConnectionProperties Property

DataBaseRepository..::..ConnectionProperties Property

Gets or sets the connection properties.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public ConnectionProperties ConnectionProperties { get; set; }

Field Value

The connection properties.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Database Property

DataBaseRepository..::..Database Property

Gets the database.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected IDatabaseTools Database { get; }

Field Value

The database.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


FailedStatements Property

DataBaseRepository..::..FailedStatements Property

Access all failed statements from the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult> FailedStatements { get; }

Field Value

The failed statements.

Remarks

This list may be empty of no error have occurred during the life of your application. On application restart the data in this list will be lost.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Faulty Property

DataBaseRepository..::..Faulty Property

Indicates that the migration has completed and issues where detected

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<DateTime> Faulty { get; set; }

Field Value

The faulty.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


FriendlyName Property

DataBaseRepository..::..FriendlyName Property

Gets or sets the name of the friendly.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string FriendlyName { get; set; }

Field Value

The name of the friendly.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


InitializationFailed Property

DataBaseRepository..::..InitializationFailed Property

If true it indicates if initialization has completed without incidents

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<bool> InitializationFailed { get; set; }

Field Value

null if [initialization failed] contains no value, true if [initialization failed]; otherwise, false.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


InitializedOnUtc Property

DataBaseRepository..::..InitializedOnUtc Property

Informed when the repository was ready to start processing requests

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DateTime InitializedOnUtc { get; set; }

Field Value

The initialized on UTC.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Initializing Property

DataBaseRepository..::..Initializing Property

if it has a value it indicates that the repository or factory is ready and has initialized

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DateTime Initializing { get; }

Field Value

The initializing.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


IsReady Property

DataBaseRepository..::..IsReady Property

Database state is ready for data processing, if faulty depending on the error some data may get lost

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool IsReady { get; }

Field Value

true if this instance is ready; otherwise, false.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


LastUpdate Property

DataBaseRepository..::..LastUpdate Property

Gets the last update.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected DateTime LastUpdate { get; set; }

Field Value

The last update.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Ready Property

DataBaseRepository..::..Ready Property

if it has a value it indicates the time that the database was ready for use

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<DateTime> Ready { get; set; }

Field Value

The ready.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Schema Property

DataBaseRepository..::..Schema Property

Gets the schema.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected string Schema { get; set; }

Field Value

The schema.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


State Property

DataBaseRepository..::..State Property

Access the current state of the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DataState State { get; }

Field Value

The state.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


TIME_OUT_SETUP Property

DataBaseRepository..::..TIME_OUT_SETUP Property

maximum time that migration can take before an exception is thrown

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public static TimeSpan TIME_OUT_SETUP { get; set; }

Field Value

The time out setup.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


UpdateLog Property

DataBaseRepository..::..UpdateLog Property

The result of the last update that has executed

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult> UpdateLog { get; }

Field Value

The update log.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


Upgrade Property

DataBaseRepository..::..Upgrade Property

if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<DateTime> Upgrade { get; set; }

Field Value

The upgrade.

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DataBaseRepository Events

The DataBaseRepository type exposes the following members.

Events

 | Name | Description
Public event | OnInitialized | firers when the database is ready so any post scripts can be started

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


OnInitialized Event

DataBaseRepository..::..OnInitialized Event

firers when the database is ready so any post scripts can be started

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public event Nullable<EventHandler<InitializeStateEventArgs>> OnInitialized

See Also

DataBaseRepository Class
Walter.DataTools.MsSql Namespace


DataState Enumeration

data states a database can be in

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public enum DataState

Members

Member name | Description
Initializing | Database is getting ready
Upgrade | in the process of executing upgrade scripts
Faulty | The database upgrade is faulty or a connection could not be made
Ready | The database is ready for use
Disposed | Database is no longer ready and able to take requests

See Also

Walter.DataTools.MsSql Namespace


DataTableExtensions Class

DataTable Extension methods

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public static class DataTableExtensions

See Also

[AllMembers.T:Walter.DataTools.MsSql.DataTableExtensions] Members
Walter.DataTools.MsSql Namespace


DBScriptConfiguration Class

Script configuration used with a database script update. if not altered the objects will be created in the dbo schema setting all permissions to public

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class DBScriptConfiguration

See Also

DBScriptConfiguration Members
Walter.DataTools.MsSql Namespace


DBScriptConfiguration Members

The DBScriptConfiguration type exposes the following members.

Properties

 | Name | Description
Public property | PermissionGroup | the user or group that is used by the setup script to assign permissions to
Public property | SchemaName | the schema to use

See Also

DBScriptConfiguration Class
Walter.DataTools.MsSql Namespace


DBScriptConfiguration Properties

The DBScriptConfiguration type exposes the following members.

Properties

 | Name | Description
Public property | PermissionGroup | the user or group that is used by the setup script to assign permissions to
Public property | SchemaName | the schema to use

See Also

DBScriptConfiguration Class
Walter.DataTools.MsSql Namespace


PermissionGroup Property

DBScriptConfiguration..::..PermissionGroup Property

the user or group that is used by the setup script to assign permissions to

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string PermissionGroup { get; set; }

See Also

DBScriptConfiguration Class
Walter.DataTools.MsSql Namespace


SchemaName Property

DBScriptConfiguration..::..SchemaName Property

the schema to use

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string SchemaName { get; set; }

See Also

DBScriptConfiguration Class
Walter.DataTools.MsSql Namespace


EventException Class

Event exception class used when external code caused an exception

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class EventException

See Also

EventException Members
Walter.DataTools.MsSql Namespace


EventException Members

The EventException type exposes the following members.

Properties

 | Name | Description
Public property | Exception | the exception raised by the user code that caused the exception to be thrown
Public property | SqlResult | The TSQL statement executed

See Also

EventException Class
Walter.DataTools.MsSql Namespace


EventException Properties

The EventException type exposes the following members.

Properties

 | Name | Description
Public property | Exception | the exception raised by the user code that caused the exception to be thrown
Public property | SqlResult | The TSQL statement executed

See Also

EventException Class
Walter.DataTools.MsSql Namespace


Exception Property

EventException..::..Exception Property

the exception raised by the user code that caused the exception to be thrown

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Exception Exception { get; }

See Also

EventException Class
Walter.DataTools.MsSql Namespace


SqlResult Property

EventException..::..SqlResult Property

The TSQL statement executed

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlResult SqlResult { get; }

See Also

EventException Class
Walter.DataTools.MsSql Namespace


EventsException Class

Event exception class used when external code caused an exception

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class EventsException

See Also

EventsException Members
Walter.DataTools.MsSql Namespace


EventsException Members

The EventsException type exposes the following members.

Properties

 | Name | Description
Public property | Exception | the exception raised by the user code that caused the exception to be thrown
Public property | SqlResults | The TSQL statements executed

See Also

EventsException Class
Walter.DataTools.MsSql Namespace


EventsException Properties

The EventsException type exposes the following members.

Properties

 | Name | Description
Public property | Exception | the exception raised by the user code that caused the exception to be thrown
Public property | SqlResults | The TSQL statements executed

See Also

EventsException Class
Walter.DataTools.MsSql Namespace


Exception Property

EventsException..::..Exception Property

the exception raised by the user code that caused the exception to be thrown

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Exception Exception { get; }

See Also

EventsException Class
Walter.DataTools.MsSql Namespace


SqlResults Property

EventsException..::..SqlResults Property

The TSQL statements executed

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult> SqlResults { get; }

See Also

EventsException Class
Walter.DataTools.MsSql Namespace


ExecuteStatementsException Class

Class ExecuteStatementsException. Implements the [System.Exception]

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class ExecuteStatementsException

See Also

ExecuteStatementsException Members
Walter.DataTools.MsSql Namespace
[System.Exception]


ExecuteStatementsException Members

The ExecuteStatementsException type exposes the following members.

Constructors

 | Name | Description
Public method | ExecuteStatementsException(IEnumerable<(Of <<'(ValueTuple<(Of <<'(Int32, String, SqlException>)>>)>)>>)) | Initializes a new instance of the ExecuteStatementsException class.
Public method | ExecuteStatementsException(IEnumerable<(Of <<'(ValueTuple<(Of <<'(Int32, String, SqlException>)>>)>)>>), String) | Initializes a new instance of the ExecuteStatementsException class.
Protected method | ExecuteStatementsException(SerializationInfo, StreamingContext) | Initializes a new instance of the ExecuteStatementsException class.

Properties

 | Name | Description
Public property | FailedStatements | Failed statements in a given batch

See Also

ExecuteStatementsException Class
Walter.DataTools.MsSql Namespace


ExecuteStatementsException Constructor

Overload List

 | Name | Description
Public method | ExecuteStatementsException(IEnumerable<(Of <<'(ValueTuple<(Of <<'(Int32, String, SqlException>)>>)>)>>)) | Initializes a new instance of the ExecuteStatementsException class.
Public method | ExecuteStatementsException(IEnumerable<(Of <<'(ValueTuple<(Of <<'(Int32, String, SqlException>)>>)>)>>), String) | Initializes a new instance of the ExecuteStatementsException class.
Protected method | ExecuteStatementsException(SerializationInfo, StreamingContext) | Initializes a new instance of the ExecuteStatementsException class.

See Also

ExecuteStatementsException Class
ExecuteStatementsException Members
Walter.DataTools.MsSql Namespace


ExecuteStatementsException Constructor (IEnumerable(ValueTuple(Int32, String, SqlException)))

ExecuteStatementsException Constructor (IEnumerable<(Of <(<'ValueTuple<(Of <(<'Int32, String, SqlException>)>)>>)>)>)

Initializes a new instance of the ExecuteStatementsException class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public ExecuteStatementsException(
    IEnumerable<ValueTuple<int, string, SqlException>> failedStatements
)

Parameters

failedStatements
Type: IEnumerable<(Of <(<' ValueTuple <(Of <(<' Int32, String, SqlException>)>)>>)>)>
The failed statements.

See Also

ExecuteStatementsException Class
ExecuteStatementsException Overload
Walter.DataTools.MsSql Namespace


ExecuteStatementsException Constructor (IEnumerable(ValueTuple(Int32, String, SqlException)), String)

ExecuteStatementsException Constructor (IEnumerable<(Of <(<'ValueTuple<(Of <(<'Int32, String, SqlException>)>)>>)>)>, String)

Initializes a new instance of the ExecuteStatementsException class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public ExecuteStatementsException(
    IEnumerable<ValueTuple<int, string, SqlException>> failedStatements,
    string message
)

Parameters

failedStatements
Type: IEnumerable<(Of <(<' ValueTuple <(Of <(<' Int32, String, SqlException>)>)>>)>)>
The failed statements.
message
Type: String
The message.

See Also

ExecuteStatementsException Class
ExecuteStatementsException Overload
Walter.DataTools.MsSql Namespace


ExecuteStatementsException Constructor (SerializationInfo, StreamingContext)

Initializes a new instance of the ExecuteStatementsException class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
protected ExecuteStatementsException(
    SerializationInfo serializationInfo,
    StreamingContext streamingContext
)

Parameters

serializationInfo
Type: SerializationInfo
The serialization information.
streamingContext
Type: StreamingContext
The streaming context.

See Also

ExecuteStatementsException Class
ExecuteStatementsException Overload
Walter.DataTools.MsSql Namespace


ExecuteStatementsException Properties

The ExecuteStatementsException type exposes the following members.

Properties

 | Name | Description
Public property | FailedStatements | Failed statements in a given batch

See Also

ExecuteStatementsException Class
Walter.DataTools.MsSql Namespace


FailedStatements Property

ExecuteStatementsException..::..FailedStatements Property

Failed statements in a given batch

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public List<ValueTuple<int, string, SqlException>> FailedStatements { get; set; }

Field Value

The failed statements.

See Also

ExecuteStatementsException Class
Walter.DataTools.MsSql Namespace


IDatabaseDetails Interface

Health status details

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public interface IDatabaseDetails

See Also

IDatabaseDetails Members
Walter.DataTools.MsSql Namespace


IDatabaseDetails Members

The IDatabaseDetails type exposes the following members.

Properties

 | Name | Description
Public property | Failed | failed executions
Public property | Status | Return the status of the database

See Also

IDatabaseDetails Interface
Walter.DataTools.MsSql Namespace


IDatabaseDetails Properties

The IDatabaseDetails type exposes the following members.

Properties

 | Name | Description
Public property | Failed | failed executions
Public property | Status | Return the status of the database

See Also

IDatabaseDetails Interface
Walter.DataTools.MsSql Namespace


Failed Property

IDatabaseDetails..::..Failed Property

failed executions

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
IReadOnlyList<TSqlResult> Failed { get; }

See Also

IDatabaseDetails Interface
Walter.DataTools.MsSql Namespace


Status Property

IDatabaseDetails..::..Status Property

Return the status of the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string Status { get; }

See Also

IDatabaseDetails Interface
Walter.DataTools.MsSql Namespace


IDatabaseTools Interface

Interface IDatabaseTools

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public interface IDatabaseTools : IFailedTSqlResult,
    IDatabaseToolsState

See Also

IDatabaseTools Members
Walter.DataTools.MsSql Namespace


IDatabaseTools Members

The IDatabaseTools type exposes the following members.

Methods

 | Name | Description
Public method | BulkImport | Bulks the import data into a SQL server database.
Public method | ExecuteNoneQuery | Executes the provided SQL statement, make sure no external SQL can be injected.
Public method | ExecuteProcedure(String, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedure(String, ApplicationIntent, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedureAsync(String, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedureAsync(String, CancellationToken, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedures | Execute a set of procedures
Public method | ExecuteReader(String, CommandBehavior, array<SqlParameter>[]()[][]) | Executes the stored procedure and returns a data reader.
Public method | ExecuteReader(String, CommandType, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes the SQL for a TSQL statement.
Public method | ExecuteReaderAsync | Executes the stored procedure and returns a data reader.
Public method | ExecuteScalar(String, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes a scalar stored procedure.
Public method | ExecuteScalar<(Of <<'(T>)>>)(String, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes the statement and return 1 typed value that contains a json constructor or is seriualiu^zable using json.
Public method | ExecuteScalarAsync | Executes a scalar stored procedure.
Public method | ExecuteStatements(IEnumerable<(Of <<'(String>)>>), Boolean) | Execute all statements
Public method | ExecuteStatements(array<String>[]()[][]) | Execute a batch of statements
Public method | ExecuteStatementsAsync | Execute a batch of statements
Public method | GetList<(Of <<'(T>)>>) | Get a list of values from json for a type that implements Parse
Public method | GetQueue<(Of <<'(T>)>>) | Gets a queue of T where the data can be processed of from.
Public method | GetTypedList<(Of <<'(T>)>>)(String, array<SqlParameter>[]()[][]) | Get a list of typed classes from json for a type that implements Parse
Public method | GetTypedList<(Of <<'(T1, T2>)>>)(String, array<SqlParameter>[]()[][]) | Get a list of typed classes from json for a type that implements Parse where T1 can be created using T2 as constructor parameter
Public method | TryDatabaseExists | Tries the database exists.
Public method | TryExecuteStatements | Tries to execute a set of statements provides a detailed result on the individual statements
Public method | TryTableIsEmpty | Tries to see if the table is empty.
Public method | UsesCloud | uses a cloud based connection
Public method | UsesFailover | tests to see if the firewall uses a fail-over partner

Events

 | Name | Description
Public event | OnExecuted | Event that can be subscribed to when interested in collecting database response
Public event | OnFailedStatements | Occurs when a statements failed.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


IDatabaseTools Methods

The IDatabaseTools type exposes the following members.

Methods

 | Name | Description
Public method | BulkImport | Bulks the import data into a SQL server database.
Public method | ExecuteNoneQuery | Executes the provided SQL statement, make sure no external SQL can be injected.
Public method | ExecuteProcedure(String, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedure(String, ApplicationIntent, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedureAsync(String, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedureAsync(String, CancellationToken, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedures | Execute a set of procedures
Public method | ExecuteReader(String, CommandBehavior, array<SqlParameter>[]()[][]) | Executes the stored procedure and returns a data reader.
Public method | ExecuteReader(String, CommandType, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes the SQL for a TSQL statement.
Public method | ExecuteReaderAsync | Executes the stored procedure and returns a data reader.
Public method | ExecuteScalar(String, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes a scalar stored procedure.
Public method | ExecuteScalar<(Of <<'(T>)>>)(String, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes the statement and return 1 typed value that contains a json constructor or is seriualiu^zable using json.
Public method | ExecuteScalarAsync | Executes a scalar stored procedure.
Public method | ExecuteStatements(IEnumerable<(Of <<'(String>)>>), Boolean) | Execute all statements
Public method | ExecuteStatements(array<String>[]()[][]) | Execute a batch of statements
Public method | ExecuteStatementsAsync | Execute a batch of statements
Public method | GetList<(Of <<'(T>)>>) | Get a list of values from json for a type that implements Parse
Public method | GetQueue<(Of <<'(T>)>>) | Gets a queue of T where the data can be processed of from.
Public method | GetTypedList<(Of <<'(T>)>>)(String, array<SqlParameter>[]()[][]) | Get a list of typed classes from json for a type that implements Parse
Public method | GetTypedList<(Of <<'(T1, T2>)>>)(String, array<SqlParameter>[]()[][]) | Get a list of typed classes from json for a type that implements Parse where T1 can be created using T2 as constructor parameter
Public method | TryDatabaseExists | Tries the database exists.
Public method | TryExecuteStatements | Tries to execute a set of statements provides a detailed result on the individual statements
Public method | TryTableIsEmpty | Tries to see if the table is empty.
Public method | UsesCloud | uses a cloud based connection
Public method | UsesFailover | tests to see if the firewall uses a fail-over partner

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


BulkImport Method

IDatabaseTools..::..BulkImport Method

Bulks the import data into a SQL server database.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
void BulkImport(
    DataTable table,
    string tableName,
    SqlBulkCopyOptions options
)

Parameters

table
Type: DataTable
The table.
tableName
Type: String
Name of the table.
options
Type: SqlBulkCopyOptions
Bitwise flag that specifies one or more options to use with an instance of Microsoft.Data.SqlClient.SqlBulkCopy

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


ExecuteNoneQuery Method

IDatabaseTools..::..ExecuteNoneQuery Method

Executes the provided SQL statement, make sure no external SQL can be injected.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
int ExecuteNoneQuery(
    string sql,
    params SqlParameter[] sqlParameters
)

Parameters

sql
Type: String
The SQL.
sqlParameters
Type: array<SqlParameter>[]()[][]
SQL parameters if any

Return Value

the number of rows affected

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


ExecuteProcedure Method

IDatabaseTools..::..ExecuteProcedure Method

Overload List

 | Name | Description
Public method | ExecuteProcedure(String, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedure(String, ApplicationIntent, array<SqlParameter>[]()[][]) | executes a stored procedure on the database

See Also

IDatabaseTools Interface
IDatabaseTools Members
Walter.DataTools.MsSql Namespace


ExecuteProcedure Method (String, SqlParameter[])

IDatabaseTools..::..ExecuteProcedure Method (String, array<SqlParameter>[]()[][])

executes a stored procedure on the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
TSqlResult ExecuteProcedure(
    string procedureName,
    params SqlParameter[] parameters
)

Parameters

procedureName
Type: String
The procedure name
parameters
Type: array<SqlParameter>[]()[][]
the parameters if any

Return Value

TSQL Result

See Also

IDatabaseTools Interface
ExecuteProcedure Overload
Walter.DataTools.MsSql Namespace


ExecuteProcedure Method (String, ApplicationIntent, SqlParameter[])

IDatabaseTools..::..ExecuteProcedure Method (String, ApplicationIntent, array<SqlParameter>[]()[][])

executes a stored procedure on the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
TSqlResult ExecuteProcedure(
    string procedureName,
    ApplicationIntent intent,
    params SqlParameter[] parameters
)

Parameters

procedureName
Type: String
The procedure name
intent
Type: ApplicationIntent
parameters
Type: array<SqlParameter>[]()[][]
the parameters if any

Return Value

TSQL result

See Also

IDatabaseTools Interface
ExecuteProcedure Overload
Walter.DataTools.MsSql Namespace


ExecuteProcedureAsync Method

IDatabaseTools..::..ExecuteProcedureAsync Method

Overload List

 | Name | Description
Public method | ExecuteProcedureAsync(String, array<SqlParameter>[]()[][]) | executes a stored procedure on the database
Public method | ExecuteProcedureAsync(String, CancellationToken, array<SqlParameter>[]()[][]) | executes a stored procedure on the database

See Also

IDatabaseTools Interface
IDatabaseTools Members
Walter.DataTools.MsSql Namespace


ExecuteProcedureAsync Method (String, SqlParameter[])

IDatabaseTools..::..ExecuteProcedureAsync Method (String, array<SqlParameter>[]()[][])

executes a stored procedure on the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Task<TSqlResult> ExecuteProcedureAsync(
    string procedureName,
    params SqlParameter[] parameters
)

Parameters

procedureName
Type: String
The procedure name
parameters
Type: array<SqlParameter>[]()[][]
the parameters if any

Return Value

TSqlResult

See Also

IDatabaseTools Interface
ExecuteProcedureAsync Overload
Walter.DataTools.MsSql Namespace


ExecuteProcedureAsync Method (String, CancellationToken, SqlParameter[])

IDatabaseTools..::..ExecuteProcedureAsync Method (String, CancellationToken, array<SqlParameter>[]()[][])

executes a stored procedure on the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Task<TSqlResult> ExecuteProcedureAsync(
    string procedureName,
    CancellationToken token,
    params SqlParameter[] parameters
)

Parameters

procedureName
Type: String
The procedure name
token
Type: CancellationToken
Propagates notification that operations should be canceled.
parameters
Type: array<SqlParameter>[]()[][]
the parameters if any

Return Value

TSqlResult

See Also

IDatabaseTools Interface
ExecuteProcedureAsync Overload
Walter.DataTools.MsSql Namespace


ExecuteProcedures Method

IDatabaseTools..::..ExecuteProcedures Method

Execute a set of procedures

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
IReadOnlyList<TSqlResult> ExecuteProcedures(
    IEnumerable<ValueTuple<string, SqlParameter[]>> procedures,
    bool inTransaction
)

Parameters

procedures
Type: IEnumerable<(Of <(<' ValueTuple <(Of <(<' String, array<SqlParameter>[]()[][]>)>)>>)>)>
the procedures to execute
inTransaction
Type: Boolean
If true all procedures will execute in 1 transaction, on error all is rolled back

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


ExecuteReader Method

IDatabaseTools..::..ExecuteReader Method

Overload List

 | Name | Description
Public method | ExecuteReader(String, CommandBehavior, array<SqlParameter>[]()[][]) | Executes the stored procedure and returns a data reader.
Public method | ExecuteReader(String, CommandType, ApplicationIntent, array<SqlParameter>[]()[][]) | Executes the SQL for a TSQL statement.

See Also

IDatabaseTools Interface
IDatabaseTools Members
Walter.DataTools.MsSql Namespace


ExecuteReader Method (String, CommandBehavior, SqlParameter[])

IDatabaseTools..::..ExecuteReader Method (String, CommandBehavior, array<SqlParameter>[]()[][])

Executes the stored procedure and returns a data reader.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
DataTable ExecuteReader(
    string procedureName,
    CommandBehavior commandBehavior,
    params SqlParameter[] parameters
)

Parameters

procedureName
Type: String
Name of the procedure.
commandBehavior
Type: CommandBehavior
Provides a description of the results of the query and its effect on the database.
parameters
Type: array<SqlParameter>[]()[][]
The parameters.

Return Value

IDataReader with the data.

See Also

IDatabaseTools Interface
ExecuteReader Overload
Walter.DataTools.MsSql Namespace


ExecuteReader Method (String, CommandType, ApplicationIntent, SqlParameter[])

IDatabaseTools..::..ExecuteReader Method (String, CommandType, ApplicationIntent, array<SqlParameter>[]()[][])

Executes the SQL for a TSQL statement.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
SqlDataReader ExecuteReader(
    string sql,
    CommandType commandType,
    ApplicationIntent intent,
    params SqlParameter[] parameters
)

Parameters

sql
Type: String
The SQL.
commandType
Type: CommandType
the type of command to execute
intent
Type: ApplicationIntent
The intent.
parameters
Type: array<SqlParameter>[]()[][]

Return Value

IDataReader.

See Also

IDatabaseTools Interface
ExecuteReader Overload
Walter.DataTools.MsSql Namespace


ExecuteReaderAsync Method

IDatabaseTools..::..ExecuteReaderAsync Method

Executes the stored procedure and returns a data reader.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Task<DataTable> ExecuteReaderAsync(
    string procedureName,
    CommandBehavior commandBehavior,
    SqlParameter[] parameters,
    CancellationToken cancellationToken
)

Parameters

procedureName
Type: String
Name of the procedure.
commandBehavior
Type: CommandBehavior
Provides a description of the results of the query and its effect on the database.
parameters
Type: array<SqlParameter>[]()[][]
The parameters.
cancellationToken
Type: CancellationToken
Propagates notification that operations should be canceled.

Return Value

IDataReader with the data.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


ExecuteScalar Method (String, ApplicationIntent, SqlParameter[])

IDatabaseTools..::..ExecuteScalar Method (String, ApplicationIntent, array<SqlParameter>[]()[][])

Executes a scalar stored procedure.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Object ExecuteScalar(
    string storedProcedure,
    ApplicationIntent intent,
    params SqlParameter[] sqlParameters
)

Parameters

storedProcedure
Type: String
The stored procedure.
intent
Type: ApplicationIntent
indicate if you read or read-write
sqlParameters
Type: array<SqlParameter>[]()[][]
The SQL parameters.

Return Value

System.Object.

See Also

IDatabaseTools Interface
ExecuteScalar Overload
Walter.DataTools.MsSql Namespace


ExecuteScalar(T) Method (String, ApplicationIntent, SqlParameter[])

IDatabaseTools..::..ExecuteScalar<(Of <(<'T>)>)> Method (String, ApplicationIntent, array<SqlParameter>[]()[][])

Executes the statement and return 1 typed value that contains a json constructor or is seriualiu^zable using json.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
T ExecuteScalar<T>(
    string procedureName,
    ApplicationIntent intent,
    params SqlParameter[] sqlParameter
)

Type Parameters

T

Parameters

procedureName
Type: String
The v.
intent
Type: ApplicationIntent
The intent.
sqlParameter
Type: array<SqlParameter>[]()[][]
the parameters to use

Return Value

T.

See Also

IDatabaseTools Interface
ExecuteScalar Overload
Walter.DataTools.MsSql Namespace


ExecuteScalarAsync Method

IDatabaseTools..::..ExecuteScalarAsync Method

Executes a scalar stored procedure.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Task<Object> ExecuteScalarAsync(
    string storedProcedure,
    ApplicationIntent intent,
    params SqlParameter[] sqlParameters
)

Parameters

storedProcedure
Type: String
The stored procedure.
intent
Type: ApplicationIntent
indicate if you read or read-write
sqlParameters
Type: array<SqlParameter>[]()[][]
The SQL parameters.

Return Value

System.Object.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


ExecuteStatements Method

IDatabaseTools..::..ExecuteStatements Method

Overload List

 | Name | Description
Public method | ExecuteStatements(IEnumerable<(Of <<'(String>)>>), Boolean) | Execute all statements
Public method | ExecuteStatements(array<String>[]()[][]) | Execute a batch of statements

See Also

IDatabaseTools Interface
IDatabaseTools Members
Walter.DataTools.MsSql Namespace


ExecuteStatements Method (IEnumerable(String), Boolean)

IDatabaseTools..::..ExecuteStatements Method (IEnumerable<(Of <(<'String>)>)>, Boolean)

Execute all statements

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
IReadOnlyList<TSqlResult> ExecuteStatements(
    IEnumerable<string> statements,
    bool inTransaction
)

Parameters

statements
Type: IEnumerable<(Of <(<' String >)>)>
the statements to execute
inTransaction
Type: Boolean
If true all procedures will execute in 1 transaction, on error all is rolled back

See Also

IDatabaseTools Interface
ExecuteStatements Overload
Walter.DataTools.MsSql Namespace


ExecuteStatements Method (String[])

IDatabaseTools..::..ExecuteStatements Method (array<String>[]()[][])

Execute a batch of statements

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
void ExecuteStatements(
    string[] tsql
)

Parameters

tsql
Type: array< String >[]()[][]
the SQL batch to execute

Exceptions

Exception | Condition
Walter.DataTools.MsSql..::..ExecuteStatementsException | informs on the statements that failed

See Also

IDatabaseTools Interface
ExecuteStatements Overload
Walter.DataTools.MsSql Namespace


ExecuteStatementsAsync Method

IDatabaseTools..::..ExecuteStatementsAsync Method

Execute a batch of statements

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Task ExecuteStatementsAsync(
    string[] tsql,
    CancellationToken cancellationToken
)

Parameters

tsql
Type: array< String >[]()[][]
the SQL batch to execute
cancellationToken
Type: CancellationToken
Propagates notification that operations should be canceled.

Exceptions

Exception | Condition
Walter.DataTools.MsSql..::..ExecuteStatementsException | informs on the statements that failed

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


GetList(T) Method

IDatabaseTools..::..GetList<(Of <(<'T>)>)> Method

Get a list of values from json for a type that implements Parse

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
List<T> GetList<T>(
    string procedureName,
    params SqlParameter[] sqlParameter
)

Type Parameters

T
The type to return

Parameters

procedureName
Type: String
the name of the stored procedure
sqlParameter
Type: array<SqlParameter>[]()[][]
the parameters to use

Return Value

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


GetQueue(T) Method

IDatabaseTools..::..GetQueue<(Of <(<'T>)>)> Method

Gets a queue of T where the data can be processed of from.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Queue<T> GetQueue<T>(
    string procedureName,
    params SqlParameter[] sqlParameter
)

Type Parameters

T

Parameters

procedureName
Type: String
Name of the procedure.
sqlParameter
Type: array<SqlParameter>[]()[][]
The SQL parameter.

Return Value

Queue<T>.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


GetTypedList(T1, T2) Method (String, SqlParameter[])

IDatabaseTools..::..GetTypedList<(Of <(<'T1, T2>)>)> Method (String, array<SqlParameter>[]()[][])

Get a list of typed classes from json for a type that implements Parse where T1 can be created using T2 as constructor parameter

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
List<T1> GetTypedList<T1, T2>(
    string procedureName,
    params SqlParameter[] sqlParameter
)
where T2 : IParse<T1, T2>

Type Parameters

T1
The type to return
T2
The type to parse

Parameters

procedureName
Type: String
the name of the stored procedure
sqlParameter
Type: array<SqlParameter>[]()[][]
the parameters to use

Return Value

See Also

IDatabaseTools Interface
GetTypedList Overload
Walter.DataTools.MsSql Namespace


GetTypedList(T) Method (String, SqlParameter[])

IDatabaseTools..::..GetTypedList<(Of <(<'T>)>)> Method (String, array<SqlParameter>[]()[][])

Get a list of typed classes from json for a type that implements Parse

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
List<T> GetTypedList<T>(
    string procedureName,
    params SqlParameter[] sqlParameter
)
where T : IParse<T>

Type Parameters

T

Parameters

procedureName
Type: String
Name of the procedure.
sqlParameter
Type: array<SqlParameter>[]()[][]
The SQL parameter.

Return Value

List<T>.

See Also

IDatabaseTools Interface
GetTypedList Overload
Walter.DataTools.MsSql Namespace


TryDatabaseExists Method

IDatabaseTools..::..TryDatabaseExists Method

Tries the database exists.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
bool TryDatabaseExists(
    out bool exists,
    out bool correctDefault
)

Parameters

exists
Type: Boolean %
if set to true [exists].
correctDefault
Type: Boolean %
if set to true [correct default].

Return Value

true if XXXX, false otherwise.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


TryExecuteStatements Method

IDatabaseTools..::..TryExecuteStatements Method

Tries to execute a set of statements provides a detailed result on the individual statements

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
bool TryExecuteStatements(
    IEnumerable<string> statements,
    bool inTransaction,
    out IReadOnlyList<TSqlResult> result
)

Parameters

statements
Type: IEnumerable<(Of <(<' String >)>)>
the statements to execute
inTransaction
Type: Boolean
ensure all statements pass with no error or none passes
result
Type: IReadOnlyList<(Of <(<' TSqlResult >)>)>%
the statements and the individual

Return Value

true if no exception

Remarks

If not executed in a transaction the method may return true with errors included in the result data set. To test if no errors test the result for rows with failed statements

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


TryTableIsEmpty Method

IDatabaseTools..::..TryTableIsEmpty Method

Tries to see if the table is empty.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
bool TryTableIsEmpty(
    string tableName,
    out TableState state
)

Parameters

tableName
Type: String
Name of the table.
state
Type: Walter.DataTools.MsSql..::..TableState %
the state of the table

Return Value

true if XXXX, false otherwise.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


UsesCloud Method

IDatabaseTools..::..UsesCloud Method

uses a cloud based connection

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
bool UsesCloud()

Return Value

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


UsesFailover Method

IDatabaseTools..::..UsesFailover Method

tests to see if the firewall uses a fail-over partner

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
bool UsesFailover()

Return Value

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


IDatabaseTools Events

The IDatabaseTools type exposes the following members.

Events

 | Name | Description
Public event | OnExecuted | Event that can be subscribed to when interested in collecting database response
Public event | OnFailedStatements | Occurs when a statements failed.

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


OnExecuted Event

IDatabaseTools..::..OnExecuted Event

Event that can be subscribed to when interested in collecting database response

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
event EventHandler<ExecutedEventArgs> OnExecuted

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


OnFailedStatements Event

IDatabaseTools..::..OnFailedStatements Event

Occurs when a statements failed.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
event EventHandler<FailedEventArgs> OnFailedStatements

See Also

IDatabaseTools Interface
Walter.DataTools.MsSql Namespace


IDatabaseToolsState Interface

Reporting state for data tools interface objects

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public interface IDatabaseToolsState

See Also

IDatabaseToolsState Members
Walter.DataTools.MsSql Namespace


IDatabaseToolsState Members

The IDatabaseToolsState type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | the connection string used
Public property | Database | Database name
Public property | Details | Get details of the database
Public property | LastKnownDatabase | last known database that a connection was made to

See Also

IDatabaseToolsState Interface
Walter.DataTools.MsSql Namespace


IDatabaseToolsState Properties

The IDatabaseToolsState type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | the connection string used
Public property | Database | Database name
Public property | Details | Get details of the database
Public property | LastKnownDatabase | last known database that a connection was made to

See Also

IDatabaseToolsState Interface
Walter.DataTools.MsSql Namespace


ConnectionString Property

IDatabaseToolsState..::..ConnectionString Property

the connection string used

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string ConnectionString { get; }

See Also

IDatabaseToolsState Interface
Walter.DataTools.MsSql Namespace


Database Property

IDatabaseToolsState..::..Database Property

Database name

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string Database { get; }

See Also

IDatabaseToolsState Interface
Walter.DataTools.MsSql Namespace


Details Property

IDatabaseToolsState..::..Details Property

Get details of the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
IDatabaseDetails Details { get; }

See Also

IDatabaseToolsState Interface
Walter.DataTools.MsSql Namespace


LastKnownDatabase Property

IDatabaseToolsState..::..LastKnownDatabase Property

last known database that a connection was made to

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string LastKnownDatabase { get; }

See Also

IDatabaseToolsState Interface
Walter.DataTools.MsSql Namespace


IFailedTSqlResult Interface

Contains a list of failed statements in a repository or other data factories

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public interface IFailedTSqlResult

See Also

IFailedTSqlResult Members
Walter.DataTools.MsSql Namespace


IFailedTSqlResult Members

The IFailedTSqlResult type exposes the following members.

Properties

 | Name | Description
Public property | FailedStatements | The failed scripts
Public property | Faulty | Indicates that the migration has completed and issues where detected
Public property | Initializing | if it has a value it indicates that the repository or factory is ready and has initialized
Public property | Ready | if it has a value it indicates the time that the database was ready for use
Public property | State | Access the current state of the database
Public property | Upgrade | if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


IFailedTSqlResult Properties

The IFailedTSqlResult type exposes the following members.

Properties

 | Name | Description
Public property | FailedStatements | The failed scripts
Public property | Faulty | Indicates that the migration has completed and issues where detected
Public property | Initializing | if it has a value it indicates that the repository or factory is ready and has initialized
Public property | Ready | if it has a value it indicates the time that the database was ready for use
Public property | State | Access the current state of the database
Public property | Upgrade | if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


FailedStatements Property

IFailedTSqlResult..::..FailedStatements Property

The failed scripts

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
IReadOnlyList<TSqlResult> FailedStatements { get; }

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


Faulty Property

IFailedTSqlResult..::..Faulty Property

Indicates that the migration has completed and issues where detected

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Nullable<DateTime> Faulty { get; set; }

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


Initializing Property

IFailedTSqlResult..::..Initializing Property

if it has a value it indicates that the repository or factory is ready and has initialized

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
DateTime Initializing { get; }

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


Ready Property

IFailedTSqlResult..::..Ready Property

if it has a value it indicates the time that the database was ready for use

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Nullable<DateTime> Ready { get; set; }

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


State Property

IFailedTSqlResult..::..State Property

Access the current state of the database

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
DataState State { get; }

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


Upgrade Property

IFailedTSqlResult..::..Upgrade Property

if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Nullable<DateTime> Upgrade { get; set; }

See Also

IFailedTSqlResult Interface
Walter.DataTools.MsSql Namespace


IInitializeState Interface

Initialization argument interface

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public interface IInitializeState

See Also

IInitializeState Members
Walter.DataTools.MsSql Namespace


IInitializeState Members

The IInitializeState type exposes the following members.

Properties

 | Name | Description
Public property | AppDataFolder | Gets or sets the application data folder.
Public property | AssemblyName | The assembly associated with the TSQL
Public property | Created | The creation time for the Initialize state record
Public property | FactoryName | The factory being initialized
Public property | SetupScript | Gets or sets the setup script.

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


IInitializeState Properties

The IInitializeState type exposes the following members.

Properties

 | Name | Description
Public property | AppDataFolder | Gets or sets the application data folder.
Public property | AssemblyName | The assembly associated with the TSQL
Public property | Created | The creation time for the Initialize state record
Public property | FactoryName | The factory being initialized
Public property | SetupScript | Gets or sets the setup script.

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


AppDataFolder Property

IInitializeState..::..AppDataFolder Property

Gets or sets the application data folder.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string AppDataFolder { get; }

Field Value

The application data folder.

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


AssemblyName Property

IInitializeState..::..AssemblyName Property

The assembly associated with the TSQL

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string AssemblyName { get; }

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


Created Property

IInitializeState..::..Created Property

The creation time for the Initialize state record

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
DateTime Created { get; }

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


FactoryName Property

IInitializeState..::..FactoryName Property

The factory being initialized

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string FactoryName { get; }

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


SetupScript Property

IInitializeState..::..SetupScript Property

Gets or sets the setup script.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
string SetupScript { get; }

Field Value

The setup script.

See Also

IInitializeState Interface
Walter.DataTools.MsSql Namespace


INamedSqlConnection Interface

Interface INamedSqlConnection

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public interface INamedSqlConnection

See Also

INamedSqlConnection Members
Walter.DataTools.MsSql Namespace


INamedSqlConnection Members

The INamedSqlConnection type exposes the following members.

Properties

 | Name | Description
Public property | Item | Gets the named isntance database.

See Also

INamedSqlConnection Interface
Walter.DataTools.MsSql Namespace


INamedSqlConnection Properties

The INamedSqlConnection type exposes the following members.

Properties

 | Name | Description
Public property | Item | Gets the named isntance database.

See Also

INamedSqlConnection Interface
Walter.DataTools.MsSql Namespace


Item Property

INamedSqlConnection..::..Item Property

Gets the named isntance database.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
Nullable<IDatabaseTools> this[
    string name
] { get; }

Parameters

name
Type: String

Field Value

The database.

See Also

INamedSqlConnection Interface
Walter.DataTools.MsSql Namespace


InitializeStateEventArgs Class

Initialization argument interface for events

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public sealed class InitializeStateEventArgs

Remarks

Used to communicate the state of via the OnInitialized event

See Also

InitializeStateEventArgs Members
Walter.DataTools.MsSql Namespace


InitializeStateEventArgs Members

The InitializeStateEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Log | the log executed
Public property | State | The describes of the item that initialized

See Also

InitializeStateEventArgs Class
Walter.DataTools.MsSql Namespace


InitializeStateEventArgs Properties

The InitializeStateEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Log | the log executed
Public property | State | The describes of the item that initialized

See Also

InitializeStateEventArgs Class
Walter.DataTools.MsSql Namespace


Log Property

InitializeStateEventArgs..::..Log Property

the log executed

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult> Log { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.

See Also

InitializeStateEventArgs Class
Walter.DataTools.MsSql Namespace


State Property

InitializeStateEventArgs..::..State Property

The describes of the item that initialized

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IInitializeState State { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

InitializeStateEventArgs Class
Walter.DataTools.MsSql Namespace


TableState Enumeration

The table state a table is in

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public enum TableState

Members

Member name | Description
Empty | table is empty
HasData | table has data
TableDoesNotExists | table does not exists

See Also

Walter.DataTools.MsSql Namespace


TSqlResult Class

Contains TSQL statements executed including the result of the SQL statement

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class TSqlResult

Remarks

You can subscribe to OnExecuted to get the statement for items in the IDatabaseTools that do not return a TSqlResult.

See Also

TSqlResult Members
Walter.DataTools.MsSql Namespace


TSqlResult Members

The TSqlResult type exposes the following members.

Methods

 | Name | Description
Public method | Add(SqlError) | A collection with all the error details returned by the server Adds a SqlError to the list if the error was not known
Public method | AsException | return the execution result as an exception object
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(TSqlResult>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a status of the TsqlResult

Properties

 | Name | Description
Public property | CalledByMethod | Returns the IDatabaseTools method that was responsible for creating this result.
Public property | Created | The UTC date that the entry was created
Public property | Database | the database the particular statement was executed on based on the open connection
Public property | DataSource | the server the statement was executed on based on the open connection
Public property | Errors | Access the errors that have been created by SqlServer during the execution of this statement
Public property | HasFailed | Indicates that the result generated errors that have been captured
Public property | InfoMessages | information messages returned while executing the statement
Public property | Message | the messages printed by the statement,
Public property | RowsAffected | Contains the accumulated rows affected by the statement as reported by sql server
Public property | Source | The name of the object that generated the error.
Public property | Sql | This contains the name of the stored procedure or SQL statement executed

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


TSqlResult Methods

The TSqlResult type exposes the following members.

Methods

 | Name | Description
Public method | Add(SqlError) | A collection with all the error details returned by the server Adds a SqlError to the list if the error was not known
Public method | AsException | return the execution result as an exception object
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(TSqlResult>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a status of the TsqlResult

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Add Method (SqlError)

TSqlResult..::..Add Method (SqlError)

A collection with all the error details returned by the server
Adds a SqlError to the list if the error was not known

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool Add(
    SqlError error
)

Parameters

error
Type: SqlError

Return Value

True if the error was not already included

See Also

TSqlResult Class
Add Overload
Walter.DataTools.MsSql Namespace


AsException Method

TSqlResult..::..AsException Method

return the execution result as an exception object

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlResultException AsException()

Return Value

TSqlResultException.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Equals Method

TSqlResult..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(TSqlResult>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

TSqlResult Class
TSqlResult Members
Walter.DataTools.MsSql Namespace


Equals Method (Nullable(Object))

TSqlResult..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

TSqlResult Class
Equals Overload
Walter.DataTools.MsSql Namespace


Equals Method (Nullable(TSqlResult))

TSqlResult..::..Equals Method (Nullable<(Of <(<'TSqlResult>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool Equals(
    Nullable<TSqlResult> other
)

Parameters

other
Type: Nullable <(Of <(<' TSqlResult >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

TSqlResult Class
Equals Overload
Walter.DataTools.MsSql Namespace


GetHashCode Method

TSqlResult..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


ToString Method

TSqlResult..::..ToString Method

Returns a status of the TsqlResult

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


TSqlResult Properties

The TSqlResult type exposes the following members.

Properties

 | Name | Description
Public property | CalledByMethod | Returns the IDatabaseTools method that was responsible for creating this result.
Public property | Created | The UTC date that the entry was created
Public property | Database | the database the particular statement was executed on based on the open connection
Public property | DataSource | the server the statement was executed on based on the open connection
Public property | Errors | Access the errors that have been created by SqlServer during the execution of this statement
Public property | HasFailed | Indicates that the result generated errors that have been captured
Public property | InfoMessages | information messages returned while executing the statement
Public property | Message | the messages printed by the statement,
Public property | RowsAffected | Contains the accumulated rows affected by the statement as reported by sql server
Public property | Source | The name of the object that generated the error.
Public property | Sql | This contains the name of the stored procedure or SQL statement executed

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


CalledByMethod Property

TSqlResult..::..CalledByMethod Property

Returns the IDatabaseTools method that was responsible for creating this result.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string CalledByMethod { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Created Property

TSqlResult..::..Created Property

The UTC date that the entry was created

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public DateTime Created { get; set; }

Remarks

This value allows you to compare the date-time the issue created vs the time error where last reported

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Database Property

TSqlResult..::..Database Property

the database the particular statement was executed on based on the open connection

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Database { get; set; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


DataSource Property

TSqlResult..::..DataSource Property

the server the statement was executed on based on the open connection

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string DataSource { get; set; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Errors Property

TSqlResult..::..Errors Property

Access the errors that have been created by SqlServer during the execution of this statement

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult..::..TSqlError> Errors { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


HasFailed Property

TSqlResult..::..HasFailed Property

Indicates that the result generated errors that have been captured

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool HasFailed { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


InfoMessages Property

TSqlResult..::..InfoMessages Property

information messages returned while executing the statement

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<string> InfoMessages { get; }

Remarks

The database can return several messages when executing a statement. The messages are collected in the order received

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Message Property

TSqlResult..::..Message Property

the messages printed by the statement,

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Message { get; set; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


RowsAffected Property

TSqlResult..::..RowsAffected Property

Contains the accumulated rows affected by the statement as reported by sql server

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int RowsAffected { get; set; }

Remarks

If NOCOUNT is set to true this number may not reflect the actual rows affected, also inserting and deleting the same row(s) may offset the number

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Source Property

TSqlResult..::..Source Property

The name of the object that generated the error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Source { get; set; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


Sql Property

TSqlResult..::..Sql Property

This contains the name of the stored procedure or SQL statement executed

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Sql { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TSqlResult Class
Walter.DataTools.MsSql Namespace


TSqlResult.TSqlError Class

TSqlResult..::..TSqlError Class

the SQL server error generated by a TSqlResult

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public class TSqlError

See Also

TSqlResult..::..TSqlError Members
Walter.DataTools.MsSql Namespace


TSqlResult.TSqlError Members

TSqlResult..::..TSqlError Members

The TSqlResult..::..TSqlError type exposes the following members.

Constructors

 | Name | Description
Public method | TSqlResult..::..TSqlError(Byte, Int32, Int32, String, String, String, String, Byte) | Initializes a new instance of the TSqlResult..::..TSqlError class.
Public method | TSqlResult..::..TSqlError(SqlError, TSqlResult) | Initializes a new instance of the TSqlResult..::..TSqlError class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(TSqlResult..::..TSqlError>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Properties

 | Name | Description
Public property | Database | The database that was likely used in the statement
Public property | ErrorLevel | a friendly reminder of what the Severity codes mean
Public property | LineNumber | Gets the line number within the Transact-SQL command batch or stored procedure that contains the error.
Public property | Message | Gets the text describing the error.
Public property | Number | Gets a number that identifies the type of error.
Public property | Procedure | Gets the name of the stored procedure, SQL Statement or remote procedure call (RPC) that generated the error.
Public property | Server | Gets the name of the instance of SQL Server that generated the error.
Public property | Severity | Gets the severity level of the error returned from SQL Server.
Public property | Source | Gets the name of the provider that generated the error.
Public property | State | An arbitrary number from 1-255 that states "a stale of the error" and is used as a code identifier in the a statement, defaults to 0 if no error but set to 1 in case of an error, normally the code is an indication as to where the error ocured

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


TSqlError Constructor

Overload List

 | Name | Description
Public method | TSqlResult..::..TSqlError(Byte, Int32, Int32, String, String, String, String, Byte) | Initializes a new instance of the TSqlResult..::..TSqlError class.
Public method | TSqlResult..::..TSqlError(SqlError, TSqlResult) | Initializes a new instance of the TSqlResult..::..TSqlError class.

See Also

TSqlResult..::..TSqlError Class
TSqlResult..::..TSqlError Members
Walter.DataTools.MsSql Namespace


TSqlError Constructor (Byte, Int32, Int32, String, String, String, String, Byte)

Initializes a new instance of the TSqlResult..::..TSqlError class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlError(
    byte severity,
    int lineNumber,
    int number,
    string message,
    string procedure,
    string server,
    string source,
    byte state
)

Parameters

severity
Type: Byte
Severity levels from 20 through 25 are considered fatal. If a fatal severity level is encountered, the client connection is terminated after receiving the message, and the error is logged in the error and application logs.
lineNumber
Type: Int32
The line number.
number
Type: Int32
The number.
message
Type: String
The message.
procedure
Type: String
The procedure.
server
Type: String
The server.
source
Type: String
The source.
state
Type: Byte
The state.

See Also

TSqlResult..::..TSqlError Class
TSqlResult..::..TSqlError Overload
Walter.DataTools.MsSql Namespace


TSqlError Constructor (SqlError, TSqlResult)

Initializes a new instance of the TSqlResult..::..TSqlError class.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlError(
    SqlError error,
    TSqlResult owner
)

Parameters

error
Type: SqlError
The error.
owner
Type: Walter.DataTools.MsSql..::..TSqlResult
The TsqlStatement owning the error

Exceptions

Exception | Condition
[System.ArgumentNullException] | error

See Also

TSqlResult..::..TSqlError Class
TSqlResult..::..TSqlError Overload
Walter.DataTools.MsSql Namespace


TSqlResult.TSqlError Methods

TSqlResult..::..TSqlError Methods

The TSqlResult..::..TSqlError type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(TSqlResult..::..TSqlError>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Equals Method

TSqlError..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(TSqlResult..::..TSqlError>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

TSqlResult..::..TSqlError Class
TSqlResult..::..TSqlError Members
Walter.DataTools.MsSql Namespace


Equals Method (Nullable(Object))

TSqlError..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

TSqlResult..::..TSqlError Class
Equals Overload
Walter.DataTools.MsSql Namespace


Equals Method (Nullable(TSqlError))

TSqlError..::..Equals Method (Nullable<(Of <(<'TSqlError>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public bool Equals(
    Nullable<TSqlResult..::..TSqlError> other
)

Parameters

other
Type: Nullable <(Of <(<' TSqlResult..::..TSqlError >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

TSqlResult..::..TSqlError Class
Equals Overload
Walter.DataTools.MsSql Namespace


GetHashCode Method

TSqlError..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


TSqlResult.TSqlError Properties

TSqlResult..::..TSqlError Properties

The TSqlResult..::..TSqlError type exposes the following members.

Properties

 | Name | Description
Public property | Database | The database that was likely used in the statement
Public property | ErrorLevel | a friendly reminder of what the Severity codes mean
Public property | LineNumber | Gets the line number within the Transact-SQL command batch or stored procedure that contains the error.
Public property | Message | Gets the text describing the error.
Public property | Number | Gets a number that identifies the type of error.
Public property | Procedure | Gets the name of the stored procedure, SQL Statement or remote procedure call (RPC) that generated the error.
Public property | Server | Gets the name of the instance of SQL Server that generated the error.
Public property | Severity | Gets the severity level of the error returned from SQL Server.
Public property | Source | Gets the name of the provider that generated the error.
Public property | State | An arbitrary number from 1-255 that states "a stale of the error" and is used as a code identifier in the a statement, defaults to 0 if no error but set to 1 in case of an error, normally the code is an indication as to where the error ocured

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Database Property

TSqlError..::..Database Property

The database that was likely used in the statement

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Database { get; set; }

Remarks

The database used in the connection if one was set, the value is also updated by the database returned by TSQL response messages. This value may not be accurate as one can't be certain what database a statement executed as statements can be over several databases or even not in the database used when opening the related connection.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


ErrorLevel Property

TSqlError..::..ErrorLevel Property

a friendly reminder of what the Severity codes mean

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string ErrorLevel { get; }

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


LineNumber Property

TSqlError..::..LineNumber Property

Gets the line number within the Transact-SQL command batch or stored procedure that contains the error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int LineNumber { get; set; }

Field Value

The line number within the Transact-SQL command batch or stored procedure that contains the error.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Message Property

TSqlError..::..Message Property

Gets the text describing the error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Message { get; set; }

Field Value

The text describing the error. For more information on errors generated by SQL Server, see Database Engine Events and Errors.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Number Property

TSqlError..::..Number Property

Gets a number that identifies the type of error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public int Number { get; set; }

Field Value

The number that identifies the type of error.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Procedure Property

TSqlError..::..Procedure Property

Gets the name of the stored procedure, SQL Statement or remote procedure call (RPC) that generated the error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Procedure { get; set; }

Field Value

The name of the stored procedure or RPC. For more information on errors generated by SQL Server, see Database Engine Events and Errors.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Server Property

TSqlError..::..Server Property

Gets the name of the instance of SQL Server that generated the error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Server { get; set; }

Field Value

The name of the instance of SQL Server.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Severity Property

TSqlError..::..Severity Property

Gets the severity level of the error returned from SQL Server.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public byte Severity { get; set; }

Field Value

A value from 1 to 25 that indicates the severity level of the error. The default is 0.

Remarks

Severity levels from 20 through 25 are considered fatal. If a fatal severity level is encountered, the client connection is terminated after receiving the message, and the error is logged in the error and application logs

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


Source Property

TSqlError..::..Source Property

Gets the name of the provider that generated the error.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string Source { get; set; }

Field Value

The name of the provider that generated the error.

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


State Property

TSqlError..::..State Property

An arbitrary number from 1-255 that states "a stale of the error" and is used as a code identifier in the a statement, defaults to 0 if no error but set to 1 in case of an error, normally the code is an indication as to where the error ocured

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public byte State { get; set; }

Field Value

The state code.

Remarks

Some error messages can be raised at multiple points in the code for the Database Engine. For example, an 1105 error can be raised for several different conditions. Each specific condition that raises an error assigns a unique state code.

developers can assign any byte value to this property

See Also

TSqlResult..::..TSqlError Class
Walter.DataTools.MsSql Namespace


TSqlResultException Class

Class TSqlResultException. This class cannot be inherited. Implements the [System.Exception]

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public sealed class TSqlResultException

See Also

TSqlResultException Members
Walter.DataTools.MsSql Namespace
[System.Exception]


TSqlResultException Members

The TSqlResultException type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | MemberName | Gets the name of the member.
Public property | SourceFilePath | Gets the source file path.
Public property | SourceLineNumber | Gets the source line number.
Public property | SqlResult | The TSQL result object containing the error

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


TSqlResultException Methods

The TSqlResultException type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


ToString Method

TSqlResultException..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


TSqlResultException Properties

The TSqlResultException type exposes the following members.

Properties

 | Name | Description
Public property | MemberName | Gets the name of the member.
Public property | SourceFilePath | Gets the source file path.
Public property | SourceLineNumber | Gets the source line number.
Public property | SqlResult | The TSQL result object containing the error

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


MemberName Property

TSqlResultException..::..MemberName Property

Gets the name of the member.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<string> MemberName { get; }

Field Value

The name of the member.

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


SourceFilePath Property

TSqlResultException..::..SourceFilePath Property

Gets the source file path.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<string> SourceFilePath { get; }

Field Value

The source file path.

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


SourceLineNumber Property

TSqlResultException..::..SourceLineNumber Property

Gets the source line number.

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public Nullable<int> SourceLineNumber { get; }

Field Value

The source line number.

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


SqlResult Property

TSqlResultException..::..SqlResult Property

The TSQL result object containing the error

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlResult SqlResult { get; }

Field Value

The SQL result.

See Also

TSqlResultException Class
Walter.DataTools.MsSql Namespace


Walter.DataTools.MsSql.Events Namespace

Classes

 | Class | Description
Public class | ExecutedEventArgs | Event argument raised by the OnExecuted event
Public class | FailedEventArgs | Class FailedEventArgs. This class cannot be inherited. Implements the [System.EventArgs]


ExecutedEventArgs Class

Event argument raised by the OnExecuted event

Namespace: Walter.DataTools.MsSql.Events
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public sealed class ExecutedEventArgs

See Also

ExecutedEventArgs Members
Walter.DataTools.MsSql.Events Namespace


ExecutedEventArgs Members

The ExecutedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | SqlResult | Contains TSQL statements executed including the result of the SQL statement
Public property | Statements | All statements of more that 1 was executed

See Also

ExecutedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


ExecutedEventArgs Properties

The ExecutedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | SqlResult | Contains TSQL statements executed including the result of the SQL statement
Public property | Statements | All statements of more that 1 was executed

See Also

ExecutedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


SqlResult Property

ExecutedEventArgs..::..SqlResult Property

Contains TSQL statements executed including the result of the SQL statement

Namespace: Walter.DataTools.MsSql.Events
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlResult SqlResult { get; }

Remarks

If the statement contains more than one then this will be the last statement executed

See Also

ExecutedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


Statements Property

ExecutedEventArgs..::..Statements Property

All statements of more that 1 was executed

Namespace: Walter.DataTools.MsSql.Events
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult> Statements { get; }

See Also

ExecutedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


FailedEventArgs Class

Class FailedEventArgs. This class cannot be inherited. Implements the [System.EventArgs]

Namespace: Walter.DataTools.MsSql.Events
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public sealed class FailedEventArgs

See Also

FailedEventArgs Members
Walter.DataTools.MsSql.Events Namespace
[System.EventArgs]


FailedEventArgs Members

The FailedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | AllFailedStatements | Gets all failed statements.
Public property | FailedStatement | Gets the failed statement.

See Also

FailedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


FailedEventArgs Properties

The FailedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | AllFailedStatements | Gets all failed statements.
Public property | FailedStatement | Gets the failed statement.

See Also

FailedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


AllFailedStatements Property

FailedEventArgs..::..AllFailedStatements Property

Gets all failed statements.

Namespace: Walter.DataTools.MsSql.Events
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public IReadOnlyList<TSqlResult> AllFailedStatements { get; }

Field Value

All failed statements.

See Also

FailedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


FailedStatement Property

FailedEventArgs..::..FailedStatement Property

Gets the failed statement.

Namespace: Walter.DataTools.MsSql.Events
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public TSqlResult FailedStatement { get; }

Field Value

The failed statement.

See Also

FailedEventArgs Class
Walter.DataTools.MsSql.Events Namespace


Walter.IO Namespace

Classes

 | Class | Description
Public class | AppDataDirectory | application data working directory container
Public class | Current | current IO informations
Public class | DiskViolationsExtensions | extension method on IDiskChanges interface
Public class | FileInfoExtensions | IO extensions for FileInfo
Public class | WorkingDirectory | Contains the working directory from where the application context is configured to operate with a working directory

Interfaces

 | Interface | Description
Public interface | IDiskChanges | Interface IFirewallDiskViolations informs who violated a disk activity
Public interface | IDiskGuard | Guards and alerts if there are any uncontrolled disk activities where data is altered.

Enumerations

 | Enumeration | Description
Public enumeration | SwapDirectoryOptions | action to perform when changing directory


AppDataDirectory Class

application data working directory container

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public sealed class AppDataDirectory

See Also

AppDataDirectory Members
Walter.IO Namespace


AppDataDirectory Members

The AppDataDirectory type exposes the following members.

Constructors

 | Name | Description
Public method | AppDataDirectory | create the application data working directory

Methods

 | Name | Description
Public method | Delete | empty the directory and delete it
Public method | DirectoryInfo | Get a directory info for a sub folder
Public method | Exists | Tests to see if the directory exists
Public method | File | Files the specified arguments.
Public method | Swap | swap the directory considered to be the working directory

Properties

 | Name | Description
Public property | ActiveFiles | current list of files in directory
Public property | Path | The assigned path

See Also

AppDataDirectory Class
Walter.IO Namespace


AppDataDirectory Constructor

create the application data working directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public AppDataDirectory(
    string path
)

Parameters

path
Type: String

See Also

AppDataDirectory Class
Walter.IO Namespace


AppDataDirectory Methods

The AppDataDirectory type exposes the following members.

Methods

 | Name | Description
Public method | Delete | empty the directory and delete it
Public method | DirectoryInfo | Get a directory info for a sub folder
Public method | Exists | Tests to see if the directory exists
Public method | File | Files the specified arguments.
Public method | Swap | swap the directory considered to be the working directory

See Also

AppDataDirectory Class
Walter.IO Namespace


Delete Method

AppDataDirectory..::..Delete Method

empty the directory and delete it

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public void Delete()

See Also

AppDataDirectory Class
Walter.IO Namespace


DirectoryInfo Method

AppDataDirectory..::..DirectoryInfo Method

Get a directory info for a sub folder

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public DirectoryInfo DirectoryInfo(
    params string[] folders
)

Parameters

folders
Type: array< String >[]()[][]
the sub folders

Return Value

See Also

AppDataDirectory Class
Walter.IO Namespace


Exists Method

AppDataDirectory..::..Exists Method

Tests to see if the directory exists

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public bool Exists()

Return Value

See Also

AppDataDirectory Class
Walter.IO Namespace


File Method

AppDataDirectory..::..File Method

Files the specified arguments.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public FileInfo File(
    params string[] args
)

Parameters

args
Type: array< String >[]()[][]
The arguments.

Return Value

FileInfo.

Exceptions

Exception | Condition
[System.ArgumentNullException] | args
[System.ArgumentOutOfRangeException] |

See Also

AppDataDirectory Class
Walter.IO Namespace


Swap Method

AppDataDirectory..::..Swap Method

swap the directory considered to be the working directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public void Swap(
    string newPath,
    SwapDirectoryOptions option
)

Parameters

newPath
Type: String
option
Type: Walter.IO..::..SwapDirectoryOptions

Remarks

If the new path is the same as the current path the method will ignore the deleteOld argument

See Also

AppDataDirectory Class
Walter.IO Namespace


AppDataDirectory Properties

The AppDataDirectory type exposes the following members.

Properties

 | Name | Description
Public property | ActiveFiles | current list of files in directory
Public property | Path | The assigned path

See Also

AppDataDirectory Class
Walter.IO Namespace


ActiveFiles Property

AppDataDirectory..::..ActiveFiles Property

current list of files in directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public IReadOnlyList<FileInfo> ActiveFiles { get; }

Remarks

This is a snapshot of the files that are available and changes are not populated

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

AppDataDirectory Class
Walter.IO Namespace


Path Property

AppDataDirectory..::..Path Property

The assigned path

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public string Path { get; }

See Also

AppDataDirectory Class
Walter.IO Namespace


Current Class

current IO informations

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static class Current

See Also

Current Members
Walter.IO Namespace


Current Members

The Current type exposes the following members.

Properties

Name | Description
AppData | Application Data folder
AvailableThreads | Get the tasks waiting for execution

See Also

Current Class
Walter.IO Namespace


Current Properties

The Current type exposes the following members.

Properties

Name | Description
AppData | Application Data folder
AvailableThreads | Get the tasks waiting for execution

See Also

Current Class
Walter.IO Namespace


AppData Property

Current..::..AppData Property

Application Data folder

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static AppDataDirectory AppData { get; }

See Also

Current Class
Walter.IO Namespace


AvailableThreads Property

Current..::..AvailableThreads Property

Get the tasks waiting for execution

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static int AvailableThreads { get; }

See Also

Current Class
Walter.IO Namespace


DiskViolationsExtensions Class

extension method on IDiskChanges interface

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static class DiskViolationsExtensions

See Also

DiskViolationsExtensions Members
Walter.IO Namespace


DiskViolationsExtensions Members

The DiskViolationsExtensions type exposes the following members.

Methods

Name | Description
AsIDiskChanges | Parses the specified json.
TryParseAsIDiskChanges | Tries to parse the provided json and when successful will generate a violation instance.

See Also

DiskViolationsExtensions Class
Walter.IO Namespace


DiskViolationsExtensions Methods

The DiskViolationsExtensions type exposes the following members.

Methods

Name | Description
AsIDiskChanges | Parses the specified json.
TryParseAsIDiskChanges | Tries to parse the provided json and when successful will generate a violation instance.

See Also

DiskViolationsExtensions Class
Walter.IO Namespace


AsIDiskChanges Method

DiskViolationsExtensions..::..AsIDiskChanges Method

Parses the specified json.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static IDiskChanges AsIDiskChanges(
    string json
)

Parameters

json
Type: String
The json.

Return Value

IDiskChanges.

Exceptions

Exception | Condition
[ArgumentException] | '{nameof(json)}' cannot be null or empty - json

See Also

DiskViolationsExtensions Class
Walter.IO Namespace


TryParseAsIDiskChanges Method

DiskViolationsExtensions..::..TryParseAsIDiskChanges Method

Tries to parse the provided json and when successful will generate a violation instance.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static bool TryParseAsIDiskChanges(
    string json,
    out Nullable<IDiskChanges> violation
)

Parameters

json
Type: String
The json.
violation
Type: Nullable <(Of <(<'IDiskChanges>)>)>%
The violation will not be null when true.

Return Value

boolean value stating if processing the json was successful

Exceptions

Exception | Condition
[ArgumentException] | json cannot be null or empty

See Also

DiskViolationsExtensions Class
Walter.IO Namespace


FileInfoExtensions Class

IO extensions for FileInfo

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static class FileInfoExtensions

See Also

FileInfoExtensions Members
Walter.IO Namespace


FileInfoExtensions Members

The FileInfoExtensions type exposes the following members.

Methods

Name | Description
Age | Get's the last time a file was altered or created
ReadBinary | return the content of a file as byte array
TryRead | Read file without setting an exclusive lock

See Also

FileInfoExtensions Class
Walter.IO Namespace


FileInfoExtensions Methods

The FileInfoExtensions type exposes the following members.

Methods

Name | Description
Age | Get's the last time a file was altered or created
ReadBinary | return the content of a file as byte array
TryRead | Read file without setting an exclusive lock

See Also

FileInfoExtensions Class
Walter.IO Namespace


Age Method

FileInfoExtensions..::..Age Method

Get's the last time a file was altered or created

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static TimeSpan Age(
    FileInfo file
)

Parameters

file
Type: FileInfo
The file to get the age from

Return Value

TimeSpan with the age, returns TimeSpan.Zero if the file does not exists

See Also

FileInfoExtensions Class
Walter.IO Namespace


ReadBinary Method

FileInfoExtensions..::..ReadBinary Method

return the content of a file as byte array

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static byte[] ReadBinary(
    FileInfo file
)

Parameters

file
Type: FileInfo
the file to read

Return Value

The byte array

Exceptions

Exception | Condition
[ArgumentNullException] | You need to provide a file info
[FileNotFoundException] | File provided is not found

See Also

FileInfoExtensions Class
Walter.IO Namespace


TryRead Method

FileInfoExtensions..::..TryRead Method

Read file without setting an exclusive lock

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static bool TryRead(
    FileInfo file,
    out Nullable<string> text
)

Parameters

file
Type: FileInfo
the file to read
text
Type: Nullable <(Of <(<' String >)>)>%
the text read

Return Value

true if the file was read

See Also

FileInfoExtensions Class
Walter.IO Namespace


IDiskChanges Interface

Interface IFirewallDiskViolations informs who violated a disk activity

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IDiskChanges

See Also

IDiskChanges Members
Walter.IO Namespace
Walter.IO..::..IDiskGuard


IDiskChanges Members

The IDiskChanges type exposes the following members.

Properties

 | Name | Description
Public property | ActiveOnCapture | Gets a value indicating whether [active on capture].
Public property | ChangeType | Gets the type of the change that was detected.
Public property | ExecutingBinary | Gets the changed by.
Public property | ExitCode | Gets the exit code.
Public property | ExitTime | Gets the exit time if process had exited on capturing.
Public property | File | Gets the file that was changed outside of the context of the firewall.
Public property | IsSuspicious | Gets or sets a value indicating whether this file change is suspicious because it was not controlled via a IDiskGuard
Public property | MachineName | Gets the name of the machine at the time it was recorded.
Public property | Processes | Processes that have had access to the File at the time the event was captured
Public property | ProcessId | Gets the process identifier as it was at the time of capture.
Public property | ProcessName | Gets the name of the process at the time it was recorded.
Public property | RecordedUtc | Gets the date the change was recorded in UTC.

See Also

IDiskChanges Interface
Walter.IO Namespace


IDiskChanges Properties

The IDiskChanges type exposes the following members.

Properties

 | Name | Description
Public property | ActiveOnCapture | Gets a value indicating whether [active on capture].
Public property | ChangeType | Gets the type of the change that was detected.
Public property | ExecutingBinary | Gets the changed by.
Public property | ExitCode | Gets the exit code.
Public property | ExitTime | Gets the exit time if process had exited on capturing.
Public property | File | Gets the file that was changed outside of the context of the firewall.
Public property | IsSuspicious | Gets or sets a value indicating whether this file change is suspicious because it was not controlled via a IDiskGuard
Public property | MachineName | Gets the name of the machine at the time it was recorded.
Public property | Processes | Processes that have had access to the File at the time the event was captured
Public property | ProcessId | Gets the process identifier as it was at the time of capture.
Public property | ProcessName | Gets the name of the process at the time it was recorded.
Public property | RecordedUtc | Gets the date the change was recorded in UTC.

See Also

IDiskChanges Interface
Walter.IO Namespace


ActiveOnCapture Property

IDiskChanges..::..ActiveOnCapture Property

Gets a value indicating whether [active on capture].

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool ActiveOnCapture { get; }

Field Value

true if [active on capture]; otherwise, false.

See Also

IDiskChanges Interface
Walter.IO Namespace


ChangeType Property

IDiskChanges..::..ChangeType Property

Gets the type of the change that was detected.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
WatcherChangeTypes ChangeType { get; }

Field Value

The type of the change.

Remarks

You might find several change types when looking at a given file

See Also

IDiskChanges Interface
Walter.IO Namespace


ExecutingBinary Property

IDiskChanges..::..ExecutingBinary Property

Gets the changed by.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<string> ExecutingBinary { get; }

Field Value

The changed by.

See Also

IDiskChanges Interface
Walter.IO Namespace


ExitCode Property

IDiskChanges..::..ExitCode Property

Gets the exit code.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<int> ExitCode { get; }

Field Value

The exit code.

See Also

IDiskChanges Interface
Walter.IO Namespace


ExitTime Property

IDiskChanges..::..ExitTime Property

Gets the exit time if process had exited on capturing.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<DateTime> ExitTime { get; }

Field Value

The exit time.

See Also

IDiskChanges Interface
Walter.IO Namespace


File Property

IDiskChanges..::..File Property

Gets the file that was changed outside of the context of the firewall.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
string File { get; }

Field Value

The file.

See Also

IDiskChanges Interface
Walter.IO Namespace


IsSuspicious Property

IDiskChanges..::..IsSuspicious Property

Gets or sets a value indicating whether this file change is suspicious because it was not controlled via a IDiskGuard

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
bool IsSuspicious { get; set; }

Field Value

true if this instance is suspicious; otherwise, false.

Remarks

You can set the IDiskGuard StartMonitoring(DirectoryInfo, String, Boolean) or one of the overloaded methods to allow the change. You can add additional directories by getting the IDiskGuard from a [IServiceCollection]

See Also

IDiskChanges Interface
Walter.IO Namespace
Walter.IO..::..IDiskGuard


MachineName Property

IDiskChanges..::..MachineName Property

Gets the name of the machine at the time it was recorded.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<string> MachineName { get; }

Field Value

The name of the machine.

See Also

IDiskChanges Interface
Walter.IO Namespace


Processes Property

IDiskChanges..::..Processes Property

Processes that have had access to the File at the time the event was captured

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
IReadOnlyList<ProcessImage> Processes { get; }

See Also

IDiskChanges Interface
Walter.IO Namespace
IDiskChanges..::..File


ProcessId Property

IDiskChanges..::..ProcessId Property

Gets the process identifier as it was at the time of capture.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<int> ProcessId { get; }

Field Value

The process identifier.

See Also

IDiskChanges Interface
Walter.IO Namespace


ProcessName Property

IDiskChanges..::..ProcessName Property

Gets the name of the process at the time it was recorded.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
Nullable<string> ProcessName { get; }

Field Value

The name of the process.

See Also

IDiskChanges Interface
Walter.IO Namespace


RecordedUtc Property

IDiskChanges..::..RecordedUtc Property

Gets the date the change was recorded in UTC.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
DateTime RecordedUtc { get; }

Field Value

The recorded change date.

See Also

IDiskChanges Interface
Walter.IO Namespace


IDiskGuard Interface

Guards and alerts if there are any uncontrolled disk activities where data is altered.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public interface IDiskGuard : IControlledDiskIO

See Also

IDiskGuard Members
Walter.IO Namespace


IDiskGuard Members

The IDiskGuard type exposes the following members.

Methods

 | Name | Description
Public method | StartMonitoring(DirectoryInfo, String, Boolean) | Starts monitoring the specified directory.
Public method | StartMonitoring(String, Boolean) | Starts monitoring all activity starting at the entry assembly (the application)
Public method | StopMonitoring(DirectoryInfo, String) | Stops monitoring at the entry assembly (the application) if there is a location that matches the filter
Public method | StopMonitoring(String) | Stops monitoring at the entry assembly (the application) if there is a location that matches the filter

Events

 | Name | Description
Public event | OnDiskManipulation | This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party

See Also

IDiskGuard Interface
Walter.IO Namespace


IDiskGuard Methods

Methods

 | Name | Description
Public method | StartMonitoring(DirectoryInfo, String, Boolean) | Starts monitoring the specified directory.
Public method | StartMonitoring(String, Boolean) | Starts monitoring all activity starting at the entry assembly (the application)
Public method | StopMonitoring(DirectoryInfo, String) | Stops monitoring at the entry assembly (the application) if there is a location that matches the filter
Public method | StopMonitoring(String) | Stops monitoring at the entry assembly (the application) if there is a location that matches the filter

See Also

IDiskGuard Interface
Walter.IO Namespace


StartMonitoring Method

IDiskGuard..::..StartMonitoring Method

Overload List

 | Name | Description
Public method | StartMonitoring(DirectoryInfo, String, Boolean) | Starts monitoring the specified directory.
Public method | StartMonitoring(String, Boolean) | Starts monitoring all activity starting at the entry assembly (the application)

See Also

IDiskGuard Interface
IDiskGuard Members
Walter.IO Namespace


StartMonitoring Method (DirectoryInfo, String, Boolean)

IDiskGuard..::..StartMonitoring Method (DirectoryInfo, String, Boolean)

Starts monitoring the specified directory.

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void StartMonitoring(
    DirectoryInfo directory,
    string filter,
    bool includeSubdirectories
)

Parameters

directory
Type: DirectoryInfo
The directory to monitor.
filter
Type: String
The filter for the files to look for.
includeSubdirectories
Type: Boolean
if true (the default) it will include all files in all sub directories as well

See Also

IDiskGuard Interface
StartMonitoring Overload
Walter.IO Namespace


StartMonitoring Method (String, Boolean)

IDiskGuard..::..StartMonitoring Method (String, Boolean)

Starts monitoring all activity starting at the entry assembly (the application)

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void StartMonitoring(
    string filter,
    bool includeSubdirectories
)

Parameters

filter
Type: String
includeSubdirectories
Type: Boolean

See Also

IDiskGuard Interface
StartMonitoring Overload
Walter.IO Namespace


StopMonitoring Method

IDiskGuard..::..StopMonitoring Method

Overload List

 | Name | Description
Public method | StopMonitoring(DirectoryInfo, String) | Stops monitoring at the entry assembly (the application) if there is a location that matches the filter
Public method | StopMonitoring(String) | Stops monitoring at the entry assembly (the application) if there is a location that matches the filter

See Also

IDiskGuard Interface
IDiskGuard Members
Walter.IO Namespace


StopMonitoring Method (DirectoryInfo, String)

IDiskGuard..::..StopMonitoring Method (DirectoryInfo, String)

Stops monitoring at the entry assembly (the application) if there is a location that matches the filter

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void StopMonitoring(
    DirectoryInfo directory,
    string filter
)

Parameters

directory
Type: DirectoryInfo
The directory to stop watching
filter
Type: String
the filter to stop

Exceptions

Exception | Condition
[ArgumentException] | if a monitor with the filter is not found

See Also

IDiskGuard Interface
StopMonitoring Overload
Walter.IO Namespace


StopMonitoring Method (String)

IDiskGuard..::..StopMonitoring Method (String)

Stops monitoring at the entry assembly (the application) if there is a location that matches the filter

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
void StopMonitoring(
    string filter
)

Parameters

filter
Type: String
the filter to stop

Exceptions

Exception | Condition
[ArgumentException] | if a monitor with the filter is not found

See Also

IDiskGuard Interface
StopMonitoring Overload
Walter.IO Namespace


IDiskGuard Events

The IDiskGuard type exposes the following members.

Events

 | Name | Description
Public event | OnDiskManipulation | This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party

See Also

IDiskGuard Interface
Walter.IO Namespace


OnDiskManipulation Event

IDiskGuard..::..OnDiskManipulation Event

This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party

Namespace: Walter.IO
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
event Nullable<EventHandler<DiskManipulationEventArgs>> OnDiskManipulation

Remarks

If you do not want the firewall to trigger a alert use interface to make disk changes without triggering over a detection

Examples

The following code shows how to use the firewall to send an mail (if mail add-on installed) when a change on disk is detected by a application that is actually communicating via the network. This could be RemoteDesktop WinVCM or TeamViewer, Telnet, FTP etc.
C#
 private void MyFireWall_OnDiskManipulation(object sender, DiskManipulationEventArgs e)
 {
     foreach (var item in e.Violation.Talking)
     {
         if (item.tcpRecord.Scope == Walter.Net.Networking.CommunicationScopes.WAN)
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with external communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);
         }
         else
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with internal communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);

         }
     }
     e.Action = ApplicationCompromisedActions.ShutDown | ApplicationCompromisedActions.PersistOnReboot;
 }

 private string MakeEmailBody(Walter.Net.Networking.CommunicationScopes scope,string executingBinary, IPAddress remoteAddress)
 {
    private string MakeEmailBody(Walter.Net.Networking.CommunicationScope scope,string executingBinary, IPAddress remoteAddress)
    {
        if (scope == Walter.Net.Networking.CommunicationScopes.WAN)
        {
            var map = _geo.QueryMapLocation(remoteAddress);
            var whois = Whois(remoteAddress);
            return @"
            <p>
                We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}
            </p><p>
                While capturing the issue we recorded the IP coming from {City} - {Country} <a hfref="{Link}">google maps link</a></p><p>The IP address is managed by :<br />
                {WhoIs}
            </p>
             ".Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                .Replace("{City}", map.City, StringComparison.OrdinalIgnoreCase)
                .Replace("{Country}", map.Country, StringComparison.OrdinalIgnoreCase)
                .Replace("{Link}", map.GoogleMapLocation().AbsoluteUri, StringComparison.OrdinalIgnoreCase)
                .Replace("{WhoIs}", whois.ToHtml(), StringComparison.OrdinalIgnoreCase);
        }

        return  @"<p> We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}-{scope}</p>"
                   .Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                   .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                   .Replace("{Scope}",scope.ToString(),StringComparison.OrdinalIgnoreCase);
     }
   }
}

See Also

IDiskGuard Interface
Walter.IO Namespace


SwapDirectoryOptions Enumeration

action to perform when changing directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public enum SwapDirectoryOptions

Members

Member name | Description
NoAction | Do nothing
Move | Move files to the new directory
Delete | Delete the files

See Also

Walter.IO Namespace


WorkingDirectory Class

Contains the working directory from where the application context is configured to operate with a working directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public class WorkingDirectory

See Also

WorkingDirectory Members
Walter.IO Namespace


WorkingDirectory Members

The WorkingDirectory type exposes the following members.

Constructors

 | Name | Description
Public method | WorkingDirectory(String) | Create the work directory class
Public method | WorkingDirectory(String, String) | Initializes a new instance of the WorkingDirectory class.
Public method | WorkingDirectory(SpecialFolder, array<String>[]()[][]) | Initializes a new instance of the WorkingDirectory class.
Public method | WorkingDirectory(SpecialFolder, SpecialFolderOption, array<String>[]()[][]) | Initializes a new instance of the WorkingDirectory class.

Methods

 | Name | Description
Public method | GetAppDataDirectory | Allows to wrap AppData into a safe environment
 | GetDirectory | Get a specific directory
Public method | SetAppDataAssCurrentDirectory | Sets the App_Data as the current working directory for the application.
Public method | SetApplicationRootAsCurrentDirectory | Sets the application root as current directory.
 | SetAssCurrentDirectory | Sets the directory as the current working directory for the application.

Properties

 | Name | Description
Public property | AppData | Application data folder
 | ApplicationRoot | the application location on disk

See Also

WorkingDirectory Class
Walter.IO Namespace


WorkingDirectory Constructor

Overload List

 | Name | Description
Public method | WorkingDirectory(String) | Create the work directory class
Public method | WorkingDirectory(String, String) | Initializes a new instance of the WorkingDirectory class.
Public method | WorkingDirectory(SpecialFolder, array<String>[]()[][]) | Initializes a new instance of the WorkingDirectory class.
Public method | WorkingDirectory(SpecialFolder, SpecialFolderOption, array<String>[]()[][]) | Initializes a new instance of the WorkingDirectory class.

See Also

WorkingDirectory Class
WorkingDirectory Members
Walter.IO Namespace


WorkingDirectory Constructor (String)

Create the work directory class

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public WorkingDirectory(
    string appDataDir
)

Parameters

appDataDir
Type: String

See Also

WorkingDirectory Class
WorkingDirectory Overload
Walter.IO Namespace


WorkingDirectory Constructor (String, String)

Initializes a new instance of the WorkingDirectory class.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public WorkingDirectory(
    string directory,
    string appDataDir
)

Parameters

directory
Type: String
The directory.
appDataDir
Type: String
The application data directory.

See Also

WorkingDirectory Class
WorkingDirectory Overload
Walter.IO Namespace


WorkingDirectory Constructor (SpecialFolder, String[])

WorkingDirectory Constructor (SpecialFolder, array<String>[]()[][])

Initializes a new instance of the WorkingDirectory class.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public WorkingDirectory(
    SpecialFolder folder,
    params string[] subfolders
)

Parameters

folder
Type: SpecialFolder
The folder.
subfolders
Type: array< String >[]()[][]
The sub folders.

See Also

WorkingDirectory Class
WorkingDirectory Overload
Walter.IO Namespace


WorkingDirectory Constructor (SpecialFolder, SpecialFolderOption, String[])

WorkingDirectory Constructor (SpecialFolder, SpecialFolderOption, array<String>[]()[][])

Initializes a new instance of the WorkingDirectory class.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public WorkingDirectory(
    SpecialFolder folder,
    SpecialFolderOption option,
    params string[] subfolders
)

Parameters

folder
Type: SpecialFolder
The folder.
option
Type: SpecialFolderOption
The option.
subfolders
Type: array< String >[]()[][]
The sub folders.

See Also

WorkingDirectory Class
WorkingDirectory Overload
Walter.IO Namespace


WorkingDirectory Methods

The WorkingDirectory type exposes the following members.

Methods

 | Name | Description
Public method | GetAppDataDirectory | Allows to wrap AppData into a safe environment
 | GetDirectory | Get a specific directory
Public method | SetAppDataAssCurrentDirectory | Sets the App_Data as the current working directory for the application.
Public method | SetApplicationRootAsCurrentDirectory | Sets the application root as current directory.
 | SetAssCurrentDirectory | Sets the directory as the current working directory for the application.

See Also

WorkingDirectory Class
Walter.IO Namespace


GetAppDataDirectory Method

WorkingDirectory..::..GetAppDataDirectory Method

Allows to wrap AppData into a safe environment

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public DirectoryInfo GetAppDataDirectory()

Return Value

Application working directory

Exceptions

Exception | Condition
[System.IO.IOException] | The directory cannot be created

See Also

WorkingDirectory Class
Walter.IO Namespace


GetDirectory Method

WorkingDirectory..::..GetDirectory Method

Get a specific directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static DirectoryInfo GetDirectory(
    SpecialFolder folder
)

Parameters

folder
Type: SpecialFolder
the folder to get

Return Value

DirectoryInfo containing the path

See Also

WorkingDirectory Class
Walter.IO Namespace


SetAppDataAssCurrentDirectory Method

WorkingDirectory..::..SetAppDataAssCurrentDirectory Method

Sets the App_Data as the current working directory for the application.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public void SetAppDataAssCurrentDirectory()

Exceptions

Exception | Condition
[DirectoryNotFoundException] | could not set {AppData path} as it does not exists or you do not have permissions

See Also

WorkingDirectory Class
Walter.IO Namespace


SetApplicationRootAsCurrentDirectory Method

WorkingDirectory..::..SetApplicationRootAsCurrentDirectory Method

Sets the application root as current directory.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public void SetApplicationRootAsCurrentDirectory()

See Also

WorkingDirectory Class
Walter.IO Namespace


SetAssCurrentDirectory Method

WorkingDirectory..::..SetAssCurrentDirectory Method

Sets the directory as the current working directory for the application.

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static void SetAssCurrentDirectory(
    DirectoryInfo directory
)

Parameters

directory
Type: DirectoryInfo
The directory.

Exceptions

Exception | Condition
[DirectoryNotFoundException] | could not set {directory.FullName} as it does not exists or you do not have permissions

See Also

WorkingDirectory Class
Walter.IO Namespace


WorkingDirectory Properties

The WorkingDirectory type exposes the following members.

Properties

 | Name | Description
Public property | AppData | Application data folder
 | ApplicationRoot | the application location on disk

See Also

WorkingDirectory Class
Walter.IO Namespace


AppData Property

WorkingDirectory..::..AppData Property

Application data folder

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public string AppData { get; set; }

Remarks

The default is created as the AppData folder relative to the executing assembly

See Also

WorkingDirectory Class
Walter.IO Namespace


ApplicationRoot Property

WorkingDirectory..::..ApplicationRoot Property

the application location on disk

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static DirectoryInfo ApplicationRoot { get; }

See Also

WorkingDirectory Class
Walter.IO Namespace


Walter.IO.Builder Namespace

Classes

 | Class | Description
Public class | IOBuilderExtensions | Extension class use to inject IO objects like the [IDiskGuard]


IOBuilderExtensions Class

Extension class use to inject IO objects like the [IDiskGuard]

Namespace: Walter.IO.Builder
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static class IOBuilderExtensions

See Also

IOBuilderExtensions Members
Walter.IO.Builder Namespace


IOBuilderExtensions Members

The IOBuilderExtensions type exposes the following members.

Methods

Name | Description
AddSecureDiskMonitor<(Of <<'(T>)>>) | Adds a [IDiskGuard] to the dependency injection system

See Also

IOBuilderExtensions Class
Walter.IO.Builder Namespace


IOBuilderExtensions Methods

The IOBuilderExtensions type exposes the following members.

Methods

Name | Description
AddSecureDiskMonitor<(Of <<'(T>)>>) | Adds a [IDiskGuard] to the dependency injection system

See Also

IOBuilderExtensions Class
Walter.IO.Builder Namespace


AddSecureDiskMonitor(T) Method

IOBuilderExtensions..::..AddSecureDiskMonitor<(Of <(<'T>)>)> Method

Adds a [IDiskGuard] to the dependency injection system

Namespace: Walter.IO.Builder
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public static T AddSecureDiskMonitor<T>(
    T serviceCollection
)
where T : IServiceCollection

Type Parameters

T
The type used to extend the service

Parameters

serviceCollection
Type: T
the service collection to use

Return Value

Remarks

With a [IDiskGuard] you have the possibilities to alter disk information without causing a violation

See Also

IOBuilderExtensions Class
Walter.IO.Builder Namespace


Walter.IO.CommandLine Namespace

Classes

 | Class | Description
Public class | ProcessImage | Class ProcessImage contains the application information known about a process.


ProcessImage Class

Class ProcessImage contains the application information known about a process.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public sealed class ProcessImage

Remarks

The class supports json serialization via the json

See Also

ProcessImage Members
Walter.IO.CommandLine Namespace


ProcessImage Members

The ProcessImage type exposes the following members.

Constructors

 | Name | Description
Public method | ProcessImage(Process) | Initializes a new instance of the ProcessImage class.

Methods

Name | Description
Parse |
TryParse | Tries to parse the provided json and when successful will generate a process Image.

Properties

 | Name | Description
Public property | Arguments | Gets the arguments used to start the process.
Public property | Executable | Gets the path and file name to the executable.
Public property | ExecutableInfo | Gets the information known about the executable.
Public property | ExitCode | If the process has exited this contains the exit code
Public property | ExitTimeUtc | If the process has exited this contains the date and time the processes terminated
Public property | HasExited | if true then the process is no longer executing at the time or recording.
Public property | MachineName | Gets the name of the machine.
Public property | ProcessId | The unique identifier for the associated process at the time of recording on the machine recorded.
Public property | ProcessName | Gets the name of the process.
Public property | RecordedUtc | Gets the recorded UTC.
Public property | StartTimeUtc | Gets the start time UTC.
Public property | WorkingDirectory | The working directory of the process

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


ProcessImage Constructor (Process)

Initializes a new instance of the ProcessImage class.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public ProcessImage(
    Process process
)

Parameters

process
Type: Process
The process.

Exceptions

Exception | Condition
[ArgumentNullException] | Process must be provided

See Also

ProcessImage Class
#ctor Overload
Walter.IO.CommandLine Namespace


ProcessImage Methods

The ProcessImage type exposes the following members.

Methods

Name | Description
Parse |
TryParse | Tries to parse the provided json and when successful will generate a process Image.

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


Parse Method

ProcessImage..::..Parse Method

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static ProcessImage Parse(
    string json
)

Parameters

json
Type: String

Exceptions

Exception | Condition
[ArgumentException] | json cannot be null or empty

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


TryParse Method

ProcessImage..::..TryParse Method

Tries to parse the provided json and when successful will generate a process Image.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public static bool TryParse(
    string json,
    out Nullable<ProcessImage> processImage
)

Parameters

json
Type: String
The json.
processImage
Type: Nullable <(Of <(<' ProcessImage >)>)>%
The process image.

Return Value

bool stating if processing the json was successful

Exceptions

Exception | Condition
[ArgumentException] | json cannot be null or empty

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


ProcessImage Properties

The ProcessImage type exposes the following members.

Properties

 | Name | Description
Public property | Arguments | Gets the arguments used to start the process.
Public property | Executable | Gets the path and file name to the executable.
Public property | ExecutableInfo | Gets the information known about the executable.
Public property | ExitCode | If the process has exited this contains the exit code
Public property | ExitTimeUtc | If the process has exited this contains the date and time the processes terminated
Public property | HasExited | if true then the process is no longer executing at the time or recording.
Public property | MachineName | Gets the name of the machine.
Public property | ProcessId | The unique identifier for the associated process at the time of recording on the machine recorded.
Public property | ProcessName | Gets the name of the process.
Public property | RecordedUtc | Gets the recorded UTC.
Public property | StartTimeUtc | Gets the start time UTC.
Public property | WorkingDirectory | The working directory of the process

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


Arguments Property

ProcessImage..::..Arguments Property

Gets the arguments used to start the process.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string Arguments { get; set; }

Field Value

The arguments.

Remarks

Will contain an empty string if not set

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


Executable Property

ProcessImage..::..Executable Property

Gets the path and file name to the executable.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string Executable { get; set; }

Field Value

The executable.

Remarks

Will contain an empty string if not set

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


ExecutableInfo Property

ProcessImage..::..ExecutableInfo Property

Gets the information known about the executable.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[MaybeNullAttribute]
public Nullable<AssemblyVersionInfo> ExecutableInfo { get; set; }

Field Value

The executable information.

Remarks

Will be null if no Executable was found

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


ExitCode Property

ProcessImage..::..ExitCode Property

If the process has exited this contains the exit code

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[MaybeNullAttribute]
public Nullable<int> ExitCode { get; set; }

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace
ProcessImage..::..HasExited


ExitTimeUtc Property

ProcessImage..::..ExitTimeUtc Property

If the process has exited this contains the date and time the processes terminated

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[MaybeNullAttribute]
public Nullable<DateTime> ExitTimeUtc { get; set; }

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace
ProcessImage..::..HasExited


HasExited Property

ProcessImage..::..HasExited Property

if true then the process is no longer executing at the time or recording.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public bool HasExited { get; set; }

Field Value

indicates that the process has exited.

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace
ProcessImage..::..ExitCode
ProcessImage..::..ExitTimeUtc


MachineName Property

ProcessImage..::..MachineName Property

Gets the name of the machine.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string MachineName { get; set; }

Field Value

The name of the machine.

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


ProcessId Property

ProcessImage..::..ProcessId Property

The unique identifier for the associated process at the time of recording on the machine recorded.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public int ProcessId { get; set; }

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


ProcessName Property

ProcessImage..::..ProcessName Property

Gets the name of the process.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
[NotNullAttribute]
public string ProcessName { get; set; }

Field Value

The name of the process.

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


RecordedUtc Property

ProcessImage..::..RecordedUtc Property

Gets the recorded UTC.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DateTime RecordedUtc { get; set; }

Field Value

The recorded UTC.

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


StartTimeUtc Property

ProcessImage..::..StartTimeUtc Property

Gets the start time UTC.

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DateTime StartTimeUtc { get; set; }

Field Value

The start time UTC.

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


WorkingDirectory Property

ProcessImage..::..WorkingDirectory Property

The working directory of the process

Namespace: Walter.IO.CommandLine
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public string WorkingDirectory { get; set; }

Remarks

Will contain an empty string if not set

See Also

ProcessImage Class
Walter.IO.CommandLine Namespace


Walter.IO.EventArguments Namespace

Classes

 | Class | Description
Public class | DiskManipulationEventArgs | Event arguments raised by the firewall when disk manipulations has been discovered
Public class | ServiceConfigurationException | exception when service configuration failed


DiskManipulationEventArgs Class

Event arguments raised by the firewall when disk manipulations has been discovered

Namespace: Walter.IO.EventArguments
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class DiskManipulationEventArgs

Remarks

This argument allows you to perform a choice of actions the firewall will do for all future requests

Examples

The following code shows how to use the firewall to send an mail (if mail add-on installed) when a change on disk is detected by a application that is actually communicating via the network. This could be RemoteDesktop WinVCM or TeamViewer, Telnet, FTP etc.
C#
 private void MyFireWall_OnDiskManipulation(object sender, DiskManipulationEventArgs e)
 {
     foreach (var item in e.Violation.Talking)
     {
         if (item.tcpRecord.Scope == Walter.Net.Networking.CommunicationScopes.WAN)
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with external communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);
         }
         else
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with internal communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);

         }
     }
     e.Action = ApplicationCompromisedActions.ShutDown | ApplicationCompromisedActions.PersistOnReboot;
 }

 private string MakeEmailBody(Walter.Net.Networking.CommunicationScopes scope,string executingBinary, IPAddress remoteAddress)
 {
    private string MakeEmailBody(Walter.Net.Networking.CommunicationScope scope,string executingBinary, IPAddress remoteAddress)
    {
        if (scope == Walter.Net.Networking.CommunicationScopes.WAN)
        {
            var map = _geo.QueryMapLocation(remoteAddress);
            var whois = Whois(remoteAddress);
            return @"
            <p>
                We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}
            </p><p>
                While capturing the issue we recorded the IP coming from {City} - {Country} <a hfref="{Link}">google maps link</a></p><p>The IP address is managed by :<br />
                {WhoIs}
            </p>
             ".Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                .Replace("{City}", map.City, StringComparison.OrdinalIgnoreCase)
                .Replace("{Country}", map.Country, StringComparison.OrdinalIgnoreCase)
                .Replace("{Link}", map.GoogleMapLocation().AbsoluteUri, StringComparison.OrdinalIgnoreCase)
                .Replace("{WhoIs}", whois.ToHtml(), StringComparison.OrdinalIgnoreCase);
        }

        return  @"<p> We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}-{scope}</p>"
                   .Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                   .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                   .Replace("{Scope}",scope.ToString(),StringComparison.OrdinalIgnoreCase);
     }
   }
}

See Also

DiskManipulationEventArgs Members
Walter.IO.EventArguments Namespace
IDiskGuard..::..OnDiskManipulation


DiskManipulationEventArgs Members

The DiskManipulationEventArgs type exposes the following members.

Constructors

 | Name | Description
Public method | DiskManipulationEventArgs | Initializes a new instance of the DiskManipulationEventArgs class.

Properties

 | Name | Description
Public property | Changed | The violation discovered

See Also

DiskManipulationEventArgs Class
Walter.IO.EventArguments Namespace


DiskManipulationEventArgs Constructor

Initializes a new instance of the DiskManipulationEventArgs class.

Namespace: Walter.IO.EventArguments
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public DiskManipulationEventArgs(
    IDiskChanges changed
)

Parameters

changed
Type: Walter.IO..::..IDiskChanges
The violation.

See Also

DiskManipulationEventArgs Class
Walter.IO.EventArguments Namespace


DiskManipulationEventArgs Properties

The DiskManipulationEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Changed | The violation discovered

See Also

DiskManipulationEventArgs Class
Walter.IO.EventArguments Namespace


Changed Property

DiskManipulationEventArgs..::..Changed Property

The violation discovered

Namespace: Walter.IO.EventArguments
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public IDiskChanges Changed { get; }

See Also

DiskManipulationEventArgs Class
Walter.IO.EventArguments Namespace


ServiceConfigurationException Class

exception when service configuration failed

Namespace: Walter.IO.EventArguments
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public class ServiceConfigurationException

See Also

ServiceConfigurationException Members
Walter.IO.EventArguments Namespace


ServiceConfigurationException Members

Constructors

 | Name | Description
Public method | ServiceConfigurationException()()()() | create a default Service configuration failed exception
Public method | ServiceConfigurationException(String) | create a Service configuration failed exception

See Also

ServiceConfigurationException Class
Walter.IO.EventArguments Namespace


ServiceConfigurationException Constructor

Overload List

 | Name | Description
Public method | ServiceConfigurationException()()()() | create a default Service configuration failed exception
Public method | ServiceConfigurationException(String) | create a Service configuration failed exception

See Also

ServiceConfigurationException Class
ServiceConfigurationException Members
Walter.IO.EventArguments Namespace


ServiceConfigurationException Constructor

create a default Service configuration failed exception

Namespace: Walter.IO.EventArguments
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public ServiceConfigurationException()

See Also

ServiceConfigurationException Class
ServiceConfigurationException Overload
Walter.IO.EventArguments Namespace


ServiceConfigurationException Constructor (String)

create a Service configuration failed exception

Namespace: Walter.IO.EventArguments
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public ServiceConfigurationException(
    string message
)

Parameters

message
Type: String

See Also

ServiceConfigurationException Class
ServiceConfigurationException Overload
Walter.IO.EventArguments Namespace


Walter.Net.HoneyPot Namespace

Classes

 | Class | Description
Public class | HoneyPotExtensionMethods | extension methods available for honey-pot classes
Public class | HoneyPotServerListnerOption | Use the HoneyPotListnerOption class to configure the firewall to actively monitor port for hackers trying to attack the server hosting the application.
Public class | PortAccess | PortAccess is a data structure that contains port and indication of how and how often some one access it as well if the access was allowed.
Public class | PortAccessExtension | Helper class generating Port access objects

Structures

 | Structure | Description
Public structure | PortAliasMapper | A port mapper used to define the relation from an external port to an internal port

Interfaces

 | Interface | Description
Public interface | IHoneyPotPortDetection | Honey-Pot port detection data
Public interface | IHoneyPotPortListner | honey-pot listing service used to monitor connections on port
Public interface | IPortAccess | Interface IPortAccess
Public interface | IPortScannerDetectionService | Interface IPortScannerDetectionService is the service used to monitor attacks based on port scanners or other non HTTP/ HTTPS based TCP communication

Enumerations

 | Enumeration | Description
Public enumeration | DataOwner | Enum DataOwner
Public enumeration | IgnoreScope | the scope of how to ignore future request after having been detected
Public enumeration | PortStatus | Enum PortStatus provides a notation for port detection nature


DataOwner Enumeration

Enum DataOwner

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public enum DataOwner

Members

Member name | Description
None | No data owner is assigned
LookWhoisTalking | The look whois talking service owns the data
WAFFireWall | The Web Application Firewall owns the data

See Also

Walter.Net.HoneyPot Namespace


HoneyPotExtensionMethods Class

extension methods available for honey-pot classes

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static class HoneyPotExtensionMethods

See Also

HoneyPotExtensionMethods Members
Walter.Net.HoneyPot Namespace


HoneyPotExtensionMethods Members

The HoneyPotExtensionMethods type exposes the following members.

Methods

Name | Description
BitMask | Aggregate all port status into a combined value

See Also

HoneyPotExtensionMethods Class
Walter.Net.HoneyPot Namespace


HoneyPotExtensionMethods Methods

The HoneyPotExtensionMethods type exposes the following members.

Methods

Name | Description
BitMask | Aggregate all port status into a combined value

See Also

HoneyPotExtensionMethods Class
Walter.Net.HoneyPot Namespace


BitMask Method

HoneyPotExtensionMethods..::..BitMask Method

Aggregate all port status into a combined value

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static PortStatus BitMask(
    IEnumerable<PortStatus> source
)

Parameters

source
Type: IEnumerable<(Of <(<' PortStatus >)>)>
the source to aggregate

Return Value

See Also

HoneyPotExtensionMethods Class
Walter.Net.HoneyPot Namespace


HoneyPotServerListnerOption Class

Use the HoneyPotListnerOption class to configure the firewall to actively monitor port for hackers trying to attack the server hosting the application.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public class HoneyPotServerListnerOption

Remarks

For the service to detect being attacked you will need to

  1. Forward ports from the router to the server
  2. Allow your firewall to receive connections on these ports
  3. configure the firewall to monitor the port.

Say you like to detect users trying to manage the server using SSH and you don't use SSH (windows uses Remote desktop)

You then go to your edge router (the router sending the data from the internet to your web-server) and you configure port forwarding.

Ideal you would forward the SSH port, to a port not used on your server ensuring that there is no conflict on port usage.

Examples

the following example shows how to configure the firewall to monitor frequently attacked ports
C#
services.AddFireWall<MyFireWall>(
                   options =>
                 {
                     options.UseSession = false;
                     options.FireWallMode = Walter.Web.FireWall.FireWallProtectionModes.WebSiteWithApi;

                     options.ProtectedEndPointTypes.Add(typeof(BaseController));
                     options.TrackUsers = true;

                     options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
                     options.WebServices.UserEndpointJavaScript = new Uri(Walter.Web.FireWall.DefaultEndpoints.DefaultLinks.UserEndpointJavaScript, UriKind.Relative);
                     options.WebServices.IsUserApiUrl = new Uri(Walter.Web.FireWall.DefaultEndpoints.DefaultLinks.IsUserEndpoint, UriKind.Relative);
                     options.WebServices.RegisterLinksApiUrl = new Uri(Walter.Web.FireWall.DefaultEndpoints.DefaultLinks.SiteMapEndPoint, UriKind.Relative);
                     options.WebServices.BeaconApiUrl = new Uri(Walter.Web.FireWall.DefaultEndpoints.DefaultLinks.BeaconPoint, UriKind.Relative);
                     options.WebServices.CSPReportUrl = new Uri(Walter.Web.FireWall.DefaultEndpoints.DefaultLinks.CSPViolation, 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.Headers.AddDefaultSecurePolicy()
                                          .AddStrictTransportSecurityNoCache()
                                          .AddXssProtectionBlockAndReport()
                                          .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                                    , allowInline: true
                                                    , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

                 })
                  .UsePortScannerProtection(options => {
                      /*map the service ports to a local port on your computer*/
                      /*Redirect the requests to your computer and open the firewall for the redirected ports*/

                      options.SSH   = 4000; // map port 22 to port 4000 on your router
                      options.TSQL  = 4001; // map port 1433 to port 4001 on your router
                      options.Telnet= 4002; // map port 23 to port 4002 on your router
                      options.MYSQL = 4005; // map port 3306 to port 4005 on your router
                      options.DNS   = 4006; // map port 53 to port 4006 on your router

                      /*you can manually map port aliases in the range from 0 till 65535*/
                      options.AddOrUpdate(externalPort: 900, internalPort:14010, name:"Port 900");
                  })

See Also

HoneyPotServerListnerOption Members
Walter.Net.HoneyPot Namespace


HoneyPotServerListnerOption Members

The HoneyPotServerListnerOption type exposes the following members.

Methods

 | Name | Description
Public method | AddOrUpdate(PortAliasMapper) | Adds or updates the specified port configuration.
Public method | AddOrUpdate(Int32, Int32, Nullable<(Of <<'(String>)>>)) | Adds the or update as port alias that you can map to monitor.

Properties

 | Name | Description
Public property | Cashing | memory cashing options used by the system
Public property | ConnectionDetails | connection to use
Public property | DefaultReply | Gets or sets the default reply.
Public property | DNS | DNS - port 53
Public property | Echo | Ping - port 7
Public property | Finger | Finger - port 79
Public property | FTP | FTP - port 20
Public property | ICP | ICP - port 29
Public property | IgnoreAfterDetection | if set to true the service will ignore all further requests on all ports after being detected in a session
Public property | IMAP | IMAP - port 143
Public property | IPsec | IPSec - port 50
Public property | LDAP | LDAP - port 389
Public property | LogDataForAudit | If true it will record data from the client, set it to false if you are not interested into logging the data send by a malicious user or bot for audit and incident reporting
Public property | MaximumDataSizeToAccept | Gets the maximum data size to accept allowed are values is any size between 0 and 8000 characters.
Public property | MYSQL | MYSQL - port 3306
Public property | NetBIOS_CIFS | NetBIOS (CIFS) - port 137
Public property | NetBIOS_PNS | NetBIOS (Profile Name Service)- port 136
Public property | NetBIOS_RPC | NetBIOS (RPC) - port 135
Public property | NetBIOS_SMB | NetBIOS (SMB) - port 139
Public property | NNTP | NNTP - port 119
Public property | OpenEdge | OpenEdge -port 20931
Public property | Oracle | Oracle - Port 1521
Public property | PoolFrequency | Gets the pool frequency, value between 300 and 30,000 milliseconds are allowed.
Public property | POP3 | POP3 - port 110
Public property | RemoteDesktop | RemoteDesktop (RDP) - port 3389
Public property | RemoteHoneyPotClientName | the IP address or computer name that the honey-pot service is listening on
Public property | RemoteHoneyPotClientPort | TCP port used by LAN based communication between the Services that can communicate with the honey-pot service
Public property | SecureFTP | Secure FTP - port 989
Public property | SecureIMAP | Secure IMAP - port 993
Public property | SMTP | SMTP - port 25
Public property | SNMP | Simple Network Management Protocol (SNMP) - port 161
Public property | SSH | Secure Shell (SSH) - port 22
Public property | Sybase | Sybase database - port 2638
Public property | Telnet | Telnet - port 23
Public property | Tomcat | Port 8443 Apache Tomcat.
Public property | TracertAttackers | Gets or sets a value indicating whether to perform a trace rout on those that attack the system.
Public property | TSQL | MS SQL Server - port 1433
Public property | WindowsAdministrationCenter | WAC - windows administration center Port 6516.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


HoneyPotServerListnerOption Methods

Methods

 | Name | Description
Public method | AddOrUpdate(PortAliasMapper) | Adds or updates the specified port configuration.
Public method | AddOrUpdate(Int32, Int32, Nullable<(Of <<'(String>)>>)) | Adds the or update as port alias that you can map to monitor.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


AddOrUpdate Method

HoneyPotServerListnerOption..::..AddOrUpdate Method

Overload List

 | Name | Description
Public method | AddOrUpdate(PortAliasMapper) | Adds or updates the specified port configuration.
Public method | AddOrUpdate(Int32, Int32, Nullable<(Of <<'(String>)>>)) | Adds the or update as port alias that you can map to monitor.

See Also

HoneyPotServerListnerOption Class
HoneyPotServerListnerOption Members
Walter.Net.HoneyPot Namespace


AddOrUpdate Method (PortAliasMapper)

HoneyPotServerListnerOption..::..AddOrUpdate Method (PortAliasMapper)

Adds or updates the specified port configuration.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public void AddOrUpdate(
    PortAliasMapper entry
)

Parameters

entry
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The entry.

See Also

HoneyPotServerListnerOption Class
AddOrUpdate Overload
Walter.Net.HoneyPot Namespace


AddOrUpdate Method (Int32, Int32, Nullable(String))

HoneyPotServerListnerOption..::..AddOrUpdate Method (Int32, Int32, Nullable<(Of <(<'String>)>)>)

Adds the or update as port alias that you can map to monitor.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public void AddOrUpdate(
    int externalPort,
    int internalPort,
    Nullable<string> name
)

Parameters

externalPort
Type: Int32
The external port.
internalPort
Type: Int32
The internal port.
name
Type: Nullable <(Of <(<' String >)>)>
The name you like to appear in reporting.

Remarks

Only use this if no standard named port is available! Add an mapping alias for port monitoring, if no name is provide the template "Port - {Port} (mapped from DMZ router to port {monitoredPort}" will be used

See Also

HoneyPotServerListnerOption Class
AddOrUpdate Overload
Walter.Net.HoneyPot Namespace


HoneyPotServerListnerOption Properties

The HoneyPotServerListnerOption type exposes the following members.

Properties

 | Name | Description
Public property | Cashing | memory cashing options used by the system
Public property | ConnectionDetails | connection to use
Public property | DefaultReply | Gets or sets the default reply.
Public property | DNS | DNS - port 53
Public property | Echo | Ping - port 7
Public property | Finger | Finger - port 79
Public property | FTP | FTP - port 20
Public property | ICP | ICP - port 29
Public property | IgnoreAfterDetection | if set to true the service will ignore all further requests on all ports after being detected in a session
Public property | IMAP | IMAP - port 143
Public property | IPsec | IPSec - port 50
Public property | LDAP | LDAP - port 389
Public property | LogDataForAudit | If true it will record data from the client, set it to false if you are not interested into logging the data send by a malicious user or bot for audit and incident reporting
Public property | MaximumDataSizeToAccept | Gets the maximum data size to accept allowed are values is any size between 0 and 8000 characters.
Public property | MYSQL | MYSQL - port 3306
Public property | NetBIOS_CIFS | NetBIOS (CIFS) - port 137
Public property | NetBIOS_PNS | NetBIOS (Profile Name Service)- port 136
Public property | NetBIOS_RPC | NetBIOS (RPC) - port 135
Public property | NetBIOS_SMB | NetBIOS (SMB) - port 139
Public property | NNTP | NNTP - port 119
Public property | OpenEdge | OpenEdge -port 20931
Public property | Oracle | Oracle - Port 1521
Public property | PoolFrequency | Gets the pool frequency, value between 300 and 30,000 milliseconds are allowed.
Public property | POP3 | POP3 - port 110
Public property | RemoteDesktop | RemoteDesktop (RDP) - port 3389
Public property | RemoteHoneyPotClientName | the IP address or computer name that the honey-pot service is listening on
Public property | RemoteHoneyPotClientPort | TCP port used by LAN based communication between the Services that can communicate with the honey-pot service
Public property | SecureFTP | Secure FTP - port 989
Public property | SecureIMAP | Secure IMAP - port 993
Public property | SMTP | SMTP - port 25
Public property | SNMP | Simple Network Management Protocol (SNMP) - port 161
Public property | SSH | Secure Shell (SSH) - port 22
Public property | Sybase | Sybase database - port 2638
Public property | Telnet | Telnet - port 23
Public property | Tomcat | Port 8443 Apache Tomcat.
Public property | TracertAttackers | Gets or sets a value indicating whether to perform a trace rout on those that attack the system.
Public property | TSQL | MS SQL Server - port 1433
Public property | WindowsAdministrationCenter | WAC - windows administration center Port 6516.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Cashing Property

HoneyPotServerListnerOption..::..Cashing Property

memory cashing options used by the system

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<MemoryCacheEntryOptions> Cashing { get; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


ConnectionDetails Property

HoneyPotServerListnerOption..::..ConnectionDetails Property

connection to use

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<ConnectionDetails> ConnectionDetails { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


DefaultReply Property

HoneyPotServerListnerOption..::..DefaultReply Property

Gets or sets the default reply.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<string> DefaultReply { get; set; }

Field Value

The default reply.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


DNS Property

HoneyPotServerListnerOption..::..DNS Property

DNS - port 53

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> DNS { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Echo Property

HoneyPotServerListnerOption..::..Echo Property

Ping - port 7

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> Echo { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Finger Property

HoneyPotServerListnerOption..::..Finger Property

Finger - port 79

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> Finger { get; set; }

Remarks

Map the fort for capturing the Finger protocol

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


FTP Property

HoneyPotServerListnerOption..::..FTP Property

FTP - port 20

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> FTP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


ICP Property

HoneyPotServerListnerOption..::..ICP Property

ICP - port 29

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> ICP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


IgnoreAfterDetection Property

HoneyPotServerListnerOption..::..IgnoreAfterDetection Property

if set to true the service will ignore all further requests on all ports after being detected in a session

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public IgnoreScope IgnoreAfterDetection { get; set; }

Remarks

This will free server resources as you do not get loaded with attacks from the same IP address

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


IMAP Property

HoneyPotServerListnerOption..::..IMAP Property

IMAP - port 143

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> IMAP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


IPsec Property

HoneyPotServerListnerOption..::..IPsec Property

IPSec - port 50

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> IPsec { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


LDAP Property

HoneyPotServerListnerOption..::..LDAP Property

LDAP - port 389

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> LDAP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


LogDataForAudit Property

HoneyPotServerListnerOption..::..LogDataForAudit Property

If true it will record data from the client, set it to false if you are not interested into logging the data send by a malicious user or bot for audit and incident reporting

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool LogDataForAudit { get; set; }

Field Value

The log data for audit.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


MaximumDataSizeToAccept Property

HoneyPotServerListnerOption..::..MaximumDataSizeToAccept Property

Gets the maximum data size to accept allowed are values is any size between 0 and 8000 characters.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int MaximumDataSizeToAccept { get; set; }

Remarks

Implies that LogDataForAudit is set to true

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


MYSQL Property

HoneyPotServerListnerOption..::..MYSQL Property

MYSQL - port 3306

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> MYSQL { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


NetBIOS_CIFS Property

HoneyPotServerListnerOption..::..NetBIOS_CIFS Property

NetBIOS (CIFS) - port 137

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> NetBIOS_CIFS { get; set; }

Remarks

Common Internet File System protocol

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


NetBIOS_PNS Property

HoneyPotServerListnerOption..::..NetBIOS_PNS Property

NetBIOS (Profile Name Service)- port 136

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> NetBIOS_PNS { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


NetBIOS_RPC Property

HoneyPotServerListnerOption..::..NetBIOS_RPC Property

NetBIOS (RPC) - port 135

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> NetBIOS_RPC { get; set; }

Remarks

Distributed Computing Environment (DCE), a framework and toolkit for developing client/server applications. in Internet — Remote procedure call (RPC), a communication process that allows for executing a subroutine or procedure in another address space

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


NetBIOS_SMB Property

HoneyPotServerListnerOption..::..NetBIOS_SMB Property

NetBIOS (SMB) - port 139

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> NetBIOS_SMB { get; set; }

Remarks

File share

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


NNTP Property

HoneyPotServerListnerOption..::..NNTP Property

NNTP - port 119

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> NNTP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


OpenEdge Property

HoneyPotServerListnerOption..::..OpenEdge Property

OpenEdge -port 20931

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> OpenEdge { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Oracle Property

HoneyPotServerListnerOption..::..Oracle Property

Oracle - Port 1521

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> Oracle { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


PoolFrequency Property

HoneyPotServerListnerOption..::..PoolFrequency Property

Gets the pool frequency, value between 300 and 30,000 milliseconds are allowed.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int PoolFrequency { get; set; }

Field Value

The pool frequency.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


POP3 Property

HoneyPotServerListnerOption..::..POP3 Property

POP3 - port 110

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> POP3 { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


RemoteDesktop Property

HoneyPotServerListnerOption..::..RemoteDesktop Property

RemoteDesktop (RDP) - port 3389

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> RemoteDesktop { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


RemoteHoneyPotClientName Property

HoneyPotServerListnerOption..::..RemoteHoneyPotClientName Property

the IP address or computer name that the honey-pot service is listening on

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public string RemoteHoneyPotClientName { get; set; }

Remarks

You need to enable the firewall to communicate with the RemoteHoneyPotClientPort port for a connection to be enabled

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


RemoteHoneyPotClientPort Property

HoneyPotServerListnerOption..::..RemoteHoneyPotClientPort Property

TCP port used by LAN based communication between the Services that can communicate with the honey-pot service

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public short RemoteHoneyPotClientPort { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


SecureFTP Property

HoneyPotServerListnerOption..::..SecureFTP Property

Secure FTP - port 989

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> SecureFTP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


SecureIMAP Property

HoneyPotServerListnerOption..::..SecureIMAP Property

Secure IMAP - port 993

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> SecureIMAP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


SMTP Property

HoneyPotServerListnerOption..::..SMTP Property

SMTP - port 25

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> SMTP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


SNMP Property

HoneyPotServerListnerOption..::..SNMP Property

Simple Network Management Protocol (SNMP) - port 161

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> SNMP { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


SSH Property

HoneyPotServerListnerOption..::..SSH Property

Secure Shell (SSH) - port 22

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> SSH { get; set; }

Remarks

Used for sending and executing file remote

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Sybase Property

HoneyPotServerListnerOption..::..Sybase Property

Sybase database - port 2638

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> Sybase { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Telnet Property

HoneyPotServerListnerOption..::..Telnet Property

Telnet - port 23

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> Telnet { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


Tomcat Property

HoneyPotServerListnerOption..::..Tomcat Property

Port 8443 Apache Tomcat.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> Tomcat { get; set; }

Field Value

The tomcat.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


TracertAttackers Property

HoneyPotServerListnerOption..::..TracertAttackers Property

Gets or sets a value indicating whether to perform a trace rout on those that attack the system.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool TracertAttackers { get; set; }

Field Value

true if you like to perform a trace-rout, false otherwise, false.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


TSQL Property

HoneyPotServerListnerOption..::..TSQL Property

MS SQL Server - port 1433

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> TSQL { get; set; }

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


WindowsAdministrationCenter Property

HoneyPotServerListnerOption..::..WindowsAdministrationCenter Property

WAC - windows administration center Port 6516.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<int> WindowsAdministrationCenter { get; set; }

Field Value

The windows administration center.

See Also

HoneyPotServerListnerOption Class
Walter.Net.HoneyPot Namespace


IgnoreScope Enumeration

the scope of how to ignore future request after having been detected

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public enum IgnoreScope

Members

Member name | Description
IPAddressAndPort | The IP address and port
IPAddress | The IP address
DoNotIgnore | The don't ignore

Remarks

default is to ignore the IPAddress and port

See Also

Walter.Net.HoneyPot Namespace


IHoneyPotPortDetection Interface

Honey-Pot port detection data

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public interface IHoneyPotPortDetection

Remarks

You can enable honey-pot port detection by configuring the firewall to use the service

See Also

IHoneyPotPortDetection Members
Walter.Net.HoneyPot Namespace


IHoneyPotPortDetection Members

The IHoneyPotPortDetection type exposes the following members.

Methods

 | Name | Description
Public method | Exploit | Get the commands used in the exploit if one was send
Public method | GetWhois | Gets the WHOIS of the requesting client.

Properties

 | Name | Description
Public property | Abstract | Get a small summery of the penetration detected
Public property | AddressFamily | The AddressFamily used.
Public property | CloseConnection | Gets a value indicating whether the connection was closed.
Public property | CommunicationLog | contains the data that was send by the remote phishing request
Public property | Communications | number of times we have received data from the IP and Port
Public property | DataOwner | The data owner that owns the entry
Public property | DnsEntry | Gets the DNS entry at the time of the recording.
Public property | FirstDetectedOn | first detection made
Public property | GuardResponse | Gets the guard response type send to the user.
Public property | LastDetection | Last time the port was accessed by the IP address
Public property | LocalAddress | The local IP address that was connected to in the detection.
Public property | PayloadInfo | Gets the payload information if a offensive response.
Public property | PortMapper | The port mapper configuration
Public property | ProtocolType | protocols that the was used when sending the data;
Public property | RawStream | A base 64 string containing the data that was send to the honeypot
Public property | RemoteAddress | Represents a network endpoint as an IP address and a port number that triggered the detection.
Public property | RemoteCIDR | Gets the remote cidr.
Public property | RemotePort | The remote port as communicated by the socket connection
Public property | ReportingUri | Uniform Resource identified providing a reporting endpoint for the resource being monitored
Public property | SocketType | type of socket that was used
Public property | Triggered | Indicates what type of attempt was detected
Public property | Ttl | The hackers Time To Live (TTL) value that was used
Public property | UniqueIdentifier | Gets the unique identifier.
Public property | UserID | Gets the user ID mapped to the incident.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


IHoneyPotPortDetection Methods

The IHoneyPotPortDetection type exposes the following members.

Methods

 | Name | Description
Public method | Exploit | Get the commands used in the exploit if one was send
Public method | GetWhois | Gets the WHOIS of the requesting client.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


Exploit Method

IHoneyPotPortDetection..::..Exploit Method

Get the commands used in the exploit if one was send

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
string Exploit()

Return Value

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


GetWhois Method

IHoneyPotPortDetection..::..GetWhois Method

Gets the WHOIS of the requesting client.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IWhois GetWhois()

Return Value

IWhois.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


IHoneyPotPortDetection Properties

The IHoneyPotPortDetection type exposes the following members.

Properties

 | Name | Description
Public property | Abstract | Get a small summery of the penetration detected
Public property | AddressFamily | The AddressFamily used.
Public property | CloseConnection | Gets a value indicating whether the connection was closed.
Public property | CommunicationLog | contains the data that was send by the remote phishing request
Public property | Communications | number of times we have received data from the IP and Port
Public property | DataOwner | The data owner that owns the entry
Public property | DnsEntry | Gets the DNS entry at the time of the recording.
Public property | FirstDetectedOn | first detection made
Public property | GuardResponse | Gets the guard response type send to the user.
Public property | LastDetection | Last time the port was accessed by the IP address
Public property | LocalAddress | The local IP address that was connected to in the detection.
Public property | PayloadInfo | Gets the payload information if a offensive response.
Public property | PortMapper | The port mapper configuration
Public property | ProtocolType | protocols that the was used when sending the data;
Public property | RawStream | A base 64 string containing the data that was send to the honeypot
Public property | RemoteAddress | Represents a network endpoint as an IP address and a port number that triggered the detection.
Public property | RemoteCIDR | Gets the remote cidr.
Public property | RemotePort | The remote port as communicated by the socket connection
Public property | ReportingUri | Uniform Resource identified providing a reporting endpoint for the resource being monitored
Public property | SocketType | type of socket that was used
Public property | Triggered | Indicates what type of attempt was detected
Public property | Ttl | The hackers Time To Live (TTL) value that was used
Public property | UniqueIdentifier | Gets the unique identifier.
Public property | UserID | Gets the user ID mapped to the incident.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


Abstract Property

IHoneyPotPortDetection..::..Abstract Property

Get a small summery of the penetration detected

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
string Abstract { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


AddressFamily Property

IHoneyPotPortDetection..::..AddressFamily Property

The AddressFamily used.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
AddressFamily AddressFamily { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


CloseConnection Property

IHoneyPotPortDetection..::..CloseConnection Property

Gets a value indicating whether the connection was closed.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool CloseConnection { get; }

Field Value

true if [close connection]; otherwise, false.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


CommunicationLog Property

IHoneyPotPortDetection..::..CommunicationLog Property

contains the data that was send by the remote phishing request

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
string CommunicationLog { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


Communications Property

IHoneyPotPortDetection..::..Communications Property

number of times we have received data from the IP and Port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
int Communications { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


DataOwner Property

IHoneyPotPortDetection..::..DataOwner Property

The data owner that owns the entry

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
DataOwner DataOwner { get; set; }

Remarks

The UserID that the user is assigned to

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


DnsEntry Property

IHoneyPotPortDetection..::..DnsEntry Property

Gets the DNS entry at the time of the recording.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<DnsEntry> DnsEntry { get; }

Field Value

The DNS entry.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


FirstDetectedOn Property

IHoneyPotPortDetection..::..FirstDetectedOn Property

first detection made

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
DateTime FirstDetectedOn { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


GuardResponse Property

IHoneyPotPortDetection..::..GuardResponse Property

Gets the guard response type send to the user.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
GuardResponse GuardResponse { get; }

Field Value

The guard response.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


LastDetection Property

IHoneyPotPortDetection..::..LastDetection Property

Last time the port was accessed by the IP address

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
DateTime LastDetection { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


LocalAddress Property

IHoneyPotPortDetection..::..LocalAddress Property

The local IP address that was connected to in the detection.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IPAddress LocalAddress { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


PayloadInfo Property

IHoneyPotPortDetection..::..PayloadInfo Property

Gets the payload information if a offensive response.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<string> PayloadInfo { get; }

Field Value

The payload information.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


PortMapper Property

IHoneyPotPortDetection..::..PortMapper Property

The port mapper configuration

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
PortAliasMapper PortMapper { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


ProtocolType Property

IHoneyPotPortDetection..::..ProtocolType Property

protocols that the was used when sending the data;

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
ProtocolType ProtocolType { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


RawStream Property

IHoneyPotPortDetection..::..RawStream Property

A base 64 string containing the data that was send to the honeypot

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
string RawStream { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


RemoteAddress Property

IHoneyPotPortDetection..::..RemoteAddress Property

Represents a network endpoint as an IP address and a port number that triggered the detection.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IPAddress RemoteAddress { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


RemoteCIDR Property

IHoneyPotPortDetection..::..RemoteCIDR Property

Gets the remote cidr.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
long RemoteCIDR { get; }

Field Value

The remote cidr.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


RemotePort Property

IHoneyPotPortDetection..::..RemotePort Property

The remote port as communicated by the socket connection

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
int RemotePort { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


ReportingUri Property

IHoneyPotPortDetection..::..ReportingUri Property

Uniform Resource identified providing a reporting endpoint for the resource being monitored

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Uri ReportingUri { get; }

Remarks

The URI is not pointing to a resource or application unless the endpoint contains a look WHOIS talking service that will respond to the query

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


SocketType Property

IHoneyPotPortDetection..::..SocketType Property

type of socket that was used

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
SocketType SocketType { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


Triggered Property

IHoneyPotPortDetection..::..Triggered Property

Indicates what type of attempt was detected

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
FirewallBlockReasons Triggered { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


Ttl Property

IHoneyPotPortDetection..::..Ttl Property

The hackers Time To Live (TTL) value that was used

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
short Ttl { get; }

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


UniqueIdentifier Property

IHoneyPotPortDetection..::..UniqueIdentifier Property

Gets the unique identifier.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Guid UniqueIdentifier { get; }

Field Value

The unique identifier for the incident.

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace


UserID Property

IHoneyPotPortDetection..::..UserID Property

Gets the user ID mapped to the incident.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<long> UserID { get; set; }

Field Value

The user.

Remarks

This user can be a FireWallUserId or a LookWhoisTalking user depending the service owning the detection

See Also

IHoneyPotPortDetection Interface
Walter.Net.HoneyPot Namespace
Walter.Net.HoneyPot..::..DataOwner


IHoneyPotPortListner Interface

honey-pot listing service used to monitor connections on port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public interface IHoneyPotPortListner

See Also

IHoneyPotPortListner Members
Walter.Net.HoneyPot Namespace


IHoneyPotPortListner Members

The IHoneyPotPortListner type exposes the following members.

Methods

 | Name | Description
Public method | Dispose | free the memory and stop the services
Public method | Listen | start listening
Public method | Shutdown | stop listening

Properties

 | Name | Description
Public property | Detections | Detections made on the port
Public property | Exception | Will be set if the service had an exception
Public property | LastDetection | last detection made if any
Public property | Listning | True if the service is listening
Public property | PortAlias | port mapper used to define the relation from an external port to an internal port

Events

 | Name | Description
Public event | OnDataReceived | Triggered when data is received and allows you to generate a response when assigning a value to the Answer property of the Answer argument

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


IHoneyPotPortListner Methods

The IHoneyPotPortListner type exposes the following members.

Methods

 | Name | Description
Public method | Dispose | free the memory and stop the services
Public method | Listen | start listening
Public method | Shutdown | stop listening

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


Dispose Method

IHoneyPotPortListner..::..Dispose Method

free the memory and stop the services

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
void Dispose()

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


Listen Method

IHoneyPotPortListner..::..Listen Method

start listening

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
void Listen()

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


Shutdown Method

IHoneyPotPortListner..::..Shutdown Method

stop listening

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
void Shutdown()

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


IHoneyPotPortListner Properties

The IHoneyPotPortListner type exposes the following members.

Properties

 | Name | Description
Public property | Detections | Detections made on the port
Public property | Exception | Will be set if the service had an exception
Public property | LastDetection | last detection made if any
Public property | Listning | True if the service is listening
Public property | PortAlias | port mapper used to define the relation from an external port to an internal port

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


Detections Property

IHoneyPotPortListner..::..Detections Property

Detections made on the port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
long Detections { get; }

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


Exception Property

IHoneyPotPortListner..::..Exception Property

Will be set if the service had an exception

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<Exception> Exception { get; }

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


LastDetection Property

IHoneyPotPortListner..::..LastDetection Property

last detection made if any

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<PortAccess> LastDetection { get; }

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


Listning Property

IHoneyPotPortListner..::..Listning Property

True if the service is listening

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool Listning { get; }

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


PortAlias Property

IHoneyPotPortListner..::..PortAlias Property

port mapper used to define the relation from an external port to an internal port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
PortAliasMapper PortAlias { get; }

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


IHoneyPotPortListner Events

The IHoneyPotPortListner type exposes the following members.

Events

 | Name | Description
Public event | OnDataReceived | Triggered when data is received and allows you to generate a response when assigning a value to the Answer property of the Answer argument

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace


OnDataReceived Event

IHoneyPotPortListner..::..OnDataReceived Event

Triggered when data is received and allows you to generate a response when assigning a value to the Answer property of the Answer argument

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
event Nullable<EventHandler<HoneyPotDetectionEventArgs>> OnDataReceived

Remarks

the argument will log the communications in HoneyPotDetectionEventArgs.Data property of the event. this contains the data send and received as well timestamped and in clear text

See Also

IHoneyPotPortListner Interface
Walter.Net.HoneyPot Namespace
HoneyPotDetectionEventArgs..::..Data
HoneyPotDetectionEventArgs..::..Answer


IPortAccess Interface

Interface IPortAccess

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public interface IPortAccess

See Also

IPortAccess Members
Walter.Net.HoneyPot Namespace


IPortAccess Members

The IPortAccess type exposes the following members.

Properties

 | Name | Description
Public property | AccessGranted | Gets the access granted.
Public property | AccessRefused | Gets the access refused.
Public property | Attempts | Gets the attempts.
Public property | CIDR | Gets the cidr.
Public property | FirstRequestUtc | Gets the first request UTC.
Public property | LastRequestUtc | Gets the last request UTC.
Public property | LocalPort | Gets the local port.
Public property | Status | Gets the status.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


IPortAccess Properties

The IPortAccess type exposes the following members.

Properties

 | Name | Description
Public property | AccessGranted | Gets the access granted.
Public property | AccessRefused | Gets the access refused.
Public property | Attempts | Gets the attempts.
Public property | CIDR | Gets the cidr.
Public property | FirstRequestUtc | Gets the first request UTC.
Public property | LastRequestUtc | Gets the last request UTC.
Public property | LocalPort | Gets the local port.
Public property | Status | Gets the status.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


AccessGranted Property

IPortAccess..::..AccessGranted Property

Gets the access granted.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
long AccessGranted { get; }

Field Value

The access granted.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


AccessRefused Property

IPortAccess..::..AccessRefused Property

Gets the access refused.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
long AccessRefused { get; }

Field Value

The access refused.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


Attempts Property

IPortAccess..::..Attempts Property

Gets the attempts.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
long Attempts { get; }

Field Value

The attempts.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


CIDR Property

IPortAccess..::..CIDR Property

Gets the cidr.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
long CIDR { get; }

Field Value

The cidr.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


FirstRequestUtc Property

IPortAccess..::..FirstRequestUtc Property

Gets the first request UTC.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
DateTime FirstRequestUtc { get; }

Field Value

The first request UTC.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


LastRequestUtc Property

IPortAccess..::..LastRequestUtc Property

Gets the last request UTC.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
DateTime LastRequestUtc { get; }

Field Value

The last request UTC.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


LocalPort Property

IPortAccess..::..LocalPort Property

Gets the local port.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
int LocalPort { get; }

Field Value

The local port.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


Status Property

IPortAccess..::..Status Property

Gets the status.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
PortStatus Status { get; }

Field Value

The status.

See Also

IPortAccess Interface
Walter.Net.HoneyPot Namespace


IPortScannerDetectionService Interface

Interface IPortScannerDetectionService is the service used to monitor attacks based on port scanners or other non HTTP/ HTTPS based TCP communication

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public interface IPortScannerDetectionService

Remarks

You configure the Walter.Web.FireWall or Walter.Net.LookWhoisTalkingService to configure and use the service using the UsePortScannerProtection extension method on the firewall service registration

See Also

IPortScannerDetectionService Members
Walter.Net.HoneyPot Namespace


IPortScannerDetectionService Members

The IPortScannerDetectionService type exposes the following members.

Methods

 | Name | Description
Public method | HasDetected(IPAddress, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Determines whether the specified address has detected.
Public method | HasDetected(PortAliasMapper, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Determines whether the specified alias has detected.
Public method | IsAttackingPorts | test if a CIDR is currently been found to be attacking ports in the current firewall session
Public method | Snapshot | Snapshots this instance.
Public method | Start | Starts this instance.
Public method | Stop | Stops this instance.
Public method | WasAttackingPorts | test if a CIDR is currently been found to be attacking ports

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | DataSource | data source used with the detection storage
Public property | Item | Gets the IHoneyPotPortListner at the specified index.
Public property | Last | Gets the last.
Public property | Length | Gets the length.

Events

 | Name | Description
Public event | OnPortAccessDetected | Honey-Pot detection event handle allowing you to listen to port-related incidents

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


IPortScannerDetectionService Methods

The IPortScannerDetectionService type exposes the following members.

Methods

 | Name | Description
Public method | HasDetected(IPAddress, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Determines whether the specified address has detected.
Public method | HasDetected(PortAliasMapper, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Determines whether the specified alias has detected.
Public method | IsAttackingPorts | test if a CIDR is currently been found to be attacking ports in the current firewall session
Public method | Snapshot | Snapshots this instance.
Public method | Start | Starts this instance.
Public method | Stop | Stops this instance.
Public method | WasAttackingPorts | test if a CIDR is currently been found to be attacking ports

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


HasDetected Method

IPortScannerDetectionService..::..HasDetected Method

Overload List

 | Name | Description
Public method | HasDetected(IPAddress, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Determines whether the specified address has detected.
Public method | HasDetected(PortAliasMapper, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Determines whether the specified alias has detected.

See Also

IPortScannerDetectionService Interface
IPortScannerDetectionService Members
Walter.Net.HoneyPot Namespace


HasDetected Method (IPAddress, Nullable(IReadOnlyList(IHoneyPotPortDetection)))

IPortScannerDetectionService..::..HasDetected Method (IPAddress, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IHoneyPotPortDetection>)>)>>)>)>%)

Determines whether the specified address has detected.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool HasDetected(
    IPAddress address,
    out Nullable<IReadOnlyList<IHoneyPotPortDetection>> incidents
)

Parameters

address
Type: IPAddress
The address.
incidents
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IHoneyPotPortDetection >)>)>>)>)>%
The incidents.

Return Value

true if the specified address has detected; otherwise, false.

See Also

IPortScannerDetectionService Interface
HasDetected Overload
Walter.Net.HoneyPot Namespace


HasDetected Method (PortAliasMapper, Nullable(IReadOnlyList(IHoneyPotPortDetection)))

IPortScannerDetectionService..::..HasDetected Method (PortAliasMapper, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IHoneyPotPortDetection>)>)>>)>)>%)

Determines whether the specified alias has detected.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool HasDetected(
    PortAliasMapper alias,
    out Nullable<IReadOnlyList<IHoneyPotPortDetection>> incidents
)

Parameters

alias
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The alias.
incidents
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IHoneyPotPortDetection >)>)>>)>)>%
The incidents.

Return Value

true if the specified alias has detected; otherwise, false.

See Also

IPortScannerDetectionService Interface
HasDetected Overload
Walter.Net.HoneyPot Namespace


IsAttackingPorts Method

IPortScannerDetectionService..::..IsAttackingPorts Method

test if a CIDR is currently been found to be attacking ports in the current firewall session

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool IsAttackingPorts(
    long cidr,
    out Nullable<IReadOnlyList<int>> ports
)

Parameters

cidr
Type: Int64
ports
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' Int32 >)>)>>)>)>%
the ports that have been triggered

Return Value

true if ports have been found

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Snapshot Method

IPortScannerDetectionService..::..Snapshot Method

Snapshots this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<IHoneyPotPortDetection> Snapshot()

Return Value

IReadOnlyList<IHoneyPotPortDetection>.

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Start Method

IPortScannerDetectionService..::..Start Method

Starts this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
void Start()

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Stop Method

IPortScannerDetectionService..::..Stop Method

Stops this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
void Stop()

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


WasAttackingPorts Method

IPortScannerDetectionService..::..WasAttackingPorts Method

test if a CIDR is currently been found to be attacking ports

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool WasAttackingPorts(
    long cidr,
    TimeSpan timeSpan,
    out Nullable<IReadOnlyList<int>> ports
)

Parameters

cidr
Type: Int64
timeSpan
Type: TimeSpan
the timespan to measure
ports
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' Int32 >)>)>>)>)>%
the ports that have been triggered

Return Value

true if ports have been found

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


IPortScannerDetectionService Properties

The IPortScannerDetectionService type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | DataSource | data source used with the detection storage
Public property | Item | Gets the IHoneyPotPortListner at the specified index.
Public property | Last | Gets the last.
Public property | Length | Gets the length.

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Count Property

IPortScannerDetectionService..::..Count Property

Gets the count.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
int Count { get; }

Field Value

The count.

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


DataSource Property

IPortScannerDetectionService..::..DataSource Property

data source used with the detection storage

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IHoneyPotDataSource DataSource { get; }

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Item Property

IPortScannerDetectionService..::..Item Property

Gets the IHoneyPotPortListner at the specified index.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IHoneyPotPortListner this[
    int index
] { get; }

Parameters

index
Type: Int32
The index.

Return Value

IHoneyPotPortListner.

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Last Property

IPortScannerDetectionService..::..Last Property

Gets the last.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<IHoneyPotPortListner> Last { get; }

Field Value

The last.

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


Length Property

IPortScannerDetectionService..::..Length Property

Gets the length.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
int Length { get; }

Field Value

The length.

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


IPortScannerDetectionService Events

The IPortScannerDetectionService type exposes the following members.

Events

 | Name | Description
Public event | OnPortAccessDetected | Honey-Pot detection event handle allowing you to listen to port-related incidents

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


OnPortAccessDetected Event

IPortScannerDetectionService..::..OnPortAccessDetected Event

Honey-Pot detection event handle allowing you to listen to port-related incidents

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
event Nullable<EventHandler<HoneyPotDetectionEventArgs>> OnPortAccessDetected

See Also

IPortScannerDetectionService Interface
Walter.Net.HoneyPot Namespace


PortAccess Class

PortAccess is a data structure that contains port and indication of how and how often some one access it as well if the access was allowed.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public class PortAccess : IPortAccess

See Also

PortAccess Members
Walter.Net.HoneyPot Namespace


PortAccess Members

The PortAccess type exposes the following members.

Methods

 | Name | Description
 | Created(IPAddress, PortAliasMapper) | Generate or get a Port access object for the session
 | Created(IPAddress, Int32) | Generate or get a Port access object for the session
 | Created(Int64, PortAliasMapper) | Creates the specified port access object for the cidr and mapper.
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(PortAccess>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | Increment | increment the attempts for access
Public method | ToIpAddress | Get the IP address for this entry
Public method | ToString | string representation of port access
Public method | Update | Updates the PortAccess with the specified dates.

Properties

 | Name | Description
Public property | AccessGranted | Gets the count of how often access was granted.
Public property | AccessRefused | Gets the count of how often the access refused.
Public property | Attempts | Gets the attempts made by this port and this IP address.
Public property | CIDR | Gets the IP's address in CIDR format (Classless Inter-Domain Routing)
Public property | FirstRequestUtc | Gets the first request UTC.
Public property | LastRequestUtc | Gets the last request UTC.
Public property | LocalPort | Gets or sets the local port.
Public property | Port | Gets or sets the port.
Public property | Status | the status of the port used
Public property | UniqueIdentifier | Technical key that can be used to identify the GUID on

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


PortAccess Methods

The PortAccess type exposes the following members.

Methods

 | Name | Description
 | Created(IPAddress, PortAliasMapper) | Generate or get a Port access object for the session
 | Created(IPAddress, Int32) | Generate or get a Port access object for the session
 | Created(Int64, PortAliasMapper) | Creates the specified port access object for the cidr and mapper.
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(PortAccess>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | Increment | increment the attempts for access
Public method | ToIpAddress | Get the IP address for this entry
Public method | ToString | string representation of port access
Public method | Update | Updates the PortAccess with the specified dates.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


Created Method

PortAccess..::..Created Method

Overload List

Name | Description
Created(IPAddress, PortAliasMapper) | Generate or get a Port access object for the session
Created(IPAddress, Int32) | Generate or get a Port access object for the session
Created(Int64, PortAliasMapper) | Creates the specified port access object for the cidr and mapper.

See Also

PortAccess Class
PortAccess Members
Walter.Net.HoneyPot Namespace


Created Method (IPAddress, PortAliasMapper)

PortAccess..::..Created Method (IPAddress, PortAliasMapper)

Generate or get a Port access object for the session

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static PortAccess Created(
    IPAddress address,
    PortAliasMapper mapper
)

Parameters

address
Type: IPAddress
The IP address
mapper
Type: Walter.Net.HoneyPot..::..PortAliasMapper
the port mapper used

See Also

PortAccess Class
Created Overload
Walter.Net.HoneyPot Namespace


Created Method (IPAddress, Int32)

PortAccess..::..Created Method (IPAddress, Int32)

Generate or get a Port access object for the session

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static PortAccess Created(
    IPAddress address,
    int port
)

Parameters

address
Type: IPAddress
The IP address
port
Type: Int32
the port it communicates on

See Also

PortAccess Class
Created Overload
Walter.Net.HoneyPot Namespace


Created Method (Int64, PortAliasMapper)

PortAccess..::..Created Method (Int64, PortAliasMapper)

Creates the specified port access object for the cidr and mapper.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static PortAccess Created(
    long cidr,
    PortAliasMapper alias
)

Parameters

cidr
Type: Int64
The cidr.
alias
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The alias.

Return Value

Walter.Net.HoneyPot.PortAccess.

Remarks

This is a factory pattern and maintains state within the storage

See Also

PortAccess Class
Created Overload
Walter.Net.HoneyPot Namespace


Equals Method

PortAccess..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(PortAccess>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

PortAccess Class
PortAccess Members
Walter.Net.HoneyPot Namespace


Equals Method (Nullable(Object))

PortAccess..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

PortAccess Class
Equals Overload
Walter.Net.HoneyPot Namespace


Equals Method (Nullable(PortAccess))

PortAccess..::..Equals Method (Nullable<(Of <(<'PortAccess>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool Equals(
    Nullable<PortAccess> other
)

Parameters

other
Type: Nullable <(Of <(<' PortAccess >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

PortAccess Class
Equals Overload
Walter.Net.HoneyPot Namespace


GetHashCode Method

PortAccess..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


Increment Method

PortAccess..::..Increment Method

increment the attempts for access

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public void Increment(
    HttpStatusCode statusCode
)

Parameters

statusCode
Type: HttpStatusCode

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


ToIpAddress Method

PortAccess..::..ToIpAddress Method

Get the IP address for this entry

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public IPAddress ToIpAddress()

Return Value

IP4 or IPv6 address

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


ToString Method

PortAccess..::..ToString Method

string representation of port access

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public string ToString()

Return Value

string.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


Update Method

PortAccess..::..Update Method

Updates the PortAccess with the specified dates.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public void Update(
    DateTime firstRequestUtc,
    DateTime lastRequestUtc
)

Parameters

firstRequestUtc
Type: DateTime
The first request UTC.
lastRequestUtc
Type: DateTime
The last request UTC.

Remarks

Will only update if the range changed

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


PortAccess Properties

The PortAccess type exposes the following members.

Properties

 | Name | Description
Public property | AccessGranted | Gets the count of how often access was granted.
Public property | AccessRefused | Gets the count of how often the access refused.
Public property | Attempts | Gets the attempts made by this port and this IP address.
Public property | CIDR | Gets the IP's address in CIDR format (Classless Inter-Domain Routing)
Public property | FirstRequestUtc | Gets the first request UTC.
Public property | LastRequestUtc | Gets the last request UTC.
Public property | LocalPort | Gets or sets the local port.
Public property | Port | Gets or sets the port.
Public property | Status | the status of the port used
Public property | UniqueIdentifier | Technical key that can be used to identify the GUID on

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


AccessGranted Property

PortAccess..::..AccessGranted Property

Gets the count of how often access was granted.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public long AccessGranted { get; set; }

Field Value

The access granted count.

Remarks

Count is based on port and IP address

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


AccessRefused Property

PortAccess..::..AccessRefused Property

Gets the count of how often the access refused.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public long AccessRefused { get; set; }

Field Value

The access refused count.

Remarks

Count is based on port and IP address

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


Attempts Property

PortAccess..::..Attempts Property

Gets the attempts made by this port and this IP address.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public long Attempts { get; set; }

Field Value

The attempts.

Remarks

Count is based on port and IP address and counts port scanner detections as well as HPPT based port attacks

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


CIDR Property

PortAccess..::..CIDR Property

Gets the IP's address in CIDR format (Classless Inter-Domain Routing)

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public long CIDR { get; }

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


FirstRequestUtc Property

PortAccess..::..FirstRequestUtc Property

Gets the first request UTC.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public DateTime FirstRequestUtc { get; set; }

Field Value

The first request UTC.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


LastRequestUtc Property

PortAccess..::..LastRequestUtc Property

Gets the last request UTC.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public DateTime LastRequestUtc { get; set; }

Field Value

The last request UTC.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


LocalPort Property

PortAccess..::..LocalPort Property

Gets or sets the local port.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int LocalPort { get; }

Field Value

The local port.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


Port Property

PortAccess..::..Port Property

Gets or sets the port.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int Port { get; }

Field Value

The service port.

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


Status Property

PortAccess..::..Status Property

the status of the port used

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public PortStatus Status { get; set; }

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


UniqueIdentifier Property

PortAccess..::..UniqueIdentifier Property

Technical key that can be used to identify the GUID on

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Guid UniqueIdentifier { get; }

See Also

PortAccess Class
Walter.Net.HoneyPot Namespace


PortAccessExtension Class

Helper class generating Port access objects

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static class PortAccessExtension

See Also

PortAccessExtension Members
Walter.Net.HoneyPot Namespace


PortAccessExtension Members

The PortAccessExtension type exposes the following members.

Methods

Name | Description
GetPortAccess | Get session port access data object for IP and Port

See Also

PortAccessExtension Class
Walter.Net.HoneyPot Namespace


PortAccessExtension Methods

The PortAccessExtension type exposes the following members.

Methods

Name | Description
GetPortAccess | Get session port access data object for IP and Port

See Also

PortAccessExtension Class
Walter.Net.HoneyPot Namespace


GetPortAccess Method

PortAccessExtension..::..GetPortAccess Method

Get session port access data object for IP and Port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static PortAccess GetPortAccess(
    IHoneyPotPortDetection honeyPotPortDetection
)

Parameters

honeyPotPortDetection
Type: Walter.Net.HoneyPot..::..IHoneyPotPortDetection
the HoneyPotPortDetection entry used to get the object

Return Value

PortAccess object for session

See Also

PortAccessExtension Class
Walter.Net.HoneyPot Namespace


PortAliasMapper Structure

A port mapper used to define the relation from an external port to an internal port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public struct PortAliasMapper

Remarks

The mapper allows you to configure and monitor ports send to the server hosting the firewall using port forwarding in the router.

For this to work you have to enable communication on the windows firewall on the ports defined in the monitored port

See Also

PortAliasMapper Members
Walter.Net.HoneyPot Namespace


PortAliasMapper Members

The PortAliasMapper type exposes the following members.

Constructors

 | Name | Description
Public method | PortAliasMapper(Int32, Int32, Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the PortAliasMapper struct.
Public method | PortAliasMapper(TcpPortAlias, Int32) | Initializes a new instance of the PortAliasMapper struct and maps a known port to a external port.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(PortAliasMapper) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | Description | Gets the description used in reporting.
Public property | MonitoredPort | Gets the monitored port (alias/forwarded port that the use assumed he connected to).
Public property | NamedAlias | Gets the strong typed TCP port alias type.
Public property | Port | Gets the port that the attacker assumed he connected to.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


PortAliasMapper Constructor

Overload List

 | Name | Description
Public method | PortAliasMapper(Int32, Int32, Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the PortAliasMapper struct.
Public method | PortAliasMapper(TcpPortAlias, Int32) | Initializes a new instance of the PortAliasMapper struct and maps a known port to a external port.

See Also

PortAliasMapper Structure
PortAliasMapper Members
Walter.Net.HoneyPot Namespace


PortAliasMapper Constructor (Int32, Int32, Nullable(String))

PortAliasMapper Constructor (Int32, Int32, Nullable<(Of <(<'String>)>)>)

Initializes a new instance of the PortAliasMapper struct.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public PortAliasMapper(
    int monitoredPort,
    int port,
    Nullable<string> description
)

Parameters

monitoredPort
Type: Int32
The monitored port.
port
Type: Int32
The port.
description
Type: Nullable <(Of <(<' String >)>)>
The description.

Exceptions

Exception | Condition
[ArgumentOutOfRangeException] | monitoredPort
[ArgumentOutOfRangeException] | port
[ArgumentOutOfRangeException] | monitoredPort

See Also

PortAliasMapper Structure
PortAliasMapper Overload
Walter.Net.HoneyPot Namespace


PortAliasMapper Constructor (TcpPortAlias, Int32)

Initializes a new instance of the PortAliasMapper struct and maps a known port to a external port.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public PortAliasMapper(
    TcpPortAlias alias,
    int monitoredPort
)

Parameters

alias
Type: Walter.BOM..::..TcpPortAlias
The alias translating the external port to a known port.
monitoredPort
Type: Int32
The port number to monitor must be between 1 and 65538.

Exceptions

Exception | Condition
[ArgumentOutOfRangeException] | monitoredPort

See Also

PortAliasMapper Structure
PortAliasMapper Overload
Walter.Net.HoneyPot Namespace


PortAliasMapper Methods

The PortAliasMapper type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(PortAliasMapper) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


Equals Method

PortAliasMapper..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(PortAliasMapper) | Indicates whether the current object is equal to another object of the same type.

See Also

PortAliasMapper Structure
PortAliasMapper Members
Walter.Net.HoneyPot Namespace


Equals Method (Nullable(Object))

PortAliasMapper..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

PortAliasMapper Structure
Equals Overload
Walter.Net.HoneyPot Namespace


Equals Method (PortAliasMapper)

PortAliasMapper..::..Equals Method (PortAliasMapper)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool Equals(
    PortAliasMapper other
)

Parameters

other
Type: Walter.Net.HoneyPot..::..PortAliasMapper
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

PortAliasMapper Structure
Equals Overload
Walter.Net.HoneyPot Namespace


GetHashCode Method

PortAliasMapper..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


ToString Method

PortAliasMapper..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


PortAliasMapper Operators

The PortAliasMapper type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


Equality Operator

PortAliasMapper..::..Equality Operator

Implements the == operator.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static bool operator ==(
    PortAliasMapper left,
    PortAliasMapper right
)

Parameters

left
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The left.
right
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The right.

Return Value

The result of the operator.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


Inequality Operator

PortAliasMapper..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public static bool operator !=(
    PortAliasMapper left,
    PortAliasMapper right
)

Parameters

left
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The left.
right
Type: Walter.Net.HoneyPot..::..PortAliasMapper
The right.

Return Value

The result of the operator.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


PortAliasMapper Properties

The PortAliasMapper type exposes the following members.

Properties

 | Name | Description
Public property | Description | Gets the description used in reporting.
Public property | MonitoredPort | Gets the monitored port (alias/forwarded port that the use assumed he connected to).
Public property | NamedAlias | Gets the strong typed TCP port alias type.
Public property | Port | Gets the port that the attacker assumed he connected to.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


Description Property

PortAliasMapper..::..Description Property

Gets the description used in reporting.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public string Description { get; }

Field Value

The description.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


MonitoredPort Property

PortAliasMapper..::..MonitoredPort Property

Gets the monitored port (alias/forwarded port that the use assumed he connected to).

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int MonitoredPort { get; }

Field Value

The monitored port.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


NamedAlias Property

PortAliasMapper..::..NamedAlias Property

Gets the strong typed TCP port alias type.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public TcpPortAlias NamedAlias { get; }

Field Value

The alias.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


Port Property

PortAliasMapper..::..Port Property

Gets the port that the attacker assumed he connected to.

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public int Port { get; }

Field Value

The port.

See Also

PortAliasMapper Structure
Walter.Net.HoneyPot Namespace


PortStatus Enumeration

Enum PortStatus provides a notation for port detection nature

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public enum PortStatus

Members

Member name | Description
None | Port status is not configured or not processed
StandardPort | The standard port was used (safe communication)
HoneyPotPort | communication via a defined honey pot port
CommunicatedNotHttpPorts | Communication was detected on a non HTTP port
IPCommunication | Detected socket request over IP address and port number and not host name when this was not expected
AnyPort | The request came from a port not specified as honey-pot nor from a port configured as standard port

See Also

Walter.Net.HoneyPot Namespace


Walter.Net.HoneyPot.EventArguments Namespace

Classes

 | Class | Description
Public class | HoneyPotDetectionEventArgs | Event arguments for Honey-Pot port detection events


HoneyPotDetectionEventArgs Class

Event arguments for Honey-Pot port detection events

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public sealed class HoneyPotDetectionEventArgs

Remarks

You can access these events of you subscribe to the OnPortCommunicationDetected of the IFireWall

See Also

HoneyPotDetectionEventArgs Members
Walter.Net.HoneyPot.EventArguments Namespace


HoneyPotDetectionEventArgs Members

The HoneyPotDetectionEventArgs type exposes the following members.

Methods

 | Name | Description
Public method | HasOtherPortActivity | the method returns true if there was activity detected other than that what is found in Data

Properties

 | Name | Description
Public property | Answer | If value is set the socket will answer the text assigned
Public property | CloseConnection | Will terminate the connection, set to false if you like to "keep the conversation going" for legal proposes
Public property | CreateIncident | Set the value to True if you would like to generate an incident
Public property | Data | The data collected during the detection
Public property | GuardResponse | Gets the guard response.
Public property | PortAlias | The port alias that detected the communication
Public property | SendPayload | This will let the service send the file and a command to the attacker

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


HoneyPotDetectionEventArgs Methods

The HoneyPotDetectionEventArgs type exposes the following members.

Methods

 | Name | Description
Public method | HasOtherPortActivity | the method returns true if there was activity detected other than that what is found in Data

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


HasOtherPortActivity Method

HoneyPotDetectionEventArgs..::..HasOtherPortActivity Method

the method returns true if there was activity detected other than that what is found in Data

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool HasOtherPortActivity(
    out Nullable<IReadOnlyList<IHoneyPotPortDetection>> otherPortActivity
)

Parameters

otherPortActivity
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IHoneyPotPortDetection >)>)>>)>)>%
list of activities from the same IP address related to a different port

Return Value

true if other activity detected

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


HoneyPotDetectionEventArgs Properties

The HoneyPotDetectionEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Answer | If value is set the socket will answer the text assigned
Public property | CloseConnection | Will terminate the connection, set to false if you like to "keep the conversation going" for legal proposes
Public property | CreateIncident | Set the value to True if you would like to generate an incident
Public property | Data | The data collected during the detection
Public property | GuardResponse | Gets the guard response.
Public property | PortAlias | The port alias that detected the communication
Public property | SendPayload | This will let the service send the file and a command to the attacker

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


Answer Property

HoneyPotDetectionEventArgs..::..Answer Property

If value is set the socket will answer the text assigned

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<string> Answer { get; set; }

Remarks

Leave blank to ignore

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


CloseConnection Property

HoneyPotDetectionEventArgs..::..CloseConnection Property

Will terminate the connection, set to false if you like to "keep the conversation going" for legal proposes

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool CloseConnection { get; set; }

Remarks

The default is True closing a connection after a detection

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


CreateIncident Property

HoneyPotDetectionEventArgs..::..CreateIncident Property

Set the value to True if you would like to generate an incident

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public bool CreateIncident { get; set; }

Remarks

By setting the value to true you will be able to process the incidents in all reporting destinations. There are 3 destinations would be especially helpful, see NuGet packages

  1. Walter.Web.FireWall.DiskLogger can be used to lock the IP address in the physical firewall
  2. Walter.Web.FireWall.EventLogcan be used to alert monitoring services to take action
  3. Walter.Web.FireWall.SMTPLogger can be used to send an email to the configured mailboxes

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


Data Property

HoneyPotDetectionEventArgs..::..Data Property

The data collected during the detection

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public IHoneyPotPortDetection Data { get; }

Remarks

See CommunicationLog to inspect the data that was received

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


GuardResponse Property

HoneyPotDetectionEventArgs..::..GuardResponse Property

Gets the guard response.

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public GuardResponse GuardResponse { get; set; }

Field Value

The guard response.

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


PortAlias Property

HoneyPotDetectionEventArgs..::..PortAlias Property

The port alias that detected the communication

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public PortAliasMapper PortAlias { get; set; }

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


SendPayload Property

HoneyPotDetectionEventArgs..::..SendPayload Property

This will let the service send the file and a command to the attacker

Namespace: Walter.Net.HoneyPot.EventArguments
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public Nullable<ValueTuple<FileInfo, string>> SendPayload { get; set; }

Remarks

It will first the file if any was assigned when done it will send the answer. This method allows you to replay with a payload it will first send the bytes of the file, then the command if provided

See Also

HoneyPotDetectionEventArgs Class
Walter.Net.HoneyPot.EventArguments Namespace


Walter.Net.HoneyPot.Repositories Namespace

Interfaces

 | Interface | Description
Public interface | IHoneyPotDataSource | access the PortAccess and IHoneyPotPortDetection long or in memory term storage


IHoneyPotDataSource Interface

access the PortAccess and IHoneyPotPortDetection long or in memory term storage

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public interface IHoneyPotDataSource

See Also

IHoneyPotDataSource Members
Walter.Net.HoneyPot.Repositories Namespace


IHoneyPotDataSource Members

The IHoneyPotDataSource type exposes the following members.

Methods

 | Name | Description
Public method | AccessedPorts | Ports accessed by IP address
Public method | Add | Store port detection
Public method | AddAsync(IHoneyPotPortDetection) | Adds the detection to the database
Public method | AddAsync(PortAccess) | Store port detection
Public method | Count | count entries triggered
Public method | GetHoneyPotAttack | Gets the honey pot attack.
Public method | GetHoneyPotPortAttacks(Int64, TimeSpan) | Gets the honey pot port attacks for a given IP address.
Public method | GetHoneyPotPortAttacks(Int64, DateTime, DateTime) | Gets the honey pot port attacks.
Public method | GetPortAccess(IPAddress, DateTime, DateTime) | Gets the port access.
Public method | GetPortAccess(Int32, DateTime, DateTime) | Gets the port access.
Public method | GetPortData | Gets the port access data.
Public method | IsAttackingPorts | Determines whether a CIDR in the firewall session is attacking ports
Public method | TryGetCurrentPortDetection | Get the current detection for a firewall session
Public method | TryGetIncidents(Int64, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries to get the get incidents belonging to a IP CIDR.
Public method | TryGetIncidents(Int64, Int64, DateTime, DateTime, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries to get the get incidents belonging to a Internet service provider.
Public method | TryGetIncidents(Int32, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries the get incidents.
Public method | TryGetPortAccess | Tries the get port access.
Public method | TryGetPortCounters | Tries to get the get port counters for port fishing.
Public method | WasAttackingPorts | If true it get the get incidents belonging to a Port

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


IHoneyPotDataSource Methods

The IHoneyPotDataSource type exposes the following members.

Methods

 | Name | Description
Public method | AccessedPorts | Ports accessed by IP address
Public method | Add | Store port detection
Public method | AddAsync(IHoneyPotPortDetection) | Adds the detection to the database
Public method | AddAsync(PortAccess) | Store port detection
Public method | Count | count entries triggered
Public method | GetHoneyPotAttack | Gets the honey pot attack.
Public method | GetHoneyPotPortAttacks(Int64, TimeSpan) | Gets the honey pot port attacks for a given IP address.
Public method | GetHoneyPotPortAttacks(Int64, DateTime, DateTime) | Gets the honey pot port attacks.
Public method | GetPortAccess(IPAddress, DateTime, DateTime) | Gets the port access.
Public method | GetPortAccess(Int32, DateTime, DateTime) | Gets the port access.
Public method | GetPortData | Gets the port access data.
Public method | IsAttackingPorts | Determines whether a CIDR in the firewall session is attacking ports
Public method | TryGetCurrentPortDetection | Get the current detection for a firewall session
Public method | TryGetIncidents(Int64, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries to get the get incidents belonging to a IP CIDR.
Public method | TryGetIncidents(Int64, Int64, DateTime, DateTime, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries to get the get incidents belonging to a Internet service provider.
Public method | TryGetIncidents(Int32, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries the get incidents.
Public method | TryGetPortAccess | Tries the get port access.
Public method | TryGetPortCounters | Tries to get the get port counters for port fishing.
Public method | WasAttackingPorts | If true it get the get incidents belonging to a Port

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


AccessedPorts Method

IHoneyPotDataSource..::..AccessedPorts Method

Ports accessed by IP address

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<PortAccess> AccessedPorts(
    IPAddress address
)

Parameters

address
Type: IPAddress

Return Value

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


Add Method

IHoneyPotDataSource..::..Add Method

Store port detection

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
void Add(
    PortAccess portAccess
)

Parameters

portAccess
Type: Walter.Net.HoneyPot..::..PortAccess

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


AddAsync Method

IHoneyPotDataSource..::..AddAsync Method

Overload List

 | Name | Description
Public method | AddAsync(IHoneyPotPortDetection) | Adds the detection to the database
Public method | AddAsync(PortAccess) | Store port detection

See Also

IHoneyPotDataSource Interface
IHoneyPotDataSource Members
Walter.Net.HoneyPot.Repositories Namespace


AddAsync Method (IHoneyPotPortDetection)

IHoneyPotDataSource..::..AddAsync Method (IHoneyPotPortDetection)

Adds the detection to the database

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Task AddAsync(
    IHoneyPotPortDetection detection
)

Parameters

detection
Type: Walter.Net.HoneyPot..::..IHoneyPotPortDetection
the detection to log

Return Value

Task to await

See Also

IHoneyPotDataSource Interface
AddAsync Overload
Walter.Net.HoneyPot.Repositories Namespace


AddAsync Method (PortAccess)

IHoneyPotDataSource..::..AddAsync Method (PortAccess)

Store port detection

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Task AddAsync(
    PortAccess portAccess
)

Parameters

portAccess
Type: Walter.Net.HoneyPot..::..PortAccess

See Also

IHoneyPotDataSource Interface
AddAsync Overload
Walter.Net.HoneyPot.Repositories Namespace


Count Method

IHoneyPotDataSource..::..Count Method

count entries triggered

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
int Count(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
the time to query

Return Value

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


GetHoneyPotAttack Method

IHoneyPotDataSource..::..GetHoneyPotAttack Method

Gets the honey pot attack.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
Nullable<IHoneyPotPortDetection> GetHoneyPotAttack(
    long cidr,
    int port,
    DateTime date
)

Parameters

cidr
Type: Int64
The cidr.
port
Type: Int32
The port.
date
Type: DateTime
The date.

Return Value

System.Nullable<IHoneyPotPortDetection>.

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


GetHoneyPotPortAttacks Method

IHoneyPotDataSource..::..GetHoneyPotPortAttacks Method

Overload List

 | Name | Description
Public method | GetHoneyPotPortAttacks(Int64, TimeSpan) | Gets the honey pot port attacks for a given IP address.
Public method | GetHoneyPotPortAttacks(Int64, DateTime, DateTime) | Gets the honey pot port attacks.

See Also

IHoneyPotDataSource Interface
IHoneyPotDataSource Members
Walter.Net.HoneyPot.Repositories Namespace


GetHoneyPotPortAttacks Method (Int64, TimeSpan)

IHoneyPotDataSource..::..GetHoneyPotPortAttacks Method (Int64, TimeSpan)

Gets the honey pot port attacks for a given IP address.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<IHoneyPotPortDetection> GetHoneyPotPortAttacks(
    long cidr,
    TimeSpan timeSpan
)

Parameters

cidr
Type: Int64
The cidr.
timeSpan
Type: TimeSpan
the duration

Return Value

IReadOnlyList<IHoneyPotPortDetection>.

See Also

IHoneyPotDataSource Interface
GetHoneyPotPortAttacks Overload
Walter.Net.HoneyPot.Repositories Namespace


GetHoneyPotPortAttacks Method (Int64, DateTime, DateTime)

IHoneyPotDataSource..::..GetHoneyPotPortAttacks Method (Int64, DateTime, DateTime)

Gets the honey pot port attacks.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<IHoneyPotPortDetection> GetHoneyPotPortAttacks(
    long cidr,
    DateTime from,
    DateTime till
)

Parameters

cidr
Type: Int64
The cidr.
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IReadOnlyList<IHoneyPotPortDetection>.

See Also

IHoneyPotDataSource Interface
GetHoneyPotPortAttacks Overload
Walter.Net.HoneyPot.Repositories Namespace


GetPortAccess Method

IHoneyPotDataSource..::..GetPortAccess Method

Overload List

 | Name | Description
Public method | GetPortAccess(IPAddress, DateTime, DateTime) | Gets the port access.
Public method | GetPortAccess(Int32, DateTime, DateTime) | Gets the port access.

See Also

IHoneyPotDataSource Interface
IHoneyPotDataSource Members
Walter.Net.HoneyPot.Repositories Namespace


GetPortAccess Method (IPAddress, DateTime, DateTime)

IHoneyPotDataSource..::..GetPortAccess Method (IPAddress, DateTime, DateTime)

Gets the port access.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<PortAccess> GetPortAccess(
    IPAddress address,
    DateTime from,
    DateTime till
)

Parameters

address
Type: IPAddress
The address.
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IReadOnlyList<PortAccess>.

See Also

IHoneyPotDataSource Interface
GetPortAccess Overload
Walter.Net.HoneyPot.Repositories Namespace


GetPortAccess Method (Int32, DateTime, DateTime)

IHoneyPotDataSource..::..GetPortAccess Method (Int32, DateTime, DateTime)

Gets the port access.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<PortAccess> GetPortAccess(
    int port,
    DateTime from,
    DateTime till
)

Parameters

port
Type: Int32
The port.
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IReadOnlyList<PortAccess>.

See Also

IHoneyPotDataSource Interface
GetPortAccess Overload
Walter.Net.HoneyPot.Repositories Namespace


GetPortData Method

IHoneyPotDataSource..::..GetPortData Method

Gets the port access data.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
IReadOnlyList<ValueTuple<int, IPAddress, PortStatus, long>> GetPortData(
    DateTime from,
    DateTime till
)

Parameters

from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IReadOnlyList<System.ValueTuple<System.Int32, IPAddress, PortStatus, System.Int64>>.

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


IsAttackingPorts Method

IHoneyPotDataSource..::..IsAttackingPorts Method

Determines whether a CIDR in the firewall session is attacking ports

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool IsAttackingPorts(
    long cidr,
    decimal fwSession,
    out Nullable<IReadOnlyList<int>> ports
)

Parameters

cidr
Type: Int64
The cidr.
fwSession
Type: Decimal
The firewall session.
ports
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' Int32 >)>)>>)>)>%
The ports.

Return Value

true if [is attacking ports] [the specified cidr]; otherwise, false.

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


TryGetCurrentPortDetection Method

IHoneyPotDataSource..::..TryGetCurrentPortDetection Method

Get the current detection for a firewall session

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool TryGetCurrentPortDetection(
    decimal sessionID,
    long cidr,
    PortAliasMapper portAlias,
    out Nullable<IHoneyPotPortDetection> item
)

Parameters

sessionID
Type: Decimal
the firewall session
cidr
Type: Int64
the remote CIDR
portAlias
Type: Walter.Net.HoneyPot..::..PortAliasMapper
the alias
item
Type: Nullable <(Of <(<' IHoneyPotPortDetection >)>)>%
if found the item that matches port and session for the IP address

Return Value

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


TryGetIncidents Method

IHoneyPotDataSource..::..TryGetIncidents Method

Overload List

 | Name | Description
Public method | TryGetIncidents(Int64, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries to get the get incidents belonging to a IP CIDR.
Public method | TryGetIncidents(Int64, Int64, DateTime, DateTime, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries to get the get incidents belonging to a Internet service provider.
Public method | TryGetIncidents(Int32, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IHoneyPotPortDetection>)>>)>)>>)%) | Tries the get incidents.

See Also

IHoneyPotDataSource Interface
IHoneyPotDataSource Members
Walter.Net.HoneyPot.Repositories Namespace


TryGetIncidents Method (Int64, Nullable(IReadOnlyList(IHoneyPotPortDetection)))

IHoneyPotDataSource..::..TryGetIncidents Method (Int64, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IHoneyPotPortDetection>)>)>>)>)>%)

Tries to get the get incidents belonging to a IP CIDR.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool TryGetIncidents(
    long cidr,
    out Nullable<IReadOnlyList<IHoneyPotPortDetection>> incidents
)

Parameters

cidr
Type: Int64
The cidr.
incidents
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IHoneyPotPortDetection >)>)>>)>)>%
The incidents.

Return Value

true if XXXX, false otherwise.

See Also

IHoneyPotDataSource Interface
TryGetIncidents Overload
Walter.Net.HoneyPot.Repositories Namespace


TryGetIncidents Method (Int64, Int64, DateTime, DateTime, Nullable(IReadOnlyList(IHoneyPotPortDetection)))

IHoneyPotDataSource..::..TryGetIncidents Method (Int64, Int64, DateTime, DateTime, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IHoneyPotPortDetection>)>)>>)>)>%)

Tries to get the get incidents belonging to a Internet service provider.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool TryGetIncidents(
    long cidr_from,
    long cidr_till,
    DateTime first,
    DateTime last,
    out Nullable<IReadOnlyList<IHoneyPotPortDetection>> incidents
)

Parameters

cidr_from
Type: Int64
The CIDR from.
cidr_till
Type: Int64
The CIDR till.
first
Type: DateTime
The first.
last
Type: DateTime
The last.
incidents
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IHoneyPotPortDetection >)>)>>)>)>%
The incidents.

Return Value

true if any, false otherwise.

See Also

IHoneyPotDataSource Interface
TryGetIncidents Overload
Walter.Net.HoneyPot.Repositories Namespace


TryGetIncidents Method (Int32, Nullable(IReadOnlyList(IHoneyPotPortDetection)))

IHoneyPotDataSource..::..TryGetIncidents Method (Int32, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IHoneyPotPortDetection>)>)>>)>)>%)

Tries the get incidents.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool TryGetIncidents(
    int port,
    out Nullable<IReadOnlyList<IHoneyPotPortDetection>> incidents
)

Parameters

port
Type: Int32
The port.
incidents
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IHoneyPotPortDetection >)>)>>)>)>%
The incidents.

Return Value

true if XXXX, false otherwise.

See Also

IHoneyPotDataSource Interface
TryGetIncidents Overload
Walter.Net.HoneyPot.Repositories Namespace


TryGetPortAccess Method

IHoneyPotDataSource..::..TryGetPortAccess Method

Tries the get port access.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool TryGetPortAccess(
    int port,
    long cidr,
    out Nullable<PortAccess> item
)

Parameters

port
Type: Int32
The port.
cidr
Type: Int64
The cidr.
item
Type: Nullable <(Of <(<' PortAccess >)>)>%
The item.

Return Value

true if XXXX, false otherwise.

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


TryGetPortCounters Method

IHoneyPotDataSource..::..TryGetPortCounters Method

Tries to get the get port counters for port fishing.

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool TryGetPortCounters(
    long cidr,
    int port,
    decimal fwsession,
    out DateTime first,
    out DateTime last,
    out long count
)

Parameters

cidr
Type: Int64
The cidr.
port
Type: Int32
The port.
fwsession
Type: Decimal
The firewall session id.
first
Type: DateTime%
The first.
last
Type: DateTime%
The last.
count
Type: Int64 %
The count.

Return Value

true if XXXX, false otherwise.

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


WasAttackingPorts Method

IHoneyPotDataSource..::..WasAttackingPorts Method

If true it get the get incidents belonging to a Port

Namespace: Walter.Net.HoneyPot.Repositories
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
bool WasAttackingPorts(
    long cidr,
    TimeSpan timeSpan,
    out Nullable<IReadOnlyList<int>> ports
)

Parameters

cidr
Type: Int64
The cidr.
timeSpan
Type: TimeSpan
The time span.
ports
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' Int32 >)>)>>)>)>%
The ports.

Return Value

true if XXXX, false otherwise.

See Also

IHoneyPotDataSource Interface
Walter.Net.HoneyPot.Repositories Namespace


Walter.Net.LookWhosTalking Namespace

Classes

 | Class | Description
Public class | AddressResolutionProtocolWatcher | The Address Resolution Protocol Watcher (ARP Watcher) allows you to detect if some man-in-the.midle injected in a "new" ARP address into the LAN with the same IP address.
Public class | ARPWatchData | Class ARPWatchData.
Public class | IPAddresAndPort | Class IPAddresAndPort contains the communication scope of a IP address.
Public class | RunTimeSettings | Configuration values for reporting endpoint of the look-whois-talking service
Public class | TcpProcessHistoricRecord | Provide historical access to the communication of a process and IPAddress
Public class | TcpProcessRecord | This class provides access an TCP connection addresses and ports and its associated Process IDs and names.
Public class | TcpProcessRecordProcessExtensionClass | Class TcpProcessRecordProcessExtensionClass.

Interfaces

 | Interface | Description
Public interface | ITcpProcessHistoricRecordProxy | Interface ITcpProcessHistoricRecordProxy
Public interface | IWhosTalking | Interface used to get the TcpProcessRecord and TcpProcessHistoricRecord from the current server or device

Enumerations

 | Enumeration | Description
Public enumeration | ARPWatchType | Enum ARPWatchType
Public enumeration | TcpConnectionState | Enum the connection state of a given connection


AddressResolutionProtocolWatcher Class

The Address Resolution Protocol Watcher (ARP Watcher) allows you to detect if some man-in-the.midle injected in a "new" ARP address into the LAN with the same IP address.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public sealed class AddressResolutionProtocolWatcher

See Also

AddressResolutionProtocolWatcher Members
Walter.Net.LookWhosTalking Namespace


AddressResolutionProtocolWatcher Members

The AddressResolutionProtocolWatcher type exposes the following members.

Methods

Name | Description
GetArpTable | Gets the arp table.
GetPoisonedEndpoints | test if there are poisoned endpoints and get them if so.

Properties

Name | Description
BaseLine | Gets or sets the base line to measure against.

See Also

AddressResolutionProtocolWatcher Class
Walter.Net.LookWhosTalking Namespace


AddressResolutionProtocolWatcher Methods

The AddressResolutionProtocolWatcher type exposes the following members.

Methods

Name | Description
GetArpTable | Gets the arp table.
GetPoisonedEndpoints | test if there are poisoned endpoints and get them if so.

See Also

AddressResolutionProtocolWatcher Class
Walter.Net.LookWhosTalking Namespace


GetArpTable Method

AddressResolutionProtocolWatcher..::..GetArpTable Method

Gets the arp table.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static IReadOnlyList<ARPWatchData> GetArpTable()

Return Value

List<ARPWatchData>.

See Also

AddressResolutionProtocolWatcher Class
Walter.Net.LookWhosTalking Namespace


GetPoisonedEndpoints Method

AddressResolutionProtocolWatcher..::..GetPoisonedEndpoints Method

test if there are poisoned endpoints and get them if so.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static bool GetPoisonedEndpoints(
    out Nullable<IReadOnlyList<ARPWatchData>> poisonedArp
)

Parameters

poisonedArp
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' ARPWatchData >)>)>>)>)>%
The poisoned arp.

Return Value

true if XXXX, false otherwise.

See Also

AddressResolutionProtocolWatcher Class
Walter.Net.LookWhosTalking Namespace


AddressResolutionProtocolWatcher Properties

The AddressResolutionProtocolWatcher type exposes the following members.

Properties

Name | Description
BaseLine | Gets or sets the base line to measure against.

See Also

AddressResolutionProtocolWatcher Class
Walter.Net.LookWhosTalking Namespace


BaseLine Property

AddressResolutionProtocolWatcher..::..BaseLine Property

Gets or sets the base line to measure against.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static Nullable<IReadOnlyList<ARPWatchData>> BaseLine { get; set; }

Field Value

The base line.

See Also

AddressResolutionProtocolWatcher Class
Walter.Net.LookWhosTalking Namespace


ARPWatchData Class

Class ARPWatchData.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public class ARPWatchData

See Also

ARPWatchData Members
Walter.Net.LookWhosTalking Namespace


ARPWatchData Members

The ARPWatchData type exposes the following members.

Methods

 | Name | Description
Public method | Changed | Changeds the specified other.

Properties

 | Name | Description
Public property | IPAddress | Gets or sets the ip address.
Public property | MacAddress | Gets or sets the mac address.
Public property | Name | Gets or sets the name.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


ARPWatchData Methods

The ARPWatchData type exposes the following members.

Methods

 | Name | Description
Public method | Changed | Changeds the specified other.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


Changed Method

ARPWatchData..::..Changed Method

Changeds the specified other.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public ARPWatchType Changed(
    Nullable<ARPWatchData> other
)

Parameters

other
Type: Nullable <(Of <(<' ARPWatchData >)>)>
The other.

Return Value

bool.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


ARPWatchData Properties

The ARPWatchData type exposes the following members.

Properties

 | Name | Description
Public property | IPAddress | Gets or sets the ip address.
Public property | MacAddress | Gets or sets the mac address.
Public property | Name | Gets or sets the name.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


IPAddress Property

ARPWatchData..::..IPAddress Property

Gets or sets the ip address.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string IPAddress { get; set; }

Field Value

The ip address.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


MacAddress Property

ARPWatchData..::..MacAddress Property

Gets or sets the mac address.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string MacAddress { get; set; }

Field Value

The mac address.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


Name Property

ARPWatchData..::..Name Property

Gets or sets the name.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string Name { get; set; }

Field Value

The name.

See Also

ARPWatchData Class
Walter.Net.LookWhosTalking Namespace


ARPWatchType Enumeration

Enum ARPWatchType

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public enum ARPWatchType

Members

Member name | Description
None | The none
NameChanged | The name changed
MacChanged | The mac changed

See Also

Walter.Net.LookWhosTalking Namespace


IPAddresAndPort Class

Class IPAddresAndPort contains the communication scope of a IP address.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public class IPAddresAndPort

See Also

IPAddresAndPort Members
Walter.Net.LookWhosTalking Namespace


IPAddresAndPort Members

The IPAddresAndPort type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(IPAddresAndPort>)>>)) | Equalses the specified object.
Public method | GetHashCode | Gets the hash code.
Public method | ToString | Converts to string.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Port | Gets the port.
Public property | Scope | Gets the scope.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


IPAddresAndPort Methods

The IPAddresAndPort type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(IPAddresAndPort>)>>)) | Equalses the specified object.
Public method | GetHashCode | Gets the hash code.
Public method | ToString | Converts to string.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


Equals Method

IPAddresAndPort..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(IPAddresAndPort>)>>)) | Equalses the specified object.

See Also

IPAddresAndPort Class
IPAddresAndPort Members
Walter.Net.LookWhosTalking Namespace


Equals Method (Nullable(Object))

IPAddresAndPort..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Equalses the specified object.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object.

Return Value

bool.

See Also

IPAddresAndPort Class
Equals Overload
Walter.Net.LookWhosTalking Namespace


Equals Method (Nullable(IPAddresAndPort))

IPAddresAndPort..::..Equals Method (Nullable<(Of <(<'IPAddresAndPort>)>)>)

Equalses the specified object.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    Nullable<IPAddresAndPort> obj
)

Parameters

obj
Type: Nullable <(Of <(<' IPAddresAndPort >)>)>
The object.

Return Value

bool.

See Also

IPAddresAndPort Class
Equals Overload
Walter.Net.LookWhosTalking Namespace


GetHashCode Method

IPAddresAndPort..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


ToString Method

IPAddresAndPort..::..ToString Method

Converts to string.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<string> ToString()

Return Value

string?.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


IPAddresAndPort Properties

The IPAddresAndPort type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Port | Gets the port.
Public property | Scope | Gets the scope.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


Address Property

IPAddresAndPort..::..Address Property

Gets the address.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public IPAddress Address { get; }

Field Value

The address.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


Port Property

IPAddresAndPort..::..Port Property

Gets the port.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int Port { get; }

Field Value

The port.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


Scope Property

IPAddresAndPort..::..Scope Property

Gets the scope.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public CommunicationScopes Scope { get; }

Field Value

The scope.

See Also

IPAddresAndPort Class
Walter.Net.LookWhosTalking Namespace


ITcpProcessHistoricRecordProxy Interface

Interface ITcpProcessHistoricRecordProxy

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public interface ITcpProcessHistoricRecordProxy

See Also

ITcpProcessHistoricRecordProxy Members
Walter.Net.LookWhosTalking Namespace


ITcpProcessHistoricRecordProxy Members

The ITcpProcessHistoricRecordProxy type exposes the following members.

Properties

 | Name | Description
Public property | CommunicationScope | Gets the communication scope.
Public property | Count | Gets the count.
Public property | File | Gets the file.
Public property | FirstRecord | Gets the first record.
Public property | History | Gets the history.
Public property | Item | Gets the TcpProcessRecord with the specified ix.
Public property | LastRecord | Gets the last record.
Public property | Name | Gets or sets the name.
Public property | RemoteAddresses | Gets the remote addresses.
Public property | UniqueAssemblyCount | Gets the unique assembly count.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


ITcpProcessHistoricRecordProxy Properties

The ITcpProcessHistoricRecordProxy type exposes the following members.

Properties

 | Name | Description
Public property | CommunicationScope | Gets the communication scope.
Public property | Count | Gets the count.
Public property | File | Gets the file.
Public property | FirstRecord | Gets the first record.
Public property | History | Gets the history.
Public property | Item | Gets the TcpProcessRecord with the specified ix.
Public property | LastRecord | Gets the last record.
Public property | Name | Gets or sets the name.
Public property | RemoteAddresses | Gets the remote addresses.
Public property | UniqueAssemblyCount | Gets the unique assembly count.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


CommunicationScope Property

ITcpProcessHistoricRecordProxy..::..CommunicationScope Property

Gets the communication scope.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
CommunicationScopes CommunicationScope { get; }

Field Value

The communication scope.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


Count Property

ITcpProcessHistoricRecordProxy..::..Count Property

Gets the count.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
int Count { get; }

Field Value

The count.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


File Property

ITcpProcessHistoricRecordProxy..::..File Property

Gets the file.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
Nullable<AssemblyVersionInfo> File { get; }

Field Value

The file.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


FirstRecord Property

ITcpProcessHistoricRecordProxy..::..FirstRecord Property

Gets the first record.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
DateTime FirstRecord { get; }

Field Value

The first record.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


History Property

ITcpProcessHistoricRecordProxy..::..History Property

Gets the history.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessRecord> History { get; }

Field Value

The history.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


Item Property

ITcpProcessHistoricRecordProxy..::..Item Property

Gets the TcpProcessRecord with the specified ix.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
TcpProcessRecord this[
    int ix
] { get; }

Parameters

ix
Type: Int32
The index to read.

Return Value

TcpProcessRecord at the index.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


LastRecord Property

ITcpProcessHistoricRecordProxy..::..LastRecord Property

Gets the last record.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
DateTime LastRecord { get; }

Field Value

The last record.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


Name Property

ITcpProcessHistoricRecordProxy..::..Name Property

Gets or sets the name.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
string Name { get; set; }

Field Value

The name.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


RemoteAddresses Property

ITcpProcessHistoricRecordProxy..::..RemoteAddresses Property

Gets the remote addresses.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<IPAddresAndPort> RemoteAddresses { get; }

Field Value

The remote addresses.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


UniqueAssemblyCount Property

ITcpProcessHistoricRecordProxy..::..UniqueAssemblyCount Property

Gets the unique assembly count.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
int UniqueAssemblyCount { get; }

Field Value

The unique assembly count.

See Also

ITcpProcessHistoricRecordProxy Interface
Walter.Net.LookWhosTalking Namespace


IWhosTalking Interface

Interface used to get the TcpProcessRecord and TcpProcessHistoricRecord from the current server or device

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public interface IWhosTalking

See Also

IWhosTalking Members
Walter.Net.LookWhosTalking Namespace


IWhosTalking Members

The IWhosTalking type exposes the following members.

Methods

 | Name | Description
Public method | ClearCommunicationHistory | Clear communication history
Public method | Communicating(Nullable<(Of <<'(Process>)>>)) | Communicating TCP records of the specified process.
Public method | Communicating(Int32) | Communicating TCP records of the specified process.
Public method | CommunicatingPorts | Get the ports of a given process is communication on.
Public method | CommunicationHistory(Nullable<(Of <<'(Int32>)>>)) | Get the communication history for processes on a given machine
Public method | CommunicationHistory(String) | Get the communication history on a given process
Public method | CommunicationHistory(IPAddress) | Return the process history for a given IP address for the duration of the application
Public method | CommunicationHistoryExcludingSelf | Get the communication history for processes on a given machine
Public method | CommunicationHistoryOnPort | Communications on a given port
Public method | RemoveCommunicationHistory | Clear communication history for a given process is

Properties

 | Name | Description
Public property | GetConnections | Gets all snapshot of all connections from all processes.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


IWhosTalking Methods

The IWhosTalking type exposes the following members.

Methods

 | Name | Description
Public method | ClearCommunicationHistory | Clear communication history
Public method | Communicating(Nullable<(Of <<'(Process>)>>)) | Communicating TCP records of the specified process.
Public method | Communicating(Int32) | Communicating TCP records of the specified process.
Public method | CommunicatingPorts | Get the ports of a given process is communication on.
Public method | CommunicationHistory(Nullable<(Of <<'(Int32>)>>)) | Get the communication history for processes on a given machine
Public method | CommunicationHistory(String) | Get the communication history on a given process
Public method | CommunicationHistory(IPAddress) | Return the process history for a given IP address for the duration of the application
Public method | CommunicationHistoryExcludingSelf | Get the communication history for processes on a given machine
Public method | CommunicationHistoryOnPort | Communications on a given port
Public method | RemoveCommunicationHistory | Clear communication history for a given process is

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


ClearCommunicationHistory Method

IWhosTalking..::..ClearCommunicationHistory Method

Clear communication history

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
void ClearCommunicationHistory()

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


Communicating Method

IWhosTalking..::..Communicating Method

Overload List

 | Name | Description
Public method | Communicating(Nullable<(Of <<'(Process>)>>)) | Communicating TCP records of the specified process.
Public method | Communicating(Int32) | Communicating TCP records of the specified process.

See Also

IWhosTalking Interface
IWhosTalking Members
Walter.Net.LookWhosTalking Namespace


Communicating Method (Nullable(Process))

IWhosTalking..::..Communicating Method (Nullable<(Of <(<'Process>)>)>)

Communicating TCP records of the specified process.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessRecord> Communicating(
    Nullable<Process> process
)

Parameters

process
Type: Nullable <(Of <(<'Process>)>)>
The process.

Return Value

IEnumerable<TcpProcessRecord>.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Communicating Overload
Walter.Net.LookWhosTalking Namespace


Communicating Method (Int32)

IWhosTalking..::..Communicating Method (Int32)

Communicating TCP records of the specified process.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessRecord> Communicating(
    int processId
)

Parameters

processId
Type: Int32
The process identifier.

Return Value

IEnumerable<TcpProcessRecord>.

Remarks

can return

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Communicating Overload
Walter.Net.LookWhosTalking Namespace


CommunicatingPorts Method

IWhosTalking..::..CommunicatingPorts Method

Get the ports of a given process is communication on.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<int> CommunicatingPorts(
    Nullable<Process> process
)

Parameters

process
Type: Nullable <(Of <(<'Process>)>)>
The process to investigate.

Return Value

IEnumerable<System.Int32>.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


CommunicationHistory Method

IWhosTalking..::..CommunicationHistory Method

Overload List

 | Name | Description
Public method | CommunicationHistory(Nullable<(Of <<'(Int32>)>>)) | Get the communication history for processes on a given machine
Public method | CommunicationHistory(String) | Get the communication history on a given process
Public method | CommunicationHistory(IPAddress) | Return the process history for a given IP address for the duration of the application

See Also

IWhosTalking Interface
IWhosTalking Members
Walter.Net.LookWhosTalking Namespace


CommunicationHistory Method (Nullable(Int32))

IWhosTalking..::..CommunicationHistory Method (Nullable<(Of <(<'Int32>)>)>)

Get the communication history for processes on a given machine

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<ValueTuple<DateTime, TcpProcessRecord>> CommunicationHistory(
    Nullable<int> processId
)

Parameters

processId
Type: Nullable <(Of <(<' Int32 >)>)>
The process to retrieve or null for all

Return Value

A list of Utc date times and process records, this, if asked at intervals could provide a set of data entries that one could use to generate a communications profile.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
CommunicationHistory Overload
Walter.Net.LookWhosTalking Namespace


CommunicationHistory Method (String)

IWhosTalking..::..CommunicationHistory Method (String)

Get the communication history on a given process

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
TcpProcessHistoricRecord CommunicationHistory(
    string processName
)

Parameters

processName
Type: String
the process to investigate

Return Value

list of TCP records for a given process name

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
CommunicationHistory Overload
Walter.Net.LookWhosTalking Namespace


CommunicationHistory Method (IPAddress)

IWhosTalking..::..CommunicationHistory Method (IPAddress)

Return the process history for a given IP address for the duration of the application

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessRecord> CommunicationHistory(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address to get the communications for

Return Value

list of TCP records

See Also

IWhosTalking Interface
CommunicationHistory Overload
Walter.Net.LookWhosTalking Namespace


CommunicationHistoryExcludingSelf Method

IWhosTalking..::..CommunicationHistoryExcludingSelf Method

Get the communication history for processes on a given machine

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> CommunicationHistoryExcludingSelf()

Return Value

A list of Utc date times and process records, this, if asked at intervals could provide a set of data entries that one could use to generate a communications profile.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


CommunicationHistoryOnPort Method

IWhosTalking..::..CommunicationHistoryOnPort Method

Communications on a given port

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessRecord> CommunicationHistoryOnPort(
    int port
)

Parameters

port
Type: Int32
the local port to get the communication for

Return Value

list of TCP records

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


RemoveCommunicationHistory Method

IWhosTalking..::..RemoveCommunicationHistory Method

Clear communication history for a given process is

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
void RemoveCommunicationHistory(
    int processid,
    string processName
)

Parameters

processid
Type: Int32
processName
Type: String

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


IWhosTalking Properties

The IWhosTalking type exposes the following members.

Properties

 | Name | Description
Public property | GetConnections | Gets all snapshot of all connections from all processes.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


GetConnections Property

IWhosTalking..::..GetConnections Property

Gets all snapshot of all connections from all processes.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IEnumerable<TcpProcessRecord> GetConnections { get; }

Return Value

List of TCP records

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhosTalking Interface
Walter.Net.LookWhosTalking Namespace


RunTimeSettings Class

Configuration values for reporting endpoint of the look-whois-talking service

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static class RunTimeSettings

See Also

RunTimeSettings Members
Walter.Net.LookWhosTalking Namespace


RunTimeSettings Members

The RunTimeSettings type exposes the following members.

Properties

Name | Description
PortScanController | Gets or sets the port-scan controller.
PortScanDetailsAction | Gets or sets Action rendering the details of a port scan incident the port-scan controller.
WebServicePort | The port number of the local look-whois-talking reporting web service

See Also

RunTimeSettings Class
Walter.Net.LookWhosTalking Namespace


RunTimeSettings Properties

The RunTimeSettings type exposes the following members.

Properties

Name | Description
PortScanController | Gets or sets the port-scan controller.
PortScanDetailsAction | Gets or sets Action rendering the details of a port scan incident the port-scan controller.
WebServicePort | The port number of the local look-whois-talking reporting web service

See Also

RunTimeSettings Class
Walter.Net.LookWhosTalking Namespace


PortScanController Property

RunTimeSettings..::..PortScanController Property

Gets or sets the port-scan controller.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static string PortScanController { get; set; }

Field Value

The port scan controller.

See Also

RunTimeSettings Class
Walter.Net.LookWhosTalking Namespace


PortScanDetailsAction Property

RunTimeSettings..::..PortScanDetailsAction Property

Gets or sets Action rendering the details of a port scan incident the port-scan controller.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static string PortScanDetailsAction { get; set; }

Field Value

The action rendering port-scan details in the PortScanController.

See Also

RunTimeSettings Class
Walter.Net.LookWhosTalking Namespace


WebServicePort Property

RunTimeSettings..::..WebServicePort Property

The port number of the local look-whois-talking reporting web service

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static int WebServicePort { get; set; }

See Also

RunTimeSettings Class
Walter.Net.LookWhosTalking Namespace


TcpConnectionState Enumeration

Enum the connection state of a given connection

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public enum TcpConnectionState

Members

Member name | Description
Closed | The connection is closed
Listening | Waiting for a connection request from a remote TCP application. This is the state in which you can find the listening socket of a local TCP server.
SynchronisationSend | Waiting for an acknowledgment from the remote endpoint after having sent a connection request. Results after step 1 of the three-way TCP handshake.
SynchronisationRecived | This endpoint has received a connection request and sent an acknowledgment. This endpoint is waiting for final acknowledgment that the other endpoint did receive this endpoint's acknowledgment of the original connection request. Results after step 2 of the three-way TCP handshake.
Established | Represents a fully established connection; this is the normal state for the data transfer phase of the connection.
FinWait1 | Waiting for an acknowledgment of the connection termination request or for a simultaneous connection termination request from the remote TCP. This state is normally of short duration.
FinWait2 | FIN_WAIT_2 seems to occur when the server has an active connection with a client and wants to shut down the TCP connection (probably in response to a normal application layer "exit"). The server sends the client a packet with a "FIN" bit set. At this point, the server is in FIN_WAIT_1 state
CloseWait | Indicates that the server has received the first FIN signal from the client and the connection is in the process of being closed. This means the socket is waiting for the application to execute close() . A socket can be in CLOSE_WAIT state indefinitely until the application closes it
Closing | Waiting for a connection termination request acknowledgment from the remote TCP. This state is entered when this endpoint receives a close request from the local application, sends a termination request to the remote endpoint, and receives a termination request before it receives the acknowledgment from the remote endpoint.
LastAcknowlaged | Waiting for an acknowledgment of the connection termination request previously sent to the remote TCP. This state is entered when this endpoint received a termination request before it sent its termination request.
timeWait | Waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.
DeleteTCB | The connection is in delete being deleted
None | The connection is note having an assigned state

See Also

Walter.Net.LookWhosTalking Namespace


TcpProcessHistoricRecord Class

Provide historical access to the communication of a process and IPAddress

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public class TcpProcessHistoricRecord : ITcpProcessHistoricRecordProxy

Remarks

This class is like a mini database of communications that where discovered on a process name.

Several instances if the same process may have started doing completely different things. To be sure you have the right one look at the UniqueAssemblyCount for more information

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TcpProcessHistoricRecord Members
Walter.Net.LookWhosTalking Namespace


TcpProcessHistoricRecord Members

The TcpProcessHistoricRecord type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified entry.
Public method | Remove | Removes the specified process identifier.

Properties

 | Name | Description
Public property | CommunicationScope | The communication scope of the process
Public property | Count | Gets the count.
Public property | File | Assembly information if available
Public property | FirstRecord | Gets the first record.
Public property | History | Gets the history.
Public property | Item | Gets the TcpProcessRecord with the specified ix.
Public property | LastRecord | Gets the last record.
Public property | Name | Gets or sets the name.
Public property | RemoteAddresses | The endpoints that this process is know to have communicated with
Public property | UniqueAssemblyCount | This property returns how many files and file versions have executed with this process name

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


TcpProcessHistoricRecord Methods

The TcpProcessHistoricRecord type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified entry.
Public method | Remove | Removes the specified process identifier.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


Add Method

TcpProcessHistoricRecord..::..Add Method

Adds the specified entry.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public void Add(
    TcpProcessRecord entry
)

Parameters

entry
Type: Walter.Net.LookWhosTalking..::..TcpProcessRecord
The entry.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


Remove Method

TcpProcessHistoricRecord..::..Remove Method

Removes the specified process identifier.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Remove(
    int processId
)

Parameters

processId
Type: Int32
The process identifier.

Return Value

true if XXXX, false otherwise.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


TcpProcessHistoricRecord Properties

The TcpProcessHistoricRecord type exposes the following members.

Properties

 | Name | Description
Public property | CommunicationScope | The communication scope of the process
Public property | Count | Gets the count.
Public property | File | Assembly information if available
Public property | FirstRecord | Gets the first record.
Public property | History | Gets the history.
Public property | Item | Gets the TcpProcessRecord with the specified ix.
Public property | LastRecord | Gets the last record.
Public property | Name | Gets or sets the name.
Public property | RemoteAddresses | The endpoints that this process is know to have communicated with
Public property | UniqueAssemblyCount | This property returns how many files and file versions have executed with this process name

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


CommunicationScope Property

TcpProcessHistoricRecord..::..CommunicationScope Property

The communication scope of the process

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public CommunicationScopes CommunicationScope { get; set; }

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


Count Property

TcpProcessHistoricRecord..::..Count Property

Gets the count.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int Count { get; }

Field Value

The count.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


File Property

TcpProcessHistoricRecord..::..File Property

Assembly information if available

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<AssemblyVersionInfo> File { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


FirstRecord Property

TcpProcessHistoricRecord..::..FirstRecord Property

Gets the first record.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public DateTime FirstRecord { get; }

Field Value

The first record.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


History Property

TcpProcessHistoricRecord..::..History Property

Gets the history.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public IReadOnlyList<TcpProcessRecord> History { get; }

Field Value

The history.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


Item Property

TcpProcessHistoricRecord..::..Item Property

Gets the TcpProcessRecord with the specified ix.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public TcpProcessRecord this[
    int ix
] { get; }

Parameters

ix
Type: Int32
The ix.

Return Value

TcpProcessRecord.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


LastRecord Property

TcpProcessHistoricRecord..::..LastRecord Property

Gets the last record.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public DateTime LastRecord { get; }

Field Value

The last record.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


Name Property

TcpProcessHistoricRecord..::..Name Property

Gets or sets the name.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string Name { get; set; }

Field Value

The name.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


RemoteAddresses Property

TcpProcessHistoricRecord..::..RemoteAddresses Property

The endpoints that this process is know to have communicated with

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public IReadOnlyList<IPAddresAndPort> RemoteAddresses { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


UniqueAssemblyCount Property

TcpProcessHistoricRecord..::..UniqueAssemblyCount Property

This property returns how many files and file versions have executed with this process name

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int UniqueAssemblyCount { get; }

Remarks

You can access the assembly detail by iterating over the entries in the History property

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

TcpProcessHistoricRecord Class
Walter.Net.LookWhosTalking Namespace


TcpProcessRecord Class

This class provides access an TCP connection addresses and ports and its associated Process IDs and names.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public class TcpProcessRecord

See Also

TcpProcessRecord Members
Walter.Net.LookWhosTalking Namespace


TcpProcessRecord Members

The TcpProcessRecord type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance including state.
Public method | Equals(Nullable<(Of <<'(TcpProcessRecord>)>>)) | Indicates whether the current object is equal to another object of the same type excluding the communications state cast to object to include state.
Public method | GetHashCode | Returns a hash code for this instance excluding the communications state.
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | AddressFamily | Specifies the addressing scheme that the is used for the communication
Public property | Domain | Gets the domain in which the computer that created this instance is registered.
Public property | Executable | Contains the executable that was used to communicate with the remote address.
Public property | ExecutableArguments | Gets the executable arguments.
Public property | ExecutableInfo | Gets the information about executable that was used .
Public property | ExecutableStarted | Gets the date time when the executable has started.
Public property | FQDN | NET BIOS name or Fully qualified domain name
Public property | ID | An sequential ID assigned to the communication if the entry is stored in a WhosTalking Repository
Public property | ISP | Service provider
Public property | LastUpdate | The last time the item was updated, if ever
Public property | LocalAddress | Gets the local address that the communication was recorded on.
Public property | LocalPort | Gets the local port that was communicated on.
Public property | Location | The location of the remote IP address known at the time the data was captured, defaults to UnKnown
Public property | ProcessDetailError | Any error occurred when collecting detail data, null if no error
Public property | ProcessId | Gets the process identifier that owned the network socket.
Public property | ProcessName | Gets the name of the process that owned the network socket.
Public property | RemoteAddress | Gets the remote address that was communicated with.
Public property | RemoteCIDR | The Classless inter-domain routing of the remote IP address
Public property | RemotePort | Gets the remote port.
Public property | Scope | Gets the scope of the communication.
Public property | State | Gets the communication state.
Public property | UtcTimeStamp | The date the record was recorded

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


TcpProcessRecord Methods

The TcpProcessRecord type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance including state.
Public method | Equals(Nullable<(Of <<'(TcpProcessRecord>)>>)) | Indicates whether the current object is equal to another object of the same type excluding the communications state cast to object to include state.
Public method | GetHashCode | Returns a hash code for this instance excluding the communications state.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


Equals Method

TcpProcessRecord..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance including state.
Public method | Equals(Nullable<(Of <<'(TcpProcessRecord>)>>)) | Indicates whether the current object is equal to another object of the same type excluding the communications state cast to object to include state.

See Also

TcpProcessRecord Class
TcpProcessRecord Members
Walter.Net.LookWhosTalking Namespace


Equals Method (Nullable(Object))

TcpProcessRecord..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance including state.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

TcpProcessRecord Class
Equals Overload
Walter.Net.LookWhosTalking Namespace


Equals Method (Nullable(TcpProcessRecord))

TcpProcessRecord..::..Equals Method (Nullable<(Of <(<'TcpProcessRecord>)>)>)

Indicates whether the current object is equal to another object of the same type excluding the communications state cast to object to include state.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    Nullable<TcpProcessRecord> other
)

Parameters

other
Type: Nullable <(Of <(<' TcpProcessRecord >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

TcpProcessRecord Class
Equals Overload
Walter.Net.LookWhosTalking Namespace


GetHashCode Method

TcpProcessRecord..::..GetHashCode Method

Returns a hash code for this instance excluding the communications state.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ToString Method

TcpProcessRecord..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


TcpProcessRecord Properties

The TcpProcessRecord type exposes the following members.

Properties

 | Name | Description
Public property | AddressFamily | Specifies the addressing scheme that the is used for the communication
Public property | Domain | Gets the domain in which the computer that created this instance is registered.
Public property | Executable | Contains the executable that was used to communicate with the remote address.
Public property | ExecutableArguments | Gets the executable arguments.
Public property | ExecutableInfo | Gets the information about executable that was used .
Public property | ExecutableStarted | Gets the date time when the executable has started.
Public property | FQDN | NET BIOS name or Fully qualified domain name
Public property | ID | An sequential ID assigned to the communication if the entry is stored in a WhosTalking Repository
Public property | ISP | Service provider
Public property | LastUpdate | The last time the item was updated, if ever
Public property | LocalAddress | Gets the local address that the communication was recorded on.
Public property | LocalPort | Gets the local port that was communicated on.
Public property | Location | The location of the remote IP address known at the time the data was captured, defaults to UnKnown
Public property | ProcessDetailError | Any error occurred when collecting detail data, null if no error
Public property | ProcessId | Gets the process identifier that owned the network socket.
Public property | ProcessName | Gets the name of the process that owned the network socket.
Public property | RemoteAddress | Gets the remote address that was communicated with.
Public property | RemoteCIDR | The Classless inter-domain routing of the remote IP address
Public property | RemotePort | Gets the remote port.
Public property | Scope | Gets the scope of the communication.
Public property | State | Gets the communication state.
Public property | UtcTimeStamp | The date the record was recorded

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


AddressFamily Property

TcpProcessRecord..::..AddressFamily Property

Specifies the addressing scheme that the is used for the communication

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public AddressFamily AddressFamily { get; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


Domain Property

TcpProcessRecord..::..Domain Property

Gets the domain in which the computer that created this instance is registered.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string Domain { get; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


Executable Property

TcpProcessRecord..::..Executable Property

Contains the executable that was used to communicate with the remote address.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<string> Executable { get; set; }

Field Value

The executable.

Remarks

This value may be null if the executable could not be identified

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ExecutableArguments Property

TcpProcessRecord..::..ExecutableArguments Property

Gets the executable arguments.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<string> ExecutableArguments { get; set; }

Field Value

The executable arguments.

Remarks

This value may be null if the start-up arguments could not be identified or are not used

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ExecutableInfo Property

TcpProcessRecord..::..ExecutableInfo Property

Gets the information about executable that was used .

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<AssemblyVersionInfo> ExecutableInfo { get; set; }

Field Value

The executable information.

Remarks

Can be null if no information was discovered

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ExecutableStarted Property

TcpProcessRecord..::..ExecutableStarted Property

Gets the date time when the executable has started.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<DateTime> ExecutableStarted { get; set; }

Field Value

The executable started.

Remarks

May be null if information is not accessible

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


FQDN Property

TcpProcessRecord..::..FQDN Property

NET BIOS name or Fully qualified domain name

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string FQDN { get; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ID Property

TcpProcessRecord..::..ID Property

An sequential ID assigned to the communication if the entry is stored in a WhosTalking Repository

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<Guid> ID { get; set; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ISP Property

TcpProcessRecord..::..ISP Property

Service provider

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string ISP { get; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


LastUpdate Property

TcpProcessRecord..::..LastUpdate Property

The last time the item was updated, if ever

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<DateTime> LastUpdate { get; set; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


LocalAddress Property

TcpProcessRecord..::..LocalAddress Property

Gets the local address that the communication was recorded on.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public IPAddress LocalAddress { get; }

Field Value

The local address.

Remarks

This is particularly important if the server contains several network cards and one is configured for DMZ connectivity

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


LocalPort Property

TcpProcessRecord..::..LocalPort Property

Gets the local port that was communicated on.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public ushort LocalPort { get; }

Field Value

The local port.

Remarks

Port is used when telling the physical firewall to allow or reject communication

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


Location Property

TcpProcessRecord..::..Location Property

The location of the remote IP address known at the time the data was captured, defaults to UnKnown

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public GeoLocation Location { get; }

Remarks

This property requires a registered GEO resolver. You can use and register any Walter.Net.Geo NuGet package for this value to get populated

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ProcessDetailError Property

TcpProcessRecord..::..ProcessDetailError Property

Any error occurred when collecting detail data, null if no error

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public Nullable<Exception> ProcessDetailError { get; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ProcessId Property

TcpProcessRecord..::..ProcessId Property

Gets the process identifier that owned the network socket.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int ProcessId { get; }

Field Value

The process identifier.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


ProcessName Property

TcpProcessRecord..::..ProcessName Property

Gets the name of the process that owned the network socket.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string ProcessName { get; }

Field Value

The name of the process.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


RemoteAddress Property

TcpProcessRecord..::..RemoteAddress Property

Gets the remote address that was communicated with.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public IPAddress RemoteAddress { get; }

Field Value

The remote address.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


RemoteCIDR Property

TcpProcessRecord..::..RemoteCIDR Property

The Classless inter-domain routing of the remote IP address

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public long RemoteCIDR { get; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


RemotePort Property

TcpProcessRecord..::..RemotePort Property

Gets the remote port.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public ushort RemotePort { get; }

Field Value

The remote port.

Remarks

Information may differ from local post is port mapping is used

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


Scope Property

TcpProcessRecord..::..Scope Property

Gets the scope of the communication.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public CommunicationScopes Scope { get; set; }

Field Value

The scope.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


State Property

TcpProcessRecord..::..State Property

Gets the communication state.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public TcpConnectionState State { get; }

Field Value

The state of the communication.

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


UtcTimeStamp Property

TcpProcessRecord..::..UtcTimeStamp Property

The date the record was recorded

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public DateTime UtcTimeStamp { get; set; }

See Also

TcpProcessRecord Class
Walter.Net.LookWhosTalking Namespace


TcpProcessRecordProcessExtensionClass Class

Class TcpProcessRecordProcessExtensionClass.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static class TcpProcessRecordProcessExtensionClass

See Also

TcpProcessRecordProcessExtensionClass Members
Walter.Net.LookWhosTalking Namespace


TcpProcessRecordProcessExtensionClass Members

The TcpProcessRecordProcessExtensionClass type exposes the following members.

Methods

Name | Description
TryGetTcpProcessRecords | Tries to get the get TCP process records for a Process Image.

See Also

TcpProcessRecordProcessExtensionClass Class
Walter.Net.LookWhosTalking Namespace


TcpProcessRecordProcessExtensionClass Methods

The TcpProcessRecordProcessExtensionClass type exposes the following members.

Methods

Name | Description
TryGetTcpProcessRecords | Tries to get the get TCP process records for a Process Image.

See Also

TcpProcessRecordProcessExtensionClass Class
Walter.Net.LookWhosTalking Namespace


TryGetTcpProcessRecords Method

TcpProcessRecordProcessExtensionClass..::..TryGetTcpProcessRecords Method

Tries to get the get TCP process records for a Process Image.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static bool TryGetTcpProcessRecords(
    ProcessImage image,
    out Nullable<IReadOnlyList<TcpProcessRecord>> connections
)

Parameters

image
Type: ProcessImage
The image.
connections
Type: Nullable <(Of <(<' IReadOnlyList <(Of <(<' TcpProcessRecord >)>)>>)>)>%
The connections if the process still exists and is communicating.

Return Value

true if any connections are found, false otherwise.

See Also

TcpProcessRecordProcessExtensionClass Class
Walter.Net.LookWhosTalking Namespace


Walter.Net.LookWhosTalking.Bulder Namespace

Classes

 | Class | Description
Public class | LookWhoisTalkingServiceExtension | Class LookWhoisTalkingServiceExtension allows you to register LookWhosTalking long term storage repository to the Dependency Injection system.


LookWhoisTalkingServiceExtension Class

Class LookWhoisTalkingServiceExtension allows you to register LookWhosTalking long term storage repository to the Dependency Injection system.

Namespace: Walter.Net.LookWhosTalking.Bulder
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static class LookWhoisTalkingServiceExtension

See Also

LookWhoisTalkingServiceExtension Members
Walter.Net.LookWhosTalking.Bulder Namespace


LookWhoisTalkingServiceExtension Members

The LookWhoisTalkingServiceExtension type exposes the following members.

Methods

Name | Description
AddWhoisTalkingRepository<(Of <<'(T>)>>)(T, DiskDetails) | Adds the talking processes repository saving data to disk.
AddWhoisTalkingRepository<(Of <<'(T>)>>)(T, ConnectionDetails) | Adds the talking processes repository saving data to database.
AddWhoisTalkingService<(Of <<'(T>)>>) | Add the LookWhoisTalking service

See Also

LookWhoisTalkingServiceExtension Class
Walter.Net.LookWhosTalking.Bulder Namespace


LookWhoisTalkingServiceExtension Methods

The LookWhoisTalkingServiceExtension type exposes the following members.

Methods

Name | Description
AddWhoisTalkingRepository<(Of <<'(T>)>>)(T, DiskDetails) | Adds the talking processes repository saving data to disk.
AddWhoisTalkingRepository<(Of <<'(T>)>>)(T, ConnectionDetails) | Adds the talking processes repository saving data to database.
AddWhoisTalkingService<(Of <<'(T>)>>) | Add the LookWhoisTalking service

See Also

LookWhoisTalkingServiceExtension Class
Walter.Net.LookWhosTalking.Bulder Namespace


AddWhoisTalkingRepository Method

LookWhoisTalkingServiceExtension..::..AddWhoisTalkingRepository Method

Overload List

Name | Description
AddWhoisTalkingRepository<(Of <<'(T>)>>)(T, DiskDetails) | Adds the talking processes repository saving data to disk.
AddWhoisTalkingRepository<(Of <<'(T>)>>)(T, ConnectionDetails) | Adds the talking processes repository saving data to database.

See Also

LookWhoisTalkingServiceExtension Class
LookWhoisTalkingServiceExtension Members
Walter.Net.LookWhosTalking.Bulder Namespace


AddWhoisTalkingRepository(T) Method (T, DiskDetails)

LookWhoisTalkingServiceExtension..::..AddWhoisTalkingRepository<(Of <(<'T>)>)> Method (T, DiskDetails)

Adds the talking processes repository saving data to disk.

Namespace: Walter.Net.LookWhosTalking.Bulder
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static T AddWhoisTalkingRepository<T>(
    T service,
    DiskDetails details
)
where T : IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
The service.
details
Type: Walter.Net.LookWhosTalking.Repository.Disk..::..DiskDetails
The details.

Exceptions

Exception | Condition
[System.ArgumentNullException] | service

See Also

LookWhoisTalkingServiceExtension Class
AddWhoisTalkingRepository Overload
Walter.Net.LookWhosTalking.Bulder Namespace


AddWhoisTalkingRepository(T) Method (T, ConnectionDetails)

LookWhoisTalkingServiceExtension..::..AddWhoisTalkingRepository<(Of <(<'T>)>)> Method (T, ConnectionDetails)

Adds the talking processes repository saving data to database.

Namespace: Walter.Net.LookWhosTalking.Bulder
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static T AddWhoisTalkingRepository<T>(
    T service,
    ConnectionDetails details
)
where T : IServiceCollection, IServiceCollection

Type Parameters

T

Parameters

service
Type: T
The service.
details
Type: ConnectionDetails
The details.

Exceptions

Exception | Condition
[System.ArgumentNullException] | service

See Also

LookWhoisTalkingServiceExtension Class
AddWhoisTalkingRepository Overload
Walter.Net.LookWhosTalking.Bulder Namespace


AddWhoisTalkingService(T) Method

LookWhoisTalkingServiceExtension..::..AddWhoisTalkingService<(Of <(<'T>)>)> Method

Add the LookWhoisTalking service

Namespace: Walter.Net.LookWhosTalking.Bulder
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static T AddWhoisTalkingService<T>(
    T service
)
where T : IServiceCollection

Type Parameters

T

Parameters

service
Type: T
the service to extend

Return Value

See Also

LookWhoisTalkingServiceExtension Class
Walter.Net.LookWhosTalking.Bulder Namespace


Walter.Net.LookWhosTalking.Model Namespace

Classes

 | Class | Description
Public class | WhoisTalkingFileUse | Class WhoisTalkingFileUse is returned by Files(TimeSpan) .
Public class | WhoisTalkingProcessNameUse | Class WhoisTalkingProcessNameUse is returned by Processes(TimeSpan) .

Structures

 | Structure | Description
Public structure | GetAbusePortsTriggerByIP | structure containing a counter for abuse by IP address
Public structure | GetTalkingByIP | structure containing a counter for talking detected by IP address


GetAbusePortsTriggerByIP Structure

structure containing a counter for abuse by IP address

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public struct GetAbusePortsTriggerByIP

See Also

GetAbusePortsTriggerByIP Members
Walter.Net.LookWhosTalking.Model Namespace


GetAbusePortsTriggerByIP Members

The GetAbusePortsTriggerByIP type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GetAbusePortsTriggerByIP) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | AbusePortCount | The total detected abuses
Public property | CIDR | the CIDR of the abusing IP

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetAbusePortsTriggerByIP Methods

The GetAbusePortsTriggerByIP type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GetAbusePortsTriggerByIP) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


Equals Method

GetAbusePortsTriggerByIP..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GetAbusePortsTriggerByIP) | Indicates whether the current object is equal to another object of the same type.

See Also

GetAbusePortsTriggerByIP Structure
GetAbusePortsTriggerByIP Members
Walter.Net.LookWhosTalking.Model Namespace


Equals Method (Nullable(Object))

GetAbusePortsTriggerByIP..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

GetAbusePortsTriggerByIP Structure
Equals Overload
Walter.Net.LookWhosTalking.Model Namespace


Equals Method (GetAbusePortsTriggerByIP)

GetAbusePortsTriggerByIP..::..Equals Method (GetAbusePortsTriggerByIP)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    GetAbusePortsTriggerByIP other
)

Parameters

other
Type: Walter.Net.LookWhosTalking.Model..::..GetAbusePortsTriggerByIP
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

GetAbusePortsTriggerByIP Structure
Equals Overload
Walter.Net.LookWhosTalking.Model Namespace


GetHashCode Method

GetAbusePortsTriggerByIP..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetAbusePortsTriggerByIP Operators

The GetAbusePortsTriggerByIP type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


Equality Operator

GetAbusePortsTriggerByIP..::..Equality Operator

Implements the == operator.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static bool operator ==(
    GetAbusePortsTriggerByIP left,
    GetAbusePortsTriggerByIP right
)

Parameters

left
Type: Walter.Net.LookWhosTalking.Model..::..GetAbusePortsTriggerByIP
The left.
right
Type: Walter.Net.LookWhosTalking.Model..::..GetAbusePortsTriggerByIP
The right.

Return Value

The result of the operator.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


Inequality Operator

GetAbusePortsTriggerByIP..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static bool operator !=(
    GetAbusePortsTriggerByIP left,
    GetAbusePortsTriggerByIP right
)

Parameters

left
Type: Walter.Net.LookWhosTalking.Model..::..GetAbusePortsTriggerByIP
The left.
right
Type: Walter.Net.LookWhosTalking.Model..::..GetAbusePortsTriggerByIP
The right.

Return Value

The result of the operator.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetAbusePortsTriggerByIP Properties

The GetAbusePortsTriggerByIP type exposes the following members.

Properties

 | Name | Description
Public property | AbusePortCount | The total detected abuses
Public property | CIDR | the CIDR of the abusing IP

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


AbusePortCount Property

GetAbusePortsTriggerByIP..::..AbusePortCount Property

The total detected abuses

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int AbusePortCount { get; set; }

Field Value

The abuse port count.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


CIDR Property

GetAbusePortsTriggerByIP..::..CIDR Property

the CIDR of the abusing IP

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public long CIDR { get; set; }

Field Value

The cidr.

See Also

GetAbusePortsTriggerByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetTalkingByIP Structure

structure containing a counter for talking detected by IP address

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public struct GetTalkingByIP

See Also

GetTalkingByIP Members
Walter.Net.LookWhosTalking.Model Namespace


GetTalkingByIP Members

The GetTalkingByIP type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GetTalkingByIP) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | CIDR | the CIDR of the abusing IP
Public property | TalkingDetected | The total detected interactions to-date

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetTalkingByIP Methods

The GetTalkingByIP type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GetTalkingByIP) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


Equals Method

GetTalkingByIP..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GetTalkingByIP) | Indicates whether the current object is equal to another object of the same type.

See Also

GetTalkingByIP Structure
GetTalkingByIP Members
Walter.Net.LookWhosTalking.Model Namespace


Equals Method (Nullable(Object))

GetTalkingByIP..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

GetTalkingByIP Structure
Equals Overload
Walter.Net.LookWhosTalking.Model Namespace


Equals Method (GetTalkingByIP)

GetTalkingByIP..::..Equals Method (GetTalkingByIP)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public bool Equals(
    GetTalkingByIP other
)

Parameters

other
Type: Walter.Net.LookWhosTalking.Model..::..GetTalkingByIP
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

GetTalkingByIP Structure
Equals Overload
Walter.Net.LookWhosTalking.Model Namespace


GetHashCode Method

GetTalkingByIP..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetTalkingByIP Operators

The GetTalkingByIP type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


Equality Operator

GetTalkingByIP..::..Equality Operator

Implements the == operator.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static bool operator ==(
    GetTalkingByIP left,
    GetTalkingByIP right
)

Parameters

left
Type: Walter.Net.LookWhosTalking.Model..::..GetTalkingByIP
The left.
right
Type: Walter.Net.LookWhosTalking.Model..::..GetTalkingByIP
The right.

Return Value

The result of the operator.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


Inequality Operator

GetTalkingByIP..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public static bool operator !=(
    GetTalkingByIP left,
    GetTalkingByIP right
)

Parameters

left
Type: Walter.Net.LookWhosTalking.Model..::..GetTalkingByIP
The left.
right
Type: Walter.Net.LookWhosTalking.Model..::..GetTalkingByIP
The right.

Return Value

The result of the operator.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


GetTalkingByIP Properties

The GetTalkingByIP type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | the CIDR of the abusing IP
Public property | TalkingDetected | The total detected interactions to-date

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


CIDR Property

GetTalkingByIP..::..CIDR Property

the CIDR of the abusing IP

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public long CIDR { get; set; }

Field Value

The cidr.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


TalkingDetected Property

GetTalkingByIP..::..TalkingDetected Property

The total detected interactions to-date

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int TalkingDetected { get; set; }

Field Value

The talking detected.

See Also

GetTalkingByIP Structure
Walter.Net.LookWhosTalking.Model Namespace


WhoisTalkingFileUse Class

Class WhoisTalkingFileUse is returned by Files(TimeSpan) .

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public sealed class WhoisTalkingFileUse

See Also

WhoisTalkingFileUse Members
Walter.Net.LookWhosTalking.Model Namespace
ITalkingProcessesReportingDatabase..::..Files(TimeSpan)
ITalkingProcessesReportingDatabase..::..Query(IPAddress, TimeSpan)


WhoisTalkingFileUse Members

The WhoisTalkingFileUse type exposes the following members.

Constructors

 | Name | Description
Public method | WhoisTalkingFileUse | Initializes a new instance of the WhoisTalkingFileUse class.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | File | Gets the file.

See Also

WhoisTalkingFileUse Class
Walter.Net.LookWhosTalking.Model Namespace


WhoisTalkingFileUse Constructor

Initializes a new instance of the WhoisTalkingFileUse class.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public WhoisTalkingFileUse(
    FileInfo file,
    int count
)

Parameters

file
Type: FileInfo
The file.
count
Type: Int32
The count.

See Also

WhoisTalkingFileUse Class
Walter.Net.LookWhosTalking.Model Namespace


WhoisTalkingFileUse Properties

The WhoisTalkingFileUse type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | File | Gets the file.

See Also

WhoisTalkingFileUse Class
Walter.Net.LookWhosTalking.Model Namespace


Count Property

WhoisTalkingFileUse..::..Count Property

Gets the count.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int Count { get; }

Field Value

The count.

See Also

WhoisTalkingFileUse Class
Walter.Net.LookWhosTalking.Model Namespace


File Property

WhoisTalkingFileUse..::..File Property

Gets the file.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public FileInfo File { get; }

Field Value

The file.

See Also

WhoisTalkingFileUse Class
Walter.Net.LookWhosTalking.Model Namespace


WhoisTalkingProcessNameUse Class

Class WhoisTalkingProcessNameUse is returned by Processes(TimeSpan) .

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public sealed class WhoisTalkingProcessNameUse

See Also

WhoisTalkingProcessNameUse Members
Walter.Net.LookWhosTalking.Model Namespace
ITalkingProcessesReportingDatabase..::..Processes(TimeSpan)
ITalkingProcessesReportingDatabase..::..Query(IPAddress, TimeSpan)


WhoisTalkingProcessNameUse Members

The WhoisTalkingProcessNameUse type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | ProcessName | Gets the name of the process.

See Also

WhoisTalkingProcessNameUse Class
Walter.Net.LookWhosTalking.Model Namespace


WhoisTalkingProcessNameUse Properties

The WhoisTalkingProcessNameUse type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | ProcessName | Gets the name of the process.

See Also

WhoisTalkingProcessNameUse Class
Walter.Net.LookWhosTalking.Model Namespace


Count Property

WhoisTalkingProcessNameUse..::..Count Property

Gets the count.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public int Count { get; }

Field Value

The count.

See Also

WhoisTalkingProcessNameUse Class
Walter.Net.LookWhosTalking.Model Namespace


ProcessName Property

WhoisTalkingProcessNameUse..::..ProcessName Property

Gets the name of the process.

Namespace: Walter.Net.LookWhosTalking.Model
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public string ProcessName { get; }

Field Value

The name of the process.

See Also

WhoisTalkingProcessNameUse Class
Walter.Net.LookWhosTalking.Model Namespace


Walter.Net.LookWhosTalking.Repository Namespace

Interfaces

 | Interface | Description
Public interface | ITalkingProcessesReportingDatabase | Repository containing long term storage for Communication history of the server and the web application
Public interface | ITalkingProcessesRepository | Interface ITalkingProcessesRepository and allows to access long term storage for accessing information to the talking repository Implements the ITalkingProcessesReportingDatabase


ITalkingProcessesReportingDatabase Interface

Repository containing long term storage for Communication history of the server and the web application

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public interface ITalkingProcessesReportingDatabase

Remarks

This repository allows for forensic analysis of communications between the server hosting the application and external resources outside of the LAN.

See Also

ITalkingProcessesReportingDatabase Members
Walter.Net.LookWhosTalking.Repository Namespace


ITalkingProcessesReportingDatabase Members

The ITalkingProcessesReportingDatabase type exposes the following members.

Methods

 | Name | Description
Public method | Connections | Returns all MapLocations that the server is known to have communicated on
Public method | Files | Returns a list of applications or libraries that have been recorded to communicate with external services
Public method | IPAddresses | List of distinct WAN addresses that the server hosting the web application has been known to communicate with
Public method | Processes | Returns a list of applications or libraries that have been recorded to communicate with external services
Public method | Query(IPAddress, TimeSpan) | Get all communications to a given IP address and time window
Public method | Query(TimeSpan) | Get all communications to a time window
Public method | Query(DateTime, DateTime) | Get all communications to a date UTC range.
Public method | Query(String, TimeSpan) | Get all communications by a process for a given time period.
Public method | Query(FileInfo, TimeSpan) | Get all communications by a EXE or DLL for a given time period.
Public method | Query(DirectoryInfo, TimeSpan) | Get all communications by a that where initiated by applications located in a given directory for a given time period.

See Also

ITalkingProcessesReportingDatabase Interface
Walter.Net.LookWhosTalking.Repository Namespace


ITalkingProcessesReportingDatabase Methods

The ITalkingProcessesReportingDatabase type exposes the following members.

Methods

 | Name | Description
Public method | Connections | Returns all MapLocations that the server is known to have communicated on
Public method | Files | Returns a list of applications or libraries that have been recorded to communicate with external services
Public method | IPAddresses | List of distinct WAN addresses that the server hosting the web application has been known to communicate with
Public method | Processes | Returns a list of applications or libraries that have been recorded to communicate with external services
Public method | Query(IPAddress, TimeSpan) | Get all communications to a given IP address and time window
Public method | Query(TimeSpan) | Get all communications to a time window
Public method | Query(DateTime, DateTime) | Get all communications to a date UTC range.
Public method | Query(String, TimeSpan) | Get all communications by a process for a given time period.
Public method | Query(FileInfo, TimeSpan) | Get all communications by a EXE or DLL for a given time period.
Public method | Query(DirectoryInfo, TimeSpan) | Get all communications by a that where initiated by applications located in a given directory for a given time period.

See Also

ITalkingProcessesReportingDatabase Interface
Walter.Net.LookWhosTalking.Repository Namespace


Connections Method

ITalkingProcessesReportingDatabase..::..Connections Method

Returns all MapLocations that the server is known to have communicated on

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<IMapLocation> Connections(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The Time Window to search

Return Value

List of map locations

Remarks

This method requires that you have a city level geographical provider, you could use NuGet package Walter.Web.FireWall.Geo.MaxMind

See Also

ITalkingProcessesReportingDatabase Interface
Walter.Net.LookWhosTalking.Repository Namespace


Files Method

ITalkingProcessesReportingDatabase..::..Files Method

Returns a list of applications or libraries that have been recorded to communicate with external services

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<WhoisTalkingFileUse> Files(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The Time Window to include

Return Value

List of files that where used to communicate with. These files may no longer exist on disk

See Also

ITalkingProcessesReportingDatabase Interface
Walter.Net.LookWhosTalking.Repository Namespace


IPAddresses Method

ITalkingProcessesReportingDatabase..::..IPAddresses Method

List of distinct WAN addresses that the server hosting the web application has been known to communicate with

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<IPAddress> IPAddresses(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The Time Window to include

Return Value

Distinct list of IP addresses

See Also

ITalkingProcessesReportingDatabase Interface
Walter.Net.LookWhosTalking.Repository Namespace


Processes Method

ITalkingProcessesReportingDatabase..::..Processes Method

Returns a list of applications or libraries that have been recorded to communicate with external services

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<WhoisTalkingProcessNameUse> Processes(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The Time Window to include

Return Value

List of files that where used to communicate with. These files may no longer exist on disk

See Also

ITalkingProcessesReportingDatabase Interface
Walter.Net.LookWhosTalking.Repository Namespace


Query Method

ITalkingProcessesReportingDatabase..::..Query Method

Overload List

 | Name | Description
Public method | Query(IPAddress, TimeSpan) | Get all communications to a given IP address and time window
Public method | Query(TimeSpan) | Get all communications to a time window
Public method | Query(DateTime, DateTime) | Get all communications to a date UTC range.
Public method | Query(String, TimeSpan) | Get all communications by a process for a given time period.
Public method | Query(FileInfo, TimeSpan) | Get all communications by a EXE or DLL for a given time period.
Public method | Query(DirectoryInfo, TimeSpan) | Get all communications by a that where initiated by applications located in a given directory for a given time period.

See Also

ITalkingProcessesReportingDatabase Interface
ITalkingProcessesReportingDatabase Members
Walter.Net.LookWhosTalking.Repository Namespace


Query Method (IPAddress, TimeSpan)

ITalkingProcessesReportingDatabase..::..Query Method (IPAddress, TimeSpan)

Get all communications to a given IP address and time window

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
The address to get the entries for
timeSpan
Type: TimeSpan
The Time Window to search

Return Value

List of Records showing communications with the IP address for a given time period

Exceptions

Exception | Condition
[ArgumentNullException] | Address is required

See Also

ITalkingProcessesReportingDatabase Interface
Query Overload
Walter.Net.LookWhosTalking.Repository Namespace


Query Method (TimeSpan)

ITalkingProcessesReportingDatabase..::..Query Method (TimeSpan)

Get all communications to a time window

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The Time Window to search

Return Value

List of Records showing communications for a given time period

See Also

ITalkingProcessesReportingDatabase Interface
Query Overload
Walter.Net.LookWhosTalking.Repository Namespace


Query Method (DateTime, DateTime)

ITalkingProcessesReportingDatabase..::..Query Method (DateTime, DateTime)

Get all communications to a date UTC range.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    DateTime from,
    DateTime till
)

Parameters

from
Type: DateTime
Start of the date range
till
Type: DateTime
The end of the date range

Return Value

List of Records showing communications for a given time period

See Also

ITalkingProcessesReportingDatabase Interface
Query Overload
Walter.Net.LookWhosTalking.Repository Namespace


Query Method (String, TimeSpan)

ITalkingProcessesReportingDatabase..::..Query Method (String, TimeSpan)

Get all communications by a process for a given time period.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    string process,
    TimeSpan timeSpan
)

Parameters

process
Type: String
The name of the process
timeSpan
Type: TimeSpan
The Time Window to search

Return Value

List of Records showing communications for a process

Exceptions

Exception | Condition
[ArgumentNullException] | process is required

See Also

ITalkingProcessesReportingDatabase Interface
Query Overload
Walter.Net.LookWhosTalking.Repository Namespace


Query Method (FileInfo, TimeSpan)

ITalkingProcessesReportingDatabase..::..Query Method (FileInfo, TimeSpan)

Get all communications by a EXE or DLL for a given time period.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    FileInfo file,
    TimeSpan timeSpan
)

Parameters

file
Type: FileInfo
The file interested in, if you are interested of all the files located in more than 1 directory then use only the file and leave away the path (can be a deleted file)
timeSpan
Type: TimeSpan
The Time Window to search

Return Value

List of Records showing communications for a process

Exceptions

Exception | Condition
[ArgumentNullException] | file is required

See Also

ITalkingProcessesReportingDatabase Interface
Query Overload
Walter.Net.LookWhosTalking.Repository Namespace


Query Method (DirectoryInfo, TimeSpan)

ITalkingProcessesReportingDatabase..::..Query Method (DirectoryInfo, TimeSpan)

Get all communications by a that where initiated by applications located in a given directory for a given time period.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    DirectoryInfo directory,
    TimeSpan timeSpan
)

Parameters

directory
Type: DirectoryInfo
The directory to search (can be a deleted directory)
timeSpan
Type: TimeSpan
The Time Window to search

Return Value

List of Records showing communications for a process

Exceptions

Exception | Condition
[ArgumentNullException] | directory is required

See Also

ITalkingProcessesReportingDatabase Interface
Query Overload
Walter.Net.LookWhosTalking.Repository Namespace


ITalkingProcessesRepository Interface

Interface ITalkingProcessesRepository and allows to access long term storage for accessing information to the talking repository Implements the ITalkingProcessesReportingDatabase

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public interface ITalkingProcessesRepository : ITalkingProcessesReportingDatabase

See Also

ITalkingProcessesRepository Members
Walter.Net.LookWhosTalking.Repository Namespace
Walter.Net.LookWhosTalking.Repository..::..ITalkingProcessesReportingDatabase


ITalkingProcessesRepository Members

The ITalkingProcessesRepository type exposes the following members.

Methods

 | Name | Description
Public method | GetAbuseTriggerByIP | get the abuse recorded for a ip range
Public method | GetTalkingByIP | Gets the talking by done by an ip.
Public method | Query | get the list of processes that are talking between a date range as well as an IP range
Public method | Update | Updates this instance.
Public method | WhiteListTcpProcessRecordApplication | Whites the list TCP process record for a given application.

Properties

 | Name | Description
Public property | Retention | retention period to use for the data
Public property | SafeDiskOperations | interface responsible for performing safe disk operations. if not assigned no safe disk activity will be performed

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


ITalkingProcessesRepository Methods

The ITalkingProcessesRepository type exposes the following members.

Methods

 | Name | Description
Public method | GetAbuseTriggerByIP | get the abuse recorded for a ip range
Public method | GetTalkingByIP | Gets the talking by done by an ip.
Public method | Query | get the list of processes that are talking between a date range as well as an IP range
Public method | Update | Updates this instance.
Public method | WhiteListTcpProcessRecordApplication | Whites the list TCP process record for a given application.

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


GetAbuseTriggerByIP Method

ITalkingProcessesRepository..::..GetAbuseTriggerByIP Method

get the abuse recorded for a ip range

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<GetAbusePortsTriggerByIP> GetAbuseTriggerByIP(
    long cidrFrom,
    long cidrTill,
    DateTime first,
    DateTime last
)

Parameters

cidrFrom
Type: Int64
cidrTill
Type: Int64
first
Type: DateTime
last
Type: DateTime

Return Value

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


GetTalkingByIP Method

ITalkingProcessesRepository..::..GetTalkingByIP Method

Gets the talking by done by an ip.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<GetTalkingByIP> GetTalkingByIP(
    long cidrFrom,
    long cidrTill,
    DateTime first,
    DateTime last,
    bool exclWhiteListed
)

Parameters

cidrFrom
Type: Int64
The cidr from.
cidrTill
Type: Int64
The cidr till.
first
Type: DateTime
The first.
last
Type: DateTime
The last.
exclWhiteListed
Type: Boolean
if set to true [exclude white listed].

Return Value

List<GetTalkingByIP>.

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


Query Method

ITalkingProcessesRepository..::..Query Method

get the list of processes that are talking between a date range as well as an IP range

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
IReadOnlyList<TcpProcessHistoricRecord> Query(
    long from,
    long till,
    DateTime first,
    DateTime last
)

Parameters

from
Type: Int64
till
Type: Int64
first
Type: DateTime
last
Type: DateTime

Return Value

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


Update Method

ITalkingProcessesRepository..::..Update Method

Updates this instance.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
void Update()

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


WhiteListTcpProcessRecordApplication Method

ITalkingProcessesRepository..::..WhiteListTcpProcessRecordApplication Method

Whites the list TCP process record for a given application.

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
void WhiteListTcpProcessRecordApplication(
    FileInfo file
)

Parameters

file
Type: FileInfo
The file to use.

Remarks

White-listing will not stop the recording of the communication

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


ITalkingProcessesRepository Properties

The ITalkingProcessesRepository type exposes the following members.

Properties

 | Name | Description
Public property | Retention | retention period to use for the data
Public property | SafeDiskOperations | interface responsible for performing safe disk operations. if not assigned no safe disk activity will be performed

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


Retention Property

ITalkingProcessesRepository..::..Retention Property

retention period to use for the data

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
TimeSpan Retention { get; set; }

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


SafeDiskOperations Property

ITalkingProcessesRepository..::..SafeDiskOperations Property

interface responsible for performing safe disk operations. if not assigned no safe disk activity will be performed

Namespace: Walter.Net.LookWhosTalking.Repository
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
Nullable<IControlledDiskIO> SafeDiskOperations { get; }

Remarks

This provides access to write and delete disk activity

See Also

ITalkingProcessesRepository Interface
Walter.Net.LookWhosTalking.Repository Namespace


Walter.Net.LookWhosTalking.Repository.Disk Namespace

Classes

 | Class | Description
Public class | DiskDetails | Class DiskDetails.


DiskDetails Class

Class DiskDetails.

Namespace: Walter.Net.LookWhosTalking.Repository.Disk
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public class DiskDetails

See Also

DiskDetails Members
Walter.Net.LookWhosTalking.Repository.Disk Namespace


DiskDetails Members

The DiskDetails type exposes the following members.

Properties

 | Name | Description
Public property | AppData | Gets or sets the application data.
Public property | Retention | Gets or sets the retention.

See Also

DiskDetails Class
Walter.Net.LookWhosTalking.Repository.Disk Namespace


DiskDetails Properties

The DiskDetails type exposes the following members.

Properties

 | Name | Description
Public property | AppData | Gets or sets the application data.
Public property | Retention | Gets or sets the retention.

See Also

DiskDetails Class
Walter.Net.LookWhosTalking.Repository.Disk Namespace


AppData Property

DiskDetails..::..AppData Property

Gets or sets the application data.

Namespace: Walter.Net.LookWhosTalking.Repository.Disk
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public DirectoryInfo AppData { get; set; }

Field Value

The application data.

See Also

DiskDetails Class
Walter.Net.LookWhosTalking.Repository.Disk Namespace


Retention Property

DiskDetails..::..Retention Property

Gets or sets the retention.

Namespace: Walter.Net.LookWhosTalking.Repository.Disk
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public TimeSpan Retention { get; set; }

Field Value

The retention.

See Also

DiskDetails Class
Walter.Net.LookWhosTalking.Repository.Disk Namespace


Walter.Net.Networking Namespace

Classes

 | Class | Description
Public class | DnsEntry | DNS Entry contains data as returned by the domain name system and can be serialized to disk or database
Public class | DnsManager | DNS Manager allows for performing DNS related activities.
Public class | LocalNetwork | This class supports a set of methods that allow working with the local network.
Public class | LocalTracert | Provide access to trace information
Public class | NetworkException | Class NetworkException. Implements the [System.Exception]
Public class | NetworkExtensionMethods | Class Network Extension Methods adds additional network related capabilities to networking related classes like IPAddress and Uri.
Public class | RipeClient | Class RipeClient. Implements the [System.IDisposable]
Public class | RuntimeValues | Semi-Constant values manipulated at runtime, usually they do not change during a session and used by the framework as needed
Public class | TraceEntry | Class TraceRout data object.
Public class | UriHelpers | Class UriHelpers contain helper methods for use in project.

Structures

 | Structure | Description
Public structure | MacIpPair | the Struct MacIpPair contains the MAC and IP address pairs for a given adapter

Interfaces

 | Interface | Description
Public interface | IDnsManager | The .net framework DNS system is too slow as well as limited in DNS actions that it supports. This interface resolves solves this by making it lightning fast was well as add additional DNS related tasks
Public interface | IInternalWhoisContactDetails | Interface IInternalWhoisContactDetails is like an IWhoisContactDetails address card for a given entry.
Public interface | IIPAddressGeo | Interface IIPAddressGeo
Public interface | IKeyCDNClient | Interface IKeyCDNClient
Public interface | IWhois | Interface IWhois shows details of a given ISP or other entity with a public DNS name
Public interface | IWhoisContactDetails | Interface IWhoIsContactDetails is like an address card for a given entry. Most data types allow null as data is processed by humans in the respected ICAN related organizations and are out of our control.
Public interface | IWhoisContactDetailsCollection | Interface IWhoisContactDetailsCollection allows you to iterate over contact details of a given whois entry
Public interface | IWhoisCounters | WhoisCounters
Public interface | IWhoisIPRange | Interface containing the Whois data storage for describing the IP ranges assigned to a ISP
Public interface | IWhoisProvider | Provider of Who-Is data

Enumerations

 | Enumeration | Description
Public enumeration | ArpStatus | Enum ArpStatus states the status of a MAC/ IP ARP call
Public enumeration | CommunicationScopes | The communication scope of a IPAddress relative to the local computer
Public enumeration | IpConnectionTypesFiter | Filter used by some actions to get a specific scope
Public enumeration | ISPTrustLevels | Internet Service provider trust setting
Public enumeration | Scope | Sope of the networking to focus on
Public enumeration | WhoisContactTypes | Enum WhoisContactTypes marks the role that a WHOIS contact has for the public. This can be a organizational group or a person
Public enumeration | WhoisStatus | Enum WhoisStatus


ArpStatus Enumeration

Enum ArpStatus states the status of a MAC/ IP ARP call

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum ArpStatus

Members

Member name | Description
Other | other status
Invalid | The entry is invalid
Dynamic | The entry is dynamic
Static | The entry is static

See Also

Walter.Net.Networking Namespace


CommunicationScopes Enumeration

The communication scope of a IPAddress relative to the local computer

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum CommunicationScopes

Members

Member name | Description
NotSet | Scope was not set
MachineInternal | Communication is machine internal
LAN | Communication within the local area network
WAN | Connection is over the wide area network (Internet)

See Also

Walter.Net.Networking Namespace


DnsEntry Class

DNS Entry contains data as returned by the domain name system and can be serialized to disk or database

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class DnsEntry

See Also

DnsEntry Members
Walter.Net.Networking Namespace


DnsEntry Members

The DnsEntry type exposes the following members.

Constructors

 | Name | Description
Public method | DnsEntry | Initializes a new instance of the DnsEntry class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DnsEntry>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Retrieve the DNS entry as meaningful string representation
 | TryParse | Tries to parse the Json string to populate a DNS entry

Properties

 | Name | Description
Public property | CIDR | Gets or sets the CIDR (Classless Inter-Domain Routing).
Public property | Country | Country the DNS came from
Public property | CreatedUTC | The time the DNS entry was created
Public property | DnsAliasNames | Gets or sets the DNS alias names.
Public property | DnsDomainName | The Domain name of the DNS server
Public property | DnsIPAddress | Gets or sets the IP address belonging to the DnsName.
Public property | DnsName | Gets or sets the name of the DNS.
Public property | HostName | The Raw host-name returned by the DNS server
Public property | IpAdresses | Gets or sets the IP addresses.
Public property | Source | THe host name or IP address used to generate this DNS entry

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsEntry Constructor

Initializes a new instance of the DnsEntry class.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public DnsEntry()

Remarks

DNS Entry contains data as returned by the domain name system and can be serialized to disk or database

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsEntry Methods

The DnsEntry type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DnsEntry>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Retrieve the DNS entry as meaningful string representation
 | TryParse | Tries to parse the Json string to populate a DNS entry

See Also

DnsEntry Class
Walter.Net.Networking Namespace


Equals Method

DnsEntry..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DnsEntry>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

DnsEntry Class
DnsEntry Members
Walter.Net.Networking Namespace


Equals Method (Nullable(Object))

DnsEntry..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

DnsEntry Class
Equals Overload
Walter.Net.Networking Namespace


Equals Method (Nullable(DnsEntry))

DnsEntry..::..Equals Method (Nullable<(Of <(<'DnsEntry>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool Equals(
    Nullable<DnsEntry> other
)

Parameters

other
Type: Nullable <(Of <(<' DnsEntry >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

DnsEntry Class
Equals Overload
Walter.Net.Networking Namespace


GetHashCode Method

DnsEntry..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


SetId Method

DnsEntry..::..SetId Method

Sets the technical identifier.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


SetValues Method

DnsEntry..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


ToString Method

DnsEntry..::..ToString Method

Retrieve the DNS entry as meaningful string representation

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string ToString()

Return Value

String value of the data formated as {IPAddress}:{DnsName}

See Also

DnsEntry Class
Walter.Net.Networking Namespace


TryParse Method

DnsEntry..::..TryParse Method

Tries to parse the Json string to populate a DNS entry

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryParse(
    string json,
    out Nullable<DnsEntry> dns
)

Parameters

json
Type: String
The json.
dns
Type: Nullable <(Of <(<' DnsEntry >)>)>%
The DNS.

Return Value

true if XXXX, false otherwise.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsEntry Properties

The DnsEntry type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the CIDR (Classless Inter-Domain Routing).
Public property | Country | Country the DNS came from
Public property | CreatedUTC | The time the DNS entry was created
Public property | DnsAliasNames | Gets or sets the DNS alias names.
Public property | DnsDomainName | The Domain name of the DNS server
Public property | DnsIPAddress | Gets or sets the IP address belonging to the DnsName.
Public property | DnsName | Gets or sets the name of the DNS.
Public property | HostName | The Raw host-name returned by the DNS server
Public property | IpAdresses | Gets or sets the IP addresses.
Public property | Source | THe host name or IP address used to generate this DNS entry

See Also

DnsEntry Class
Walter.Net.Networking Namespace


CIDR Property

DnsEntry..::..CIDR Property

Gets or sets the CIDR (Classless Inter-Domain Routing).

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public long CIDR { get; set; }

Field Value

The CIDR.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


Country Property

DnsEntry..::..Country Property

Country the DNS came from

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public GeoLocation Country { get; set; }

Remarks

Requires as [IGeoResolver] to be registered with the DI infrastructure

See Also

DnsEntry Class
Walter.Net.Networking Namespace


CreatedUTC Property

DnsEntry..::..CreatedUTC Property

The time the DNS entry was created

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public DateTime CreatedUTC { get; }

Remarks

Indicates the age of the DNS entry allowing you to re-query it if you need to

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsAliasNames Property

DnsEntry..::..DnsAliasNames Property

Gets or sets the DNS alias names.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string[] DnsAliasNames { get; set; }

Field Value

The DNS alias names.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsDomainName Property

DnsEntry..::..DnsDomainName Property

The Domain name of the DNS server

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string DnsDomainName { get; set; }

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsIPAddress Property

DnsEntry..::..DnsIPAddress Property

Gets or sets the IP address belonging to the DnsName.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string DnsIPAddress { get; set; }

Field Value

The IP address.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsName Property

DnsEntry..::..DnsName Property

Gets or sets the name of the DNS.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string DnsName { get; set; }

Field Value

The name of the DNS.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


HostName Property

DnsEntry..::..HostName Property

The Raw host-name returned by the DNS server

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string HostName { get; set; }

See Also

DnsEntry Class
Walter.Net.Networking Namespace


IpAdresses Property

DnsEntry..::..IpAdresses Property

Gets or sets the IP addresses.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string[] IpAdresses { get; set; }

Field Value

The IP addresses associated with this host entry.

See Also

DnsEntry Class
Walter.Net.Networking Namespace


Source Property

DnsEntry..::..Source Property

THe host name or IP address used to generate this DNS entry

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Source { get; set; }

See Also

DnsEntry Class
Walter.Net.Networking Namespace


DnsManager Class

DNS Manager allows for performing DNS related activities.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class DnsManager : IDnsManager

Remarks

If at all possible use the instantiated version with IMemoryCache for performance considerations

See Also

DnsManager Members
Walter.Net.Networking Namespace


DnsManager Members

The DnsManager type exposes the following members.

Constructors

 | Name | Description
Public method | DnsManager | Initializes a new instance of the DnsManager class.

Methods

 | Name | Description
Public method | GetDnsAddress | Gets the IP addresses of your DNS Server(s) .
Public method | GetDnsServerNames | Gets the DNS server names that you are using.
Public method | GetGeoLocations | Get Geographical locations of the ISP as an asynchronous operation.
Public method | GetGeoLocationsAsync | Get Geographical locations of the ISP as an asynchronous operation.
Public method | GetHostEntry(String) | Get host entry of possible like the Dns class in the framework only really fast
Public method | GetHostEntry(IPAddress) | Get host entry like the Dns class in the framework only really fast
Public method | GetReverseDNS(String, Int32) | Resolve the DNS name of a domain or ip address
Public method | GetReverseDNS(String) | Resolve the DNS name of a domain or an IP address
Public method | Query | Gets the host entry.
Public method | TryGetHostEntry(IPAddress, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries the get host entry.
Public method | TryGetHostEntry(String, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries the get host entry.
 | TryQueryHostEntry | Queries the host entry and validates if it can be found.
Public method | WhoOwnsThis(IPAddress) | returns the responsible organization that owns the IP address.
Public method | WhoOwnsThis(DnsEntry) | returns the responsible organization that owns the IP address.
Public method | WhoOwnsThisAsync(IPAddress) | This finds-out who owns this DNS HostName (ISP), it's a WHOIS for DNS Names only and returns limited data like the company and contact details of the ISP.
Public method | WhoOwnsThisAsync(DnsEntry) | More detailed action that finds out who owns this DNS entry (ISP) and what IP range it manages, it's a WHOIS for DNS entries and usually contains a contact detail for abuse.

Properties

Name | Description
GeoResolver | Gets or sets the geographic resolver if registered.

See Also

DnsManager Class
Walter.Net.Networking Namespace


DnsManager Constructor

Initializes a new instance of the DnsManager class.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public DnsManager(
    Nullable<IMemoryCache> memoryCache,
    Nullable<ILoggerFactory> factory,
    Nullable<IGeoResolver> geoResolver
)

Parameters

memoryCache
Type: Nullable <(Of <(<'IMemoryCache>)>)>
The memory cache to use, if any.
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
Add a log factory if you would like to support logging
geoResolver
Type: Nullable <(Of <(<'IGeoResolver>)>)>
The geography resolver

See Also

DnsManager Class
Walter.Net.Networking Namespace


DnsManager Methods

The DnsManager type exposes the following members.

Methods

 | Name | Description
Public method | GetDnsAddress | Gets the IP addresses of your DNS Server(s) .
Public method | GetDnsServerNames | Gets the DNS server names that you are using.
Public method | GetGeoLocations | Get Geographical locations of the ISP as an asynchronous operation.
Public method | GetGeoLocationsAsync | Get Geographical locations of the ISP as an asynchronous operation.
Public method | GetHostEntry(String) | Get host entry of possible like the Dns class in the framework only really fast
Public method | GetHostEntry(IPAddress) | Get host entry like the Dns class in the framework only really fast
Public method | GetReverseDNS(String, Int32) | Resolve the DNS name of a domain or ip address
Public method | GetReverseDNS(String) | Resolve the DNS name of a domain or an IP address
Public method | Query | Gets the host entry.
Public method | TryGetHostEntry(IPAddress, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries the get host entry.
Public method | TryGetHostEntry(String, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries the get host entry.
 | TryQueryHostEntry | Queries the host entry and validates if it can be found.
Public method | WhoOwnsThis(IPAddress) | returns the responsible organization that owns the IP address.
Public method | WhoOwnsThis(DnsEntry) | returns the responsible organization that owns the IP address.
Public method | WhoOwnsThisAsync(IPAddress) | This finds-out who owns this DNS HostName (ISP), it's a WHOIS for DNS Names only and returns limited data like the company and contact details of the ISP.
Public method | WhoOwnsThisAsync(DnsEntry) | More detailed action that finds out who owns this DNS entry (ISP) and what IP range it manages, it's a WHOIS for DNS entries and usually contains a contact detail for abuse.

See Also

DnsManager Class
Walter.Net.Networking Namespace


GetDnsAddress Method

DnsManager..::..GetDnsAddress Method

Gets the IP addresses of your DNS Server(s) .

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IReadOnlyList<IPAddress> GetDnsAddress(
    bool includeLoopBack
)

Parameters

includeLoopBack
Type: Boolean
If true it will also return the server if the server is the DNS server and configured over loop-back address

Return Value

System.Collections.Generic.IReadOnlyList<System.Net.IPAddress>.

See Also

DnsManager Class
Walter.Net.Networking Namespace


GetDnsServerNames Method

DnsManager..::..GetDnsServerNames Method

Gets the DNS server names that you are using.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IReadOnlyList<string> GetDnsServerNames()

Return Value

System.Collections.Generic.List<System.String>.

See Also

DnsManager Class
Walter.Net.Networking Namespace


GetGeoLocations Method

DnsManager..::..GetGeoLocations Method

Get Geographical locations of the ISP as an asynchronous operation.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public GeoLocation GetGeoLocations(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address to query.

Return Value

Task<GeoLocation> of the ISP.

See Also

DnsManager Class
Walter.Net.Networking Namespace


GetGeoLocationsAsync Method

DnsManager..::..GetGeoLocationsAsync Method

Get Geographical locations of the ISP as an asynchronous operation.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<GeoLocation> GetGeoLocationsAsync(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address to query.

Return Value

Task<GeoLocation> of the ISP.

See Also

DnsManager Class
Walter.Net.Networking Namespace


GetHostEntry Method

DnsManager..::..GetHostEntry Method

Overload List

 | Name | Description
Public method | GetHostEntry(String) | Get host entry of possible like the Dns class in the framework only really fast
Public method | GetHostEntry(IPAddress) | Get host entry like the Dns class in the framework only really fast

See Also

DnsManager Class
DnsManager Members
Walter.Net.Networking Namespace


GetHostEntry Method (String)

DnsManager..::..GetHostEntry Method (String)

Get host entry of possible like the Dns class in the framework only really fast

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IPHostEntry GetHostEntry(
    string ipAddressOrHostName
)

Parameters

ipAddressOrHostName
Type: String

Return Value

Exceptions

Exception | Condition
[SocketException] | An exception stating "No such host is known" if the host name does not resolve.

See Also

DnsManager Class
GetHostEntry Overload
Walter.Net.Networking Namespace


GetHostEntry Method (IPAddress)

DnsManager..::..GetHostEntry Method (IPAddress)

Get host entry like the Dns class in the framework only really fast

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IPHostEntry GetHostEntry(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address

Return Value

Host entry

Exceptions

Exception | Condition
[ArgumentNullException] | The address must be provided
[ArgumentException] | thrown if requesting public DNS on local ip address

See Also

DnsManager Class
GetHostEntry Overload
Walter.Net.Networking Namespace


GetReverseDNS Method

DnsManager..::..GetReverseDNS Method

Overload List

 | Name | Description
Public method | GetReverseDNS(String, Int32) | Resolve the DNS name of a domain or ip address
Public method | GetReverseDNS(String) | Resolve the DNS name of a domain or an IP address

See Also

DnsManager Class
DnsManager Members
Walter.Net.Networking Namespace


GetReverseDNS Method (String, Int32)

DnsManager..::..GetReverseDNS Method (String, Int32)

Resolve the DNS name of a domain or ip address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string GetReverseDNS(
    string hostNameOrAddress,
    int timeout
)

Parameters

hostNameOrAddress
Type: String
the name to resolve
timeout
Type: Int32
the timeout

Return Value

the resolved dns name

Exceptions

Exception | Condition
[SocketException] | An exception stating "No such host is known" if the host name does not resolve.
[ArgumentException] | Value must be provided

See Also

DnsManager Class
GetReverseDNS Overload
Walter.Net.Networking Namespace


GetReverseDNS Method (String)

DnsManager..::..GetReverseDNS Method (String)

Resolve the DNS name of a domain or an IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string GetReverseDNS(
    string hostNameOrAddress
)

Parameters

hostNameOrAddress
Type: String

Return Value

The DNS reverse proxy name

Exceptions

Exception | Condition
[SocketException] | An exception stating "No such host is known" if the host name does not resolve.
[ArgumentException] | Value must be provided

See Also

DnsManager Class
GetReverseDNS Overload
Walter.Net.Networking Namespace


Query Method

DnsManager..::..Query Method

Gets the host entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public DnsEntry Query(
    IPAddress address
)

Parameters

address
Type: IPAddress
Name IP address or host.

Return Value

DNS data structure.

Exceptions

Exception | Condition
[ArgumentNullException] | The IP or host name must be provided - ipAddressOrHostName
Walter.Net.Networking..::..NetworkException | Will throw a network exception if remote DNS server returned an error

Remarks

For IPv6, this may fail, since most IPv6 deployments do not register the reverse (PTR) record for an IPv6 address. So this method may return the string IPv6 literal as the fully-qualified domain (FQDN) host name in the HostName property.

See Also

DnsManager Class
Walter.Net.Networking Namespace


TryGetHostEntry Method

DnsManager..::..TryGetHostEntry Method

Overload List

 | Name | Description
Public method | TryGetHostEntry(IPAddress, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries the get host entry.
Public method | TryGetHostEntry(String, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries the get host entry.

See Also

DnsManager Class
DnsManager Members
Walter.Net.Networking Namespace


TryGetHostEntry Method (IPAddress, Nullable(IPHostEntry), Nullable(String))

DnsManager..::..TryGetHostEntry Method (IPAddress, Nullable<(Of <(<'IPHostEntry>)>)>%, Nullable<(Of <(<'String>)>)>%)

Tries the get host entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool TryGetHostEntry(
    IPAddress address,
    out Nullable<IPHostEntry> entry,
    out Nullable<string> errorMessage
)

Parameters

address
Type: IPAddress
The address.
entry
Type: Nullable <(Of <(<'IPHostEntry>)>)>%
The entry if all was okey else this will be null.
errorMessage
Type: Nullable <(Of <(<' String >)>)>%
The error if failed.

Return Value

true if no errors, false otherwise.

See Also

DnsManager Class
TryGetHostEntry Overload
Walter.Net.Networking Namespace


TryGetHostEntry Method (String, Nullable(IPHostEntry), Nullable(String))

DnsManager..::..TryGetHostEntry Method (String, Nullable<(Of <(<'IPHostEntry>)>)>%, Nullable<(Of <(<'String>)>)>%)

Tries the get host entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool TryGetHostEntry(
    string hostNameOrAddress,
    out Nullable<IPHostEntry> entry,
    out Nullable<string> errorMessage
)

Parameters

hostNameOrAddress
Type: String
The host name.
entry
Type: Nullable <(Of <(<'IPHostEntry>)>)>%
The entry if all was okey else this will be null.
errorMessage
Type: Nullable <(Of <(<' String >)>)>%
The error if failed.

Return Value

true if no errors, false otherwise.

See Also

DnsManager Class
TryGetHostEntry Overload
Walter.Net.Networking Namespace


TryQueryHostEntry Method

DnsManager..::..TryQueryHostEntry Method

Queries the host entry and validates if it can be found.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryQueryHostEntry(
    string ipAddressOrHostName,
    out IPHostEntry entry
)

Parameters

ipAddressOrHostName
Type: String
Name of the IP address or host.
entry
Type: IPHostEntry%
The host entry (will be empty if not found)

Return Value

true if found, false otherwise.

Exceptions

Exception | Condition
[ArgumentException] | The parameter ipAddressOrHostName cannot be null or whitespace - ipAddressOrHostName

Remarks

This data is not cashed. If you expect the data to stay the same use the instantiated DnsManager's method GetHostEntry.

See Also

DnsManager Class
Walter.Net.Networking Namespace


WhoOwnsThis Method

DnsManager..::..WhoOwnsThis Method

Overload List

 | Name | Description
Public method | WhoOwnsThis(IPAddress) | returns the responsible organization that owns the IP address.
Public method | WhoOwnsThis(DnsEntry) | returns the responsible organization that owns the IP address.

See Also

DnsManager Class
DnsManager Members
Walter.Net.Networking Namespace


WhoOwnsThis Method (IPAddress)

DnsManager..::..WhoOwnsThis Method (IPAddress)

returns the responsible organization that owns the IP address.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IWhois WhoOwnsThis(
    IPAddress ip
)

Parameters

ip
Type: IPAddress
The IP entry to resolve.

Return Value

IWhois of the ISP.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

DnsManager Class
WhoOwnsThis Overload
Walter.Net.Networking Namespace


WhoOwnsThis Method (DnsEntry)

DnsManager..::..WhoOwnsThis Method (DnsEntry)

returns the responsible organization that owns the IP address.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IWhois WhoOwnsThis(
    DnsEntry entry
)

Parameters

entry
Type: Walter.Net.Networking..::..DnsEntry
The DNS entry to resolve.

Return Value

IWhois of the ISP.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

DnsManager Class
WhoOwnsThis Overload
Walter.Net.Networking Namespace


WhoOwnsThisAsync Method

DnsManager..::..WhoOwnsThisAsync Method

Overload List

 | Name | Description
Public method | WhoOwnsThisAsync(IPAddress) | This finds-out who owns this DNS HostName (ISP), it's a WHOIS for DNS Names only and returns limited data like the company and contact details of the ISP.
Public method | WhoOwnsThisAsync(DnsEntry) | More detailed action that finds out who owns this DNS entry (ISP) and what IP range it manages, it's a WHOIS for DNS entries and usually contains a contact detail for abuse.

See Also

DnsManager Class
DnsManager Members
Walter.Net.Networking Namespace


WhoOwnsThisAsync Method (IPAddress)

DnsManager..::..WhoOwnsThisAsync Method (IPAddress)

This finds-out who owns this DNS HostName (ISP), it's a WHOIS for DNS Names only and returns limited data like the company and contact details of the ISP.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<IWhois> WhoOwnsThisAsync(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address to query.

Return Value

Whois data.

Exceptions

Exception | Condition
[ArgumentNullException] | address

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

DnsManager Class
WhoOwnsThisAsync Overload
Walter.Net.Networking Namespace


WhoOwnsThisAsync Method (DnsEntry)

DnsManager..::..WhoOwnsThisAsync Method (DnsEntry)

More detailed action that finds out who owns this DNS entry (ISP) and what IP range it manages, it's a WHOIS for DNS entries and usually contains a contact detail for abuse.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<IWhois> WhoOwnsThisAsync(
    DnsEntry entry
)

Parameters

entry
Type: Walter.Net.Networking..::..DnsEntry
The entry to populate.

Return Value

Task<Whois>.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

DnsManager Class
WhoOwnsThisAsync Overload
Walter.Net.Networking Namespace


DnsManager Properties

The DnsManager type exposes the following members.

Properties

Name | Description
GeoResolver | Gets or sets the geographic resolver if registered.

See Also

DnsManager Class
Walter.Net.Networking Namespace


GeoResolver Property

DnsManager..::..GeoResolver Property

Gets or sets the geographic resolver if registered.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Nullable<IGeoResolver> GeoResolver { get; set; }

Field Value

The resolver.

See Also

DnsManager Class
Walter.Net.Networking Namespace


IDnsManager Interface

The .net framework DNS system is too slow as well as limited in DNS actions that it supports. This interface resolves solves this by making it lightning fast was well as add additional DNS related tasks

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IDnsManager : IWhoisProvider

See Also

IDnsManager Members
Walter.Net.Networking Namespace


IDnsManager Members

The IDnsManager type exposes the following members.

Methods

 | Name | Description
Public method | GetDnsAddress | Gets the IP addresses of your DNS Server(s) .
Public method | GetDnsServerNames | get the name of your dns servers
Public method | GetGeoLocations | Returns the proximate Geo-location of a given IP address. it does this by looking at the location of the ISP that's providing the IP address
Public method | GetGeoLocationsAsync | Returns the proximate Geo-location of a given IP address. it does this by looking at the location of the ISP that's providing the IP address
Public method | GetHostEntry(IPAddress) | Get the host entry without using the Dns host entry of .net framework
Public method | GetHostEntry(String) | Get the host entry without using the DNS host entry of .net framework
Public method | GetReverseDNS(String) |
Public method | GetReverseDNS(String, Int32) | Resolve the DNS name of a domain or an IP address
Public method | Query | Returns the DnsEntry for a IP address
Public method | TryGetHostEntry(IPAddress, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries to get the HostEntry for a given IP address
Public method | TryGetHostEntry(String, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries to get the HostEntry for a given Host name or IP address

Properties

Name | Description
DefaultInstance | Gets or sets the default instance.

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


IDnsManager Methods

The IDnsManager type exposes the following members.

Methods

 | Name | Description
Public method | GetDnsAddress | Gets the IP addresses of your DNS Server(s) .
Public method | GetDnsServerNames | get the name of your dns servers
Public method | GetGeoLocations | Returns the proximate Geo-location of a given IP address. it does this by looking at the location of the ISP that's providing the IP address
Public method | GetGeoLocationsAsync | Returns the proximate Geo-location of a given IP address. it does this by looking at the location of the ISP that's providing the IP address
Public method | GetHostEntry(IPAddress) | Get the host entry without using the Dns host entry of .net framework
Public method | GetHostEntry(String) | Get the host entry without using the DNS host entry of .net framework
Public method | GetReverseDNS(String) |
Public method | GetReverseDNS(String, Int32) | Resolve the DNS name of a domain or an IP address
Public method | Query | Returns the DnsEntry for a IP address
Public method | TryGetHostEntry(IPAddress, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries to get the HostEntry for a given IP address
Public method | TryGetHostEntry(String, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries to get the HostEntry for a given Host name or IP address

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


GetDnsAddress Method

IDnsManager..::..GetDnsAddress Method

Gets the IP addresses of your DNS Server(s) .

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IReadOnlyList<IPAddress> GetDnsAddress(
    bool includeLoopBack
)

Parameters

includeLoopBack
Type: Boolean
If true it will also return the server if the server is the DNS server and configured over loop-back address

Return Value

System.Collections.Generic.IReadOnlyList<System.Net.IPAddress>.

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


GetDnsServerNames Method

IDnsManager..::..GetDnsServerNames Method

get the name of your dns servers

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IReadOnlyList<string> GetDnsServerNames()

Return Value

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


GetGeoLocations Method

IDnsManager..::..GetGeoLocations Method

Returns the proximate Geo-location of a given IP address. it does this by looking at the location of the ISP that's providing the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
GeoLocation GetGeoLocations(
    IPAddress address
)

Parameters

address
Type: IPAddress
the IP to query

Return Value

a approximate location, not as accurate as a IP 2 Location provider but close

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


GetGeoLocationsAsync Method

IDnsManager..::..GetGeoLocationsAsync Method

Returns the proximate Geo-location of a given IP address. it does this by looking at the location of the ISP that's providing the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Task<GeoLocation> GetGeoLocationsAsync(
    IPAddress address
)

Parameters

address
Type: IPAddress
the IP to query

Return Value

a approximate location, not as accurate as a IP 2 Location provider but close

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


GetHostEntry Method

IDnsManager..::..GetHostEntry Method

Overload List

 | Name | Description
Public method | GetHostEntry(IPAddress) | Get the host entry without using the Dns host entry of .net framework
Public method | GetHostEntry(String) | Get the host entry without using the DNS host entry of .net framework

See Also

IDnsManager Interface
IDnsManager Members
Walter.Net.Networking Namespace


GetHostEntry Method (IPAddress)

IDnsManager..::..GetHostEntry Method (IPAddress)

Get the host entry without using the Dns host entry of .net framework

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPHostEntry GetHostEntry(
    IPAddress address
)

Parameters

address
Type: IPAddress
the IP address

Return Value

host entry of a given IP address

See Also

IDnsManager Interface
GetHostEntry Overload
Walter.Net.Networking Namespace


GetHostEntry Method (String)

IDnsManager..::..GetHostEntry Method (String)

Get the host entry without using the DNS host entry of .net framework

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPHostEntry GetHostEntry(
    string ipAddressOrHostName
)

Parameters

ipAddressOrHostName
Type: String
a string containing an IP address or DNS name

Return Value

host entry of a given IP address or null if the input does not resolve

Exceptions

Exception | Condition
[SocketException] | An exception stating "No such host is known" if the host name does not resolve.

See Also

IDnsManager Interface
GetHostEntry Overload
Walter.Net.Networking Namespace


GetReverseDNS Method

IDnsManager..::..GetReverseDNS Method

Overload List

 | Name | Description
Public method | GetReverseDNS(String) |
Public method | GetReverseDNS(String, Int32) | Resolve the DNS name of a domain or an IP address

See Also

IDnsManager Interface
IDnsManager Members
Walter.Net.Networking Namespace


GetReverseDNS Method (String)

IDnsManager..::..GetReverseDNS Method (String)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string GetReverseDNS(
    string hostNameOrAddress
)

Parameters

hostNameOrAddress
Type: String

Return Value

Exceptions

Exception | Condition
[SocketException] | An exception stating "No such host is known" if the host name does not resolve.

See Also

IDnsManager Interface
GetReverseDNS Overload
Walter.Net.Networking Namespace


GetReverseDNS Method (String, Int32)

IDnsManager..::..GetReverseDNS Method (String, Int32)

Resolve the DNS name of a domain or an IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string GetReverseDNS(
    string hostNameOrAddress,
    int timeout
)

Parameters

hostNameOrAddress
Type: String
timeout
Type: Int32
How long you are willing to wait on the answer

Return Value

The DNS reverse proxy name

Exceptions

Exception | Condition
[SocketException] | An exception stating "No such host is known" if the host name does not resolve.

See Also

IDnsManager Interface
GetReverseDNS Overload
Walter.Net.Networking Namespace


Query Method

IDnsManager..::..Query Method

Returns the DnsEntry for a IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DnsEntry Query(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address

Return Value

the DNS entry if successful

Exceptions

Exception | Condition
[ArgumentNullException] | address must be provided
Walter.Net.Networking..::..NetworkException | If the remote DNS server returns a error message

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


TryGetHostEntry Method

IDnsManager..::..TryGetHostEntry Method

Overload List

 | Name | Description
Public method | TryGetHostEntry(IPAddress, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries to get the HostEntry for a given IP address
Public method | TryGetHostEntry(String, Nullable<(Of <<'(IPHostEntry>)>>)%, Nullable<(Of <<'(String>)>>)%) | Tries to get the HostEntry for a given Host name or IP address

See Also

IDnsManager Interface
IDnsManager Members
Walter.Net.Networking Namespace


TryGetHostEntry Method (IPAddress, Nullable(IPHostEntry), Nullable(String))

IDnsManager..::..TryGetHostEntry Method (IPAddress, Nullable<(Of <(<'IPHostEntry>)>)>%, Nullable<(Of <(<'String>)>)>%)

Tries to get the HostEntry for a given IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool TryGetHostEntry(
    IPAddress address,
    out Nullable<IPHostEntry> entry,
    out Nullable<string> errorMessage
)

Parameters

address
Type: IPAddress
The address to resolve
entry
Type: Nullable <(Of <(<'IPHostEntry>)>)>%
The host entry returned
errorMessage
Type: Nullable <(Of <(<' String >)>)>%
optionally the error message may get populated if an error happed or was returned by the remote DNS

Return Value

See Also

IDnsManager Interface
TryGetHostEntry Overload
Walter.Net.Networking Namespace


TryGetHostEntry Method (String, Nullable(IPHostEntry), Nullable(String))

IDnsManager..::..TryGetHostEntry Method (String, Nullable<(Of <(<'IPHostEntry>)>)>%, Nullable<(Of <(<'String>)>)>%)

Tries to get the HostEntry for a given Host name or IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool TryGetHostEntry(
    string hostNameOrAddress,
    out Nullable<IPHostEntry> entry,
    out Nullable<string> errorMessage
)

Parameters

hostNameOrAddress
Type: String
The entry to resolve
entry
Type: Nullable <(Of <(<'IPHostEntry>)>)>%
The Host entry if successful
errorMessage
Type: Nullable <(Of <(<' String >)>)>%
an error message if not successful

Return Value

See Also

IDnsManager Interface
TryGetHostEntry Overload
Walter.Net.Networking Namespace


IDnsManager Properties

The IDnsManager type exposes the following members.

Properties

Name | Description
DefaultInstance | Gets or sets the default instance.

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


DefaultInstance Property

IDnsManager..::..DefaultInstance Property

Gets or sets the default instance.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IDnsManager> DefaultInstance { get; set; }

Field Value

The default instance.

See Also

IDnsManager Interface
Walter.Net.Networking Namespace


IInternalWhoisContactDetails Interface

Interface IInternalWhoisContactDetails is like an IWhoisContactDetails address card for a given entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IInternalWhoisContactDetails : IWhoisContactDetails

See Also

IInternalWhoisContactDetails Members
Walter.Net.Networking Namespace


IInternalWhoisContactDetails Members

The IInternalWhoisContactDetails type exposes the following members.

Methods

Name | Description
Parse | Parses the specified json.

Properties

 | Name | Description
Public property | Address | Gets the address, one line separated by NewLine characters.
Public property | Country | Country located
Public property | Fax | Gets the fax.
Public property | Name | Gets the name of the organization/ department/ person.
Public property | Phone | Gets the phone.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


IInternalWhoisContactDetails Methods

The IInternalWhoisContactDetails type exposes the following members.

Methods

Name | Description
Parse | Parses the specified json.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


Parse Method

IInternalWhoisContactDetails..::..Parse Method

Parses the specified json.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IInternalWhoisContactDetails Parse(
    string json
)

Parameters

json
Type: String
The json.

Return Value

IInternalWhoisContactDetails.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


IInternalWhoisContactDetails Properties

The IInternalWhoisContactDetails type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address, one line separated by NewLine characters.
Public property | Country | Country located
Public property | Fax | Gets the fax.
Public property | Name | Gets the name of the organization/ department/ person.
Public property | Phone | Gets the phone.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


Address Property

IInternalWhoisContactDetails..::..Address Property

Gets the address, one line separated by NewLine characters.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string Address { get; set; }

Field Value

The address.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


Country Property

IInternalWhoisContactDetails..::..Country Property

Country located

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
GeoLocation Country { get; set; }

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


Fax Property

IInternalWhoisContactDetails..::..Fax Property

Gets the fax.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Fax { get; set; }

Field Value

The fax.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


Name Property

IInternalWhoisContactDetails..::..Name Property

Gets the name of the organization/ department/ person.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Name { get; set; }

Return Value

The organization.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


Phone Property

IInternalWhoisContactDetails..::..Phone Property

Gets the phone.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Phone { get; set; }

Field Value

The phone.

See Also

IInternalWhoisContactDetails Interface
Walter.Net.Networking Namespace


IIPAddressGeo Interface

Interface IIPAddressGeo

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IIPAddressGeo

See Also

IIPAddressGeo Members
Walter.Net.Networking Namespace


IIPAddressGeo Members

The IIPAddressGeo type exposes the following members.

Properties

 | Name | Description
Public property | City | Gets or sets the city.
Public property | CountryName | Gets or sets the name of the country.
Public property | DnsName | Gets or sets the name of the DNS.
Public property | InternetServiceProvider | Gets or sets the internet service provider.
Public property | IPAddress | The IP address queries
Public property | Latitude | Gets or sets the latitude.
Public property | Location | Gets the location.
Public property | LocatTime | Gets or sets the locat time.
Public property | Longitude | Gets or sets the longitude.
Public property | PostalCode | Gets or sets the postal code.
Public property | Region | Gets or sets the region.
Public property | Timezone | Gets or sets the timezone.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


IIPAddressGeo Properties

The IIPAddressGeo type exposes the following members.

Properties

 | Name | Description
Public property | City | Gets or sets the city.
Public property | CountryName | Gets or sets the name of the country.
Public property | DnsName | Gets or sets the name of the DNS.
Public property | InternetServiceProvider | Gets or sets the internet service provider.
Public property | IPAddress | The IP address queries
Public property | Latitude | Gets or sets the latitude.
Public property | Location | Gets the location.
Public property | LocatTime | Gets or sets the locat time.
Public property | Longitude | Gets or sets the longitude.
Public property | PostalCode | Gets or sets the postal code.
Public property | Region | Gets or sets the region.
Public property | Timezone | Gets or sets the timezone.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


City Property

IIPAddressGeo..::..City Property

Gets or sets the city.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> City { get; set; }

Field Value

The city.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


CountryName Property

IIPAddressGeo..::..CountryName Property

Gets or sets the name of the country.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> CountryName { get; set; }

Field Value

The name of the country.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


DnsName Property

IIPAddressGeo..::..DnsName Property

Gets or sets the name of the DNS.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> DnsName { get; set; }

Field Value

The name of the DNS.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


InternetServiceProvider Property

IIPAddressGeo..::..InternetServiceProvider Property

Gets or sets the internet service provider.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> InternetServiceProvider { get; set; }

Field Value

The internet service provider.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


IPAddress Property

IIPAddressGeo..::..IPAddress Property

The IP address queries

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress IPAddress { get; }

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


Latitude Property

IIPAddressGeo..::..Latitude Property

Gets or sets the latitude.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
decimal Latitude { get; set; }

Field Value

The latitude.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


Location Property

IIPAddressGeo..::..Location Property

Gets the location.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
GeoLocation Location { get; }

Field Value

The location.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


LocatTime Property

IIPAddressGeo..::..LocatTime Property

Gets or sets the locat time.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime LocatTime { get; set; }

Field Value

The locat time.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


Longitude Property

IIPAddressGeo..::..Longitude Property

Gets or sets the longitude.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
decimal Longitude { get; set; }

Field Value

The longitude.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


PostalCode Property

IIPAddressGeo..::..PostalCode Property

Gets or sets the postal code.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> PostalCode { get; set; }

Field Value

The postal code.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


Region Property

IIPAddressGeo..::..Region Property

Gets or sets the region.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Region { get; set; }

Field Value

The region.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


Timezone Property

IIPAddressGeo..::..Timezone Property

Gets or sets the timezone.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Timezone { get; set; }

Field Value

The timezone.

See Also

IIPAddressGeo Interface
Walter.Net.Networking Namespace


IKeyCDNClient Interface

Interface IKeyCDNClient

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IKeyCDNClient

See Also

IKeyCDNClient Members
Walter.Net.Networking Namespace


IKeyCDNClient Members

The IKeyCDNClient type exposes the following members.

Methods

 | Name | Description
Public method | GetWhoisAsync | Gets the WHOIS asynchronous.
Public method | TryGetGeoData | Tries the get geo data.
Public method | TryGetGeoDataAsync | Tries the get geo data asynchronous.

Properties

 | Name | Description
Public property | Domain | Gets or sets the domain.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


IKeyCDNClient Methods

The IKeyCDNClient type exposes the following members.

Methods

 | Name | Description
Public method | GetWhoisAsync | Gets the WHOIS asynchronous.
Public method | TryGetGeoData | Tries the get geo data.
Public method | TryGetGeoDataAsync | Tries the get geo data asynchronous.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


GetWhoisAsync Method

IKeyCDNClient..::..GetWhoisAsync Method

Gets the WHOIS asynchronous.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Task<IWhois> GetWhoisAsync(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: Walter.Net.Networking..::..DnsEntry

Return Value

Task<IWhois>.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


TryGetGeoData Method

IKeyCDNClient..::..TryGetGeoData Method

Tries the get geo data.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool TryGetGeoData(
    IPAddress address,
    out Nullable<IIPAddressGeo> geography
)

Parameters

address
Type: IPAddress
The address.
geography
Type: Nullable <(Of <(<' IIPAddressGeo >)>)>%
The geography.

Return Value

true if XXXX, false otherwise.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


TryGetGeoDataAsync Method

IKeyCDNClient..::..TryGetGeoDataAsync Method

Tries the get geo data asynchronous.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Task<ValueTuple<bool, IIPAddressGeo>> TryGetGeoDataAsync(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

Task<System.ValueTuple<System.Boolean, IIPAddressGeo>>.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


IKeyCDNClient Properties

The IKeyCDNClient type exposes the following members.

Properties

 | Name | Description
Public property | Domain | Gets or sets the domain.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


Domain Property

IKeyCDNClient..::..Domain Property

Gets or sets the domain.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<Uri> Domain { get; set; }

Field Value

The domain.

See Also

IKeyCDNClient Interface
Walter.Net.Networking Namespace


IpConnectionTypesFiter Enumeration

Filter used by some actions to get a specific scope

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum IpConnectionTypesFiter

Members

Member name | Description
IP4orIP6 | Allow to use IP4 or IP6
Ip4 | Get IP4 only
Ip6 | Get IP6 only

See Also

Walter.Net.Networking Namespace


ISPTrustLevels Enumeration

Internet Service provider trust setting

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum ISPTrustLevels

Members

Member name | Description
None | No value has been assigned
Report | Suspicious communication will be report but all request are allowed and are not blocked by the firewall
BlockFilter | block all ISP and this does not make sense to allow data communications
UserAgentFilter | Tests to see if a user agent is allowed for the ISP

See Also

Walter.Net.Networking Namespace


IWhois Interface

Interface IWhois shows details of a given ISP or other entity with a public DNS name

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IWhois

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhois Members
Walter.Net.Networking Namespace


IWhois Members

The IWhois type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified IP range if missing from.
Public method | AppendRemarksWithRemarksFrom | Appends the remarks with remarks from a contact details entry.
Public method | Clone | Make a deep copy of the WHOIS entry
 | Empty(IPAddress) | Get an empty IWhois entry for a IP address
 | Empty(DnsEntry) | Get an empty IWhois entry for a IP address
Public method | IsInRange(IPAddress) | Determines whether the IP address is in range of this WHOIS entry.
Public method | IsInRange(Int64) | Determines whether the CIDR is in the range of the last whois.
Public method | Merge | Merge whois records from 2 sources
Public method | ToHtml | Generate a simple HTML address tag of the ISP contact details
Public method | ToJson | convert to valid native WHOIS json

Properties

 | Name | Description
Public property | Changed | Gets the date of the last WHOIS update .
Public property | ContactDetails | Gets the contact details of the ISP.
Public property | Counters | Gets the security related meta data counters.
Public property | Country | Gets or sets the country that is associated with the WHOIS entry.
Public property | Created | Gets the date the entry was created/ registered with the WHOIS network.
Public property | DatesAreAccurate | Gets a value indicating whether dates for Created and Changed are accurate or approximated by the WHOIS provider.
 | DefaultProvider | Default WHOIS provider
Public property | Discovered | The date the entry was discovered by the DNS system
Public property | DnsName | Gets resolved name IP address used to query the DNS name.
Public property | Domain | Gets the domain related DNS name.
Public property | ICAN_Key | Gets the provider key.
Public property | ICAN_URL | Gets the provider URL.
Public property | IpAddresses | Gets the IP addresses ranges assigned to the entity identified by the DNS system.
Public property | ISPID | Gets or sets the id Assigned to the ISP.
Public property | Latitude | Gets the latitude.
Public property | Longitude | Gets the longitude.
Public property | Organization | Gets the organizations name under what the DNS name is registered.
Public property | OrganizationAddress | Gets the organization postal address.
Public property | RangeId | Gets or sets the range identifier for the CIDR range with the ISP.
Public property | RangeName | Gets or sets the name of the range as assigned by the ISP.
Public property | Refer | Gets or sets the refer providing the data.
Public property | Remarks | Gets the remarks.
Public property | Source | Gets or sets the source where the object was collected from.
Public property | SourceDns | The DNS server response on the IPaddress
Public property | SourceIPAddress | Gets the queried IP address that was used to populate this information.
Public property | Status | Gets the status as given by the whois provider.
Public property | TrustLevel | the trust level given to the ISP
Public property | WhoIsProvider | Gets the name of the entity that is the WHOIS provider for this record.

Events

 | Name | Description
Public event | OnTrustLevelChanged | triggered when trust level has changed

See Also

IWhois Interface
Walter.Net.Networking Namespace


IWhois Methods

The IWhois type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified IP range if missing from.
Public method | AppendRemarksWithRemarksFrom | Appends the remarks with remarks from a contact details entry.
Public method | Clone | Make a deep copy of the WHOIS entry
 | Empty(IPAddress) | Get an empty IWhois entry for a IP address
 | Empty(DnsEntry) | Get an empty IWhois entry for a IP address
Public method | IsInRange(IPAddress) | Determines whether the IP address is in range of this WHOIS entry.
Public method | IsInRange(Int64) | Determines whether the CIDR is in the range of the last whois.
Public method | Merge | Merge whois records from 2 sources
Public method | ToHtml | Generate a simple HTML address tag of the ISP contact details
Public method | ToJson | convert to valid native WHOIS json

See Also

IWhois Interface
Walter.Net.Networking Namespace


Add Method

IWhois..::..Add Method

Adds the specified IP range if missing from.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool Add(
    IPAddress from,
    IPAddress till,
    DateTime dateTime
)

Parameters

from
Type: IPAddress
From.
till
Type: IPAddress
The till.
dateTime
Type: DateTime
The date time.

Return Value

true if added, false otherwise.

See Also

IWhois Interface
Walter.Net.Networking Namespace


AppendRemarksWithRemarksFrom Method

IWhois..::..AppendRemarksWithRemarksFrom Method

Appends the remarks with remarks from a contact details entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
void AppendRemarksWithRemarksFrom(
    IWhoisContactDetails details
)

Parameters

details
Type: Walter.Net.Networking..::..IWhoisContactDetails
The details.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Clone Method

IWhois..::..Clone Method

Make a deep copy of the WHOIS entry

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhois Clone()

Return Value

New copy of the WHOIS entry

See Also

IWhois Interface
Walter.Net.Networking Namespace


Empty Method

IWhois..::..Empty Method

Overload List

Name | Description
Empty(IPAddress) | Get an empty IWhois entry for a IP address
Empty(DnsEntry) | Get an empty IWhois entry for a IP address

See Also

IWhois Interface
IWhois Members
Walter.Net.Networking Namespace


Empty Method (IPAddress)

IWhois..::..Empty Method (IPAddress)

Get an empty IWhois entry for a IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhois Empty(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address to assign

Return Value

WHOIS instance

See Also

IWhois Interface
Empty Overload
Walter.Net.Networking Namespace


Empty Method (DnsEntry)

IWhois..::..Empty Method (DnsEntry)

Get an empty IWhois entry for a IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhois Empty(
    DnsEntry entry
)

Parameters

entry
Type: Walter.Net.Networking..::..DnsEntry
The address to assign

Return Value

WHOIS instance

See Also

IWhois Interface
Empty Overload
Walter.Net.Networking Namespace


IsInRange Method

IWhois..::..IsInRange Method

Overload List

 | Name | Description
Public method | IsInRange(IPAddress) | Determines whether the IP address is in range of this WHOIS entry.
Public method | IsInRange(Int64) | Determines whether the CIDR is in the range of the last whois.

See Also

IWhois Interface
IWhois Members
Walter.Net.Networking Namespace


IsInRange Method (IPAddress)

IWhois..::..IsInRange Method (IPAddress)

Determines whether the IP address is in range of this WHOIS entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool IsInRange(
    IPAddress ip
)

Parameters

ip
Type: IPAddress
The ip.

Return Value

true if [is in range] [the specified ip]; otherwise, false.

See Also

IWhois Interface
IsInRange Overload
Walter.Net.Networking Namespace


IsInRange Method (Int64)

IWhois..::..IsInRange Method (Int64)

Determines whether the CIDR is in the range of the last whois.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool IsInRange(
    long cidr
)

Parameters

cidr
Type: Int64
The cidr.

Return Value

true if [is in range] [the specified cidr]; otherwise, false.

See Also

IWhois Interface
IsInRange Overload
Walter.Net.Networking Namespace


Merge Method

IWhois..::..Merge Method

Merge whois records from 2 sources

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
void Merge(
    IWhois other
)

Parameters

other
Type: Walter.Net.Networking..::..IWhois

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.

See Also

IWhois Interface
Walter.Net.Networking Namespace


ToHtml Method

IWhois..::..ToHtml Method

Generate a simple HTML address tag of the ISP contact details

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string ToHtml()

Return Value

raw HTML with the contact details of the ISP

See Also

IWhois Interface
Walter.Net.Networking Namespace


ToJson Method

IWhois..::..ToJson Method

convert to valid native WHOIS json

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string ToJson()

Return Value

Native json format

See Also

IWhois Interface
Walter.Net.Networking Namespace


IWhois Properties

The IWhois type exposes the following members.

Properties

 | Name | Description
Public property | Changed | Gets the date of the last WHOIS update .
Public property | ContactDetails | Gets the contact details of the ISP.
Public property | Counters | Gets the security related meta data counters.
Public property | Country | Gets or sets the country that is associated with the WHOIS entry.
Public property | Created | Gets the date the entry was created/ registered with the WHOIS network.
Public property | DatesAreAccurate | Gets a value indicating whether dates for Created and Changed are accurate or approximated by the WHOIS provider.
 | DefaultProvider | Default WHOIS provider
Public property | Discovered | The date the entry was discovered by the DNS system
Public property | DnsName | Gets resolved name IP address used to query the DNS name.
Public property | Domain | Gets the domain related DNS name.
Public property | ICAN_Key | Gets the provider key.
Public property | ICAN_URL | Gets the provider URL.
Public property | IpAddresses | Gets the IP addresses ranges assigned to the entity identified by the DNS system.
Public property | ISPID | Gets or sets the id Assigned to the ISP.
Public property | Latitude | Gets the latitude.
Public property | Longitude | Gets the longitude.
Public property | Organization | Gets the organizations name under what the DNS name is registered.
Public property | OrganizationAddress | Gets the organization postal address.
Public property | RangeId | Gets or sets the range identifier for the CIDR range with the ISP.
Public property | RangeName | Gets or sets the name of the range as assigned by the ISP.
Public property | Refer | Gets or sets the refer providing the data.
Public property | Remarks | Gets the remarks.
Public property | Source | Gets or sets the source where the object was collected from.
Public property | SourceDns | The DNS server response on the IPaddress
Public property | SourceIPAddress | Gets the queried IP address that was used to populate this information.
Public property | Status | Gets the status as given by the whois provider.
Public property | TrustLevel | the trust level given to the ISP
Public property | WhoIsProvider | Gets the name of the entity that is the WHOIS provider for this record.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Changed Property

IWhois..::..Changed Property

Gets the date of the last WHOIS update .

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime Changed { get; }

Field Value

The changed.

Remarks

Due to database compatibilities the default date for unknown dates was defaulted by ICAN to 01 January 1970

See Also

IWhois Interface
Walter.Net.Networking Namespace


ContactDetails Property

IWhois..::..ContactDetails Property

Gets the contact details of the ISP.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhoisContactDetailsCollection ContactDetails { get; }

Field Value

The contact details.

Remarks

Contact details are extracted from the list of contacts associated with a WHOIS entry. the entry chosen is the WhoisContactType of type Organization

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Counters Property

IWhois..::..Counters Property

Gets the security related meta data counters.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhoisCounters Counters { get; }

Field Value

The counters.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Country Property

IWhois..::..Country Property

Gets or sets the country that is associated with the WHOIS entry.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
GeoLocation Country { get; set; }

Field Value

The country.

Remarks

The country is collected from the Contact details in the WHOIS entry. Normally there is no need for a 3rd party data subscription for this to work.

To get the text representation of the name use [Walter.BOM.Geo.GeoLocationMapping.TryGetCountryName(GeoLocation, out string)]

See Also

IWhois Interface
Walter.Net.Networking Namespace
[Walter.BOM.Geo.GeoLocationMapping]


Created Property

IWhois..::..Created Property

Gets the date the entry was created/ registered with the WHOIS network.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime Created { get; }

Field Value

The created.

See Also

IWhois Interface
Walter.Net.Networking Namespace


DatesAreAccurate Property

IWhois..::..DatesAreAccurate Property

Gets a value indicating whether dates for Created and Changed are accurate or approximated by the WHOIS provider.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool DatesAreAccurate { get; }

Field Value

true if [dates are accurate]; otherwise, false.

See Also

IWhois Interface
Walter.Net.Networking Namespace


DefaultProvider Property

IWhois..::..DefaultProvider Property

Default WHOIS provider

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhoisProvider DefaultProvider { get; }

See Also

IWhois Interface
Walter.Net.Networking Namespace


Discovered Property

IWhois..::..Discovered Property

The date the entry was discovered by the DNS system

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime Discovered { get; }

Remarks

This data is the date that the entry was first parsed and allows you to select entries that may be in need of an update

See Also

IWhois Interface
Walter.Net.Networking Namespace


DnsName Property

IWhois..::..DnsName Property

Gets resolved name IP address used to query the DNS name.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string DnsName { get; }

Field Value

The resolved DNS name.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Domain Property

IWhois..::..Domain Property

Gets the domain related DNS name.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string Domain { get; }

Field Value

The domain.

Remarks

Please note that a domain does not have to have a website

See Also

IWhois Interface
Walter.Net.Networking Namespace


ICAN_Key Property

IWhois..::..ICAN_Key Property

Gets the provider key.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> ICAN_Key { get; }

Field Value

The key.

See Also

IWhois Interface
Walter.Net.Networking Namespace


ICAN_URL Property

IWhois..::..ICAN_URL Property

Gets the provider URL.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> ICAN_URL { get; }

Field Value

The source URL.

See Also

IWhois Interface
Walter.Net.Networking Namespace


IpAddresses Property

IWhois..::..IpAddresses Property

Gets the IP addresses ranges assigned to the entity identified by the DNS system.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IWhoisIPRange> IpAddresses { get; }

Field Value

The ip addresses.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IWhois Interface
Walter.Net.Networking Namespace


ISPID Property

IWhois..::..ISPID Property

Gets or sets the id Assigned to the ISP.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
long ISPID { get; set; }

Field Value

The ISP.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Latitude Property

IWhois..::..Latitude Property

Gets the latitude.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
double Latitude { get; }

Field Value

The latitude.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Longitude Property

IWhois..::..Longitude Property

Gets the longitude.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
double Longitude { get; }

Field Value

The longitude.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Organization Property

IWhois..::..Organization Property

Gets the organizations name under what the DNS name is registered.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string Organization { get; set; }

Field Value

The organization.

See Also

IWhois Interface
Walter.Net.Networking Namespace


OrganizationAddress Property

IWhois..::..OrganizationAddress Property

Gets the organization postal address.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string OrganizationAddress { get; set; }

Field Value

The address.

See Also

IWhois Interface
Walter.Net.Networking Namespace


RangeId Property

IWhois..::..RangeId Property

Gets or sets the range identifier for the CIDR range with the ISP.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
long RangeId { get; set; }

Field Value

The range identifier.

See Also

IWhois Interface
Walter.Net.Networking Namespace


RangeName Property

IWhois..::..RangeName Property

Gets or sets the name of the range as assigned by the ISP.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> RangeName { get; set; }

Field Value

The name of the range.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Refer Property

IWhois..::..Refer Property

Gets or sets the refer providing the data.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Refer { get; }

Field Value

The refer.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Remarks Property

IWhois..::..Remarks Property

Gets the remarks.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Remarks { get; }

Field Value

The remarks.

See Also

IWhois Interface
Walter.Net.Networking Namespace


Source Property

IWhois..::..Source Property

Gets or sets the source where the object was collected from.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
StorageLocations Source { get; set; }

Field Value

The source.

Remarks

The object can come from a rest service if just created,

See Also

IWhois Interface
Walter.Net.Networking Namespace


SourceDns Property

IWhois..::..SourceDns Property

The DNS server response on the IPaddress

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DnsEntry SourceDns { get; }

Remarks

Depending on the DNS server used this response may vary, to up date the response re submit a DNS Query to the SourceIPAddress

See Also

IWhois Interface
Walter.Net.Networking Namespace


SourceIPAddress Property

IWhois..::..SourceIPAddress Property

Gets the queried IP address that was used to populate this information.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress SourceIPAddress { get; }

Field Value

The queried IP address.

Remarks

The source IP can be any IP in the IP Range owned by this provider. A provider can own large quantity of IP addresses

See Also

IWhois Interface
Walter.Net.Networking Namespace


Status Property

IWhois..::..Status Property

Gets the status as given by the whois provider.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
WhoisStatus Status { get; }

Field Value

The status.

See Also

IWhois Interface
Walter.Net.Networking Namespace


TrustLevel Property

IWhois..::..TrustLevel Property

the trust level given to the ISP

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
ISPTrustLevels TrustLevel { get; set; }

See Also

IWhois Interface
Walter.Net.Networking Namespace


WhoIsProvider Property

IWhois..::..WhoIsProvider Property

Gets the name of the entity that is the WHOIS provider for this record.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string WhoIsProvider { get; set; }

Field Value

The WHOIS provider.

See Also

IWhois Interface
Walter.Net.Networking Namespace


IWhois Events

The IWhois type exposes the following members.

Events

 | Name | Description
Public event | OnTrustLevelChanged | triggered when trust level has changed

See Also

IWhois Interface
Walter.Net.Networking Namespace


OnTrustLevelChanged Event

IWhois..::..OnTrustLevelChanged Event

triggered when trust level has changed

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
event Nullable<EventHandler<OnISPTrustLevelChangeEventArgs>> OnTrustLevelChanged

See Also

IWhois Interface
Walter.Net.Networking Namespace


IWhoisContactDetails Interface

Interface IWhoIsContactDetails is like an address card for a given entry. Most data types allow null as data is processed by humans in the respected ICAN related organizations and are out of our control.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IWhoisContactDetails

See Also

IWhoisContactDetails Members
Walter.Net.Networking Namespace


IWhoisContactDetails Members

The IWhoisContactDetails type exposes the following members.

Methods

 | Name | Description
Public method | SetContactTypeNames | Sets the contact type names based on the roles.

Properties

 | Name | Description
Public property | Address | Gets the address, one line separated by NewLine characters.
Public property | ContactType | Gets the type of the contact as provided by the registrar (is free text so use with caution).
Public property | Country | Parses the country from the address and returns the status
Public property | Created | Gets the date the record was created.
Public property | EMail | Gets the e mail.
Public property | FallBackName | Gets or sets the name to use if none was assigned.
Public property | Fax | Gets the fax.
Public property | IsAbuse | Gets a value indicating whether this instance contains the abuse contact details.
Public property | Key | Gets the ICAN key.
Public property | LastModified | Gets the date the record was last modified.
Public property | Name | Gets the name of the organization/ department/ person.
Public property | Phone | Gets the phone.
Public property | Remarks | Gets the remarks set by the administrator of the WHOIS entry. This normally contains instructions or other FYI info
Public property | Url | Gets the ICAN URL.
Public property | WhoisContactType | Gets the contact type as provided by the WHOIS registrar and normalizes it from the different interpretations to a known set.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


IWhoisContactDetails Methods

The IWhoisContactDetails type exposes the following members.

Methods

 | Name | Description
Public method | SetContactTypeNames | Sets the contact type names based on the roles.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


SetContactTypeNames Method

IWhoisContactDetails..::..SetContactTypeNames Method

Sets the contact type names based on the roles.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
void SetContactTypeNames()

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


IWhoisContactDetails Properties

The IWhoisContactDetails type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address, one line separated by NewLine characters.
Public property | ContactType | Gets the type of the contact as provided by the registrar (is free text so use with caution).
Public property | Country | Parses the country from the address and returns the status
Public property | Created | Gets the date the record was created.
Public property | EMail | Gets the e mail.
Public property | FallBackName | Gets or sets the name to use if none was assigned.
Public property | Fax | Gets the fax.
Public property | IsAbuse | Gets a value indicating whether this instance contains the abuse contact details.
Public property | Key | Gets the ICAN key.
Public property | LastModified | Gets the date the record was last modified.
Public property | Name | Gets the name of the organization/ department/ person.
Public property | Phone | Gets the phone.
Public property | Remarks | Gets the remarks set by the administrator of the WHOIS entry. This normally contains instructions or other FYI info
Public property | Url | Gets the ICAN URL.
Public property | WhoisContactType | Gets the contact type as provided by the WHOIS registrar and normalizes it from the different interpretations to a known set.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Address Property

IWhoisContactDetails..::..Address Property

Gets the address, one line separated by NewLine characters.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Address { get; }

Field Value

The address.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


ContactType Property

IWhoisContactDetails..::..ContactType Property

Gets the type of the contact as provided by the registrar (is free text so use with caution).

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> ContactType { get; }

Field Value

The type of the contact.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace
IWhoisContactDetails..::..WhoisContactType


Country Property

IWhoisContactDetails..::..Country Property

Parses the country from the address and returns the status

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
GeoLocation Country { get; }

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Created Property

IWhoisContactDetails..::..Created Property

Gets the date the record was created.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<DateTime> Created { get; set; }

Field Value

The created.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


EMail Property

IWhoisContactDetails..::..EMail Property

Gets the e mail.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> EMail { get; set; }

Field Value

The e mail.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


FallBackName Property

IWhoisContactDetails..::..FallBackName Property

Gets or sets the name to use if none was assigned.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> FallBackName { get; set; }

Field Value

The name of the fall back.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Fax Property

IWhoisContactDetails..::..Fax Property

Gets the fax.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Fax { get; }

Field Value

The fax.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


IsAbuse Property

IWhoisContactDetails..::..IsAbuse Property

Gets a value indicating whether this instance contains the abuse contact details.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool IsAbuse { get; }

Field Value

true if this instance is abuse; otherwise, false.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Key Property

IWhoisContactDetails..::..Key Property

Gets the ICAN key.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Key { get; set; }

Field Value

The key assigned by ICAN.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


LastModified Property

IWhoisContactDetails..::..LastModified Property

Gets the date the record was last modified.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<DateTime> LastModified { get; }

Field Value

The last modified.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Name Property

IWhoisContactDetails..::..Name Property

Gets the name of the organization/ department/ person.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Name { get; }

Return Value

The organization.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Phone Property

IWhoisContactDetails..::..Phone Property

Gets the phone.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Phone { get; }

Field Value

The phone.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Remarks Property

IWhoisContactDetails..::..Remarks Property

Gets the remarks set by the administrator of the WHOIS entry. This normally contains instructions or other FYI info

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Remarks { get; set; }

Field Value

The remarks posted to the item.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


Url Property

IWhoisContactDetails..::..Url Property

Gets the ICAN URL.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Url { get; set; }

Field Value

The URL for the entry.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


WhoisContactType Property

IWhoisContactDetails..::..WhoisContactType Property

Gets the contact type as provided by the WHOIS registrar and normalizes it from the different interpretations to a known set.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
WhoisContactTypes WhoisContactType { get; }

Field Value

The type of the whois contact.

See Also

IWhoisContactDetails Interface
Walter.Net.Networking Namespace


IWhoisContactDetailsCollection Interface

Interface IWhoisContactDetailsCollection allows you to iterate over contact details of a given whois entry

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IWhoisContactDetailsCollection

See Also

IWhoisContactDetailsCollection Members
Walter.Net.Networking Namespace


IWhoisContactDetailsCollection Members

The IWhoisContactDetailsCollection type exposes the following members.

Methods

 | Name | Description
Public method | Best(WhoisContactTypes) | Bests the specified contact type.
Public method | Best()()()() | Get the most complete address without considering the type of address.
Public method | GetAbuseAddresses | Gets the abuse addresses if any.
Public method | GetUserTypes | Gets the abuse addresses if any.

Properties

 | Name | Description
Public property | Abuse | will contain the abuse contact if ContainsAbuse is true
Public property | AlternativeAbuse | Alternative abuse contact
Public property | ContainsAbuse | Gets a value indicating whether this instance contains abuse address details.

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


IWhoisContactDetailsCollection Methods

The IWhoisContactDetailsCollection type exposes the following members.

Methods

 | Name | Description
Public method | Best(WhoisContactTypes) | Bests the specified contact type.
Public method | Best()()()() | Get the most complete address without considering the type of address.
Public method | GetAbuseAddresses | Gets the abuse addresses if any.
Public method | GetUserTypes | Gets the abuse addresses if any.

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


Best Method

IWhoisContactDetailsCollection..::..Best Method

Overload List

 | Name | Description
Public method | Best(WhoisContactTypes) | Bests the specified contact type.
Public method | Best()()()() | Get the most complete address without considering the type of address.

See Also

IWhoisContactDetailsCollection Interface
IWhoisContactDetailsCollection Members
Walter.Net.Networking Namespace


Best Method (WhoisContactTypes)

IWhoisContactDetailsCollection..::..Best Method (WhoisContactTypes)

Bests the specified contact type.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IWhoisContactDetails> Best(
    WhoisContactTypes contactType
)

Parameters

contactType
Type: Walter.Net.Networking..::..WhoisContactTypes
Type of the contact.

Return Value

System.Nullable<IWhoisContactDetails>.

See Also

IWhoisContactDetailsCollection Interface
Best Overload
Walter.Net.Networking Namespace


Best Method

IWhoisContactDetailsCollection..::..Best Method

Get the most complete address without considering the type of address.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IWhoisContactDetails> Best()

Return Value

System.Nullable<IWhoisContactDetails>.

See Also

IWhoisContactDetailsCollection Interface
Best Overload
Walter.Net.Networking Namespace


GetAbuseAddresses Method

IWhoisContactDetailsCollection..::..GetAbuseAddresses Method

Gets the abuse addresses if any.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IReadOnlyList<IWhoisContactDetails> GetAbuseAddresses()

Return Value

IWhoisContactDetails[].

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


GetUserTypes Method

IWhoisContactDetailsCollection..::..GetUserTypes Method

Gets the abuse addresses if any.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IReadOnlyList<IWhoisContactDetails> GetUserTypes(
    WhoisContactTypes contactType
)

Parameters

contactType
Type: Walter.Net.Networking..::..WhoisContactTypes

Return Value

IWhoisContactDetails[].

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


IWhoisContactDetailsCollection Properties

The IWhoisContactDetailsCollection type exposes the following members.

Properties

 | Name | Description
Public property | Abuse | will contain the abuse contact if ContainsAbuse is true
Public property | AlternativeAbuse | Alternative abuse contact
Public property | ContainsAbuse | Gets a value indicating whether this instance contains abuse address details.

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


Abuse Property

IWhoisContactDetailsCollection..::..Abuse Property

will contain the abuse contact if ContainsAbuse is true

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> Abuse { get; set; }

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


AlternativeAbuse Property

IWhoisContactDetailsCollection..::..AlternativeAbuse Property

Alternative abuse contact

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> AlternativeAbuse { get; set; }

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


ContainsAbuse Property

IWhoisContactDetailsCollection..::..ContainsAbuse Property

Gets a value indicating whether this instance contains abuse address details.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool ContainsAbuse { get; }

Field Value

true if it contains abuse; otherwise, false.

See Also

IWhoisContactDetailsCollection Interface
Walter.Net.Networking Namespace


IWhoisCounters Interface

WhoisCounters

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IWhoisCounters

See Also

IWhoisCounters Members
Walter.Net.Networking Namespace


IWhoisCounters Members

The IWhoisCounters type exposes the following members.

Properties

 | Name | Description
Public property | FirstSeen | Gets or sets the date the ISP was first seen.
Public property | Incidents | Gets or sets the incidents.
Public property | IPAddresses | number of IP Addresses communicating with
Public property | IPAddressesWithIncidents | IP addresses associated with incidents
Public property | IPAddressesWithPortBasedIncidents | IP addresses associated with port based attacks
Public property | LastIncident | Gets or sets the last incident.
Public property | LastPortsAttack | Gets or sets the last ports attack.
Public property | LastSeen | contains the date we have last encountered interaction with the ISP
Public property | LastTalkingDetection | Gets or sets the last talking detection.
Public property | PortBasedIncidents | Gets or sets the port based incidents.
Public property | PortsAttacked | Gets or sets the ports attacked.
Public property | RequestsIncidents | Gets or sets the number of requests that contains incidents.
Public property | RequestsServed | Gets or sets the requests served.
Public property | TalkingAddresses | Gets or sets the talking addresses.
Public property | TalkingApplications | Gets or sets the talking applications.
Public property | TalkingDetections | Gets or sets the talking detections.
Public property | Users | Gets or sets the users.
Public property | UsersWithBlockStatus | Gets or sets the users with block status.
Public property | UsersWithIncidents | Gets or sets the users with incidents.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


IWhoisCounters Properties

The IWhoisCounters type exposes the following members.

Properties

 | Name | Description
Public property | FirstSeen | Gets or sets the date the ISP was first seen.
Public property | Incidents | Gets or sets the incidents.
Public property | IPAddresses | number of IP Addresses communicating with
Public property | IPAddressesWithIncidents | IP addresses associated with incidents
Public property | IPAddressesWithPortBasedIncidents | IP addresses associated with port based attacks
Public property | LastIncident | Gets or sets the last incident.
Public property | LastPortsAttack | Gets or sets the last ports attack.
Public property | LastSeen | contains the date we have last encountered interaction with the ISP
Public property | LastTalkingDetection | Gets or sets the last talking detection.
Public property | PortBasedIncidents | Gets or sets the port based incidents.
Public property | PortsAttacked | Gets or sets the ports attacked.
Public property | RequestsIncidents | Gets or sets the number of requests that contains incidents.
Public property | RequestsServed | Gets or sets the requests served.
Public property | TalkingAddresses | Gets or sets the talking addresses.
Public property | TalkingApplications | Gets or sets the talking applications.
Public property | TalkingDetections | Gets or sets the talking detections.
Public property | Users | Gets or sets the users.
Public property | UsersWithBlockStatus | Gets or sets the users with block status.
Public property | UsersWithIncidents | Gets or sets the users with incidents.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


FirstSeen Property

IWhoisCounters..::..FirstSeen Property

Gets or sets the date the ISP was first seen.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime FirstSeen { get; set; }

Field Value

The first seen.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


Incidents Property

IWhoisCounters..::..Incidents Property

Gets or sets the incidents.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int Incidents { get; set; }

Field Value

The incidents.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


IPAddresses Property

IWhoisCounters..::..IPAddresses Property

number of IP Addresses communicating with

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int IPAddresses { get; set; }

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


IPAddressesWithIncidents Property

IWhoisCounters..::..IPAddressesWithIncidents Property

IP addresses associated with incidents

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int IPAddressesWithIncidents { get; set; }

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


IPAddressesWithPortBasedIncidents Property

IWhoisCounters..::..IPAddressesWithPortBasedIncidents Property

IP addresses associated with port based attacks

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int IPAddressesWithPortBasedIncidents { get; set; }

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


LastIncident Property

IWhoisCounters..::..LastIncident Property

Gets or sets the last incident.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<DateTime> LastIncident { get; set; }

Field Value

The last incident.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


LastPortsAttack Property

IWhoisCounters..::..LastPortsAttack Property

Gets or sets the last ports attack.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<DateTime> LastPortsAttack { get; set; }

Field Value

The last ports attack.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


LastSeen Property

IWhoisCounters..::..LastSeen Property

contains the date we have last encountered interaction with the ISP

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime LastSeen { get; set; }

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


LastTalkingDetection Property

IWhoisCounters..::..LastTalkingDetection Property

Gets or sets the last talking detection.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<DateTime> LastTalkingDetection { get; set; }

Field Value

The last talking detection.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


PortBasedIncidents Property

IWhoisCounters..::..PortBasedIncidents Property

Gets or sets the port based incidents.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int PortBasedIncidents { get; set; }

Field Value

The port based incidents.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


PortsAttacked Property

IWhoisCounters..::..PortsAttacked Property

Gets or sets the ports attacked.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int PortsAttacked { get; set; }

Field Value

The ports attacked.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


RequestsIncidents Property

IWhoisCounters..::..RequestsIncidents Property

Gets or sets the number of requests that contains incidents.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int RequestsIncidents { get; set; }

Field Value

The requests incidents.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


RequestsServed Property

IWhoisCounters..::..RequestsServed Property

Gets or sets the requests served.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int RequestsServed { get; set; }

Field Value

The requests served.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


TalkingAddresses Property

IWhoisCounters..::..TalkingAddresses Property

Gets or sets the talking addresses.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int TalkingAddresses { get; set; }

Field Value

The talking addresses.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


TalkingApplications Property

IWhoisCounters..::..TalkingApplications Property

Gets or sets the talking applications.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int TalkingApplications { get; set; }

Field Value

The talking applications.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


TalkingDetections Property

IWhoisCounters..::..TalkingDetections Property

Gets or sets the talking detections.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int TalkingDetections { get; set; }

Field Value

The talking detections.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


Users Property

IWhoisCounters..::..Users Property

Gets or sets the users.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int Users { get; set; }

Field Value

The users.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


UsersWithBlockStatus Property

IWhoisCounters..::..UsersWithBlockStatus Property

Gets or sets the users with block status.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int UsersWithBlockStatus { get; set; }

Field Value

The users with block status.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


UsersWithIncidents Property

IWhoisCounters..::..UsersWithIncidents Property

Gets or sets the users with incidents.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
int UsersWithIncidents { get; set; }

Field Value

The users with incidents.

See Also

IWhoisCounters Interface
Walter.Net.Networking Namespace


IWhoisIPRange Interface

Interface containing the Whois data storage for describing the IP ranges assigned to a ISP

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IWhoisIPRange

See Also

IWhoisIPRange Members
Walter.Net.Networking Namespace


IWhoisIPRange Members

The IWhoisIPRange type exposes the following members.

Methods

 | Name | Description
Public method | IsInRange(IPAddress) | Determines whether the IP is in range of the specified from and till addresses.
Public method | IsInRange(Int64) | Determines whether CIDR is in range of addresses specified for the range.

Properties

 | Name | Description
Public property | AddressesInRange | Get the number of IP addresses in Range
Public property | Discovered | Gets or time the address was discovered/ queried from the provider. If the date is "old" you might try and update to get any changes
Public property | From | Gets or sets starting IP range associated with the ISP .
Public property | Till | Gets or sets ending IP range associated with the ISP.

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


IWhoisIPRange Methods

Methods

 | Name | Description
Public method | IsInRange(IPAddress) | Determines whether the IP is in range of the specified from and till addresses.
Public method | IsInRange(Int64) | Determines whether CIDR is in range of addresses specified for the range.

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


IsInRange Method

IWhoisIPRange..::..IsInRange Method

Overload List

 | Name | Description
Public method | IsInRange(IPAddress) | Determines whether the IP is in range of the specified from and till addresses.
Public method | IsInRange(Int64) | Determines whether CIDR is in range of addresses specified for the range.

See Also

IWhoisIPRange Interface
IWhoisIPRange Members
Walter.Net.Networking Namespace


IsInRange Method (IPAddress)

IWhoisIPRange..::..IsInRange Method (IPAddress)

Determines whether the IP is in range of the specified from and till addresses.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool IsInRange(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

true if [is in range] [the specified address]; otherwise, false.

See Also

IWhoisIPRange Interface
IsInRange Overload
Walter.Net.Networking Namespace


IsInRange Method (Int64)

IWhoisIPRange..::..IsInRange Method (Int64)

Determines whether CIDR is in range of addresses specified for the range.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool IsInRange(
    long cidr
)

Parameters

cidr
Type: Int64
The CIDR to validate.

Return Value

true if the CIDR belongs to the IP range

See Also

IWhoisIPRange Interface
IsInRange Overload
Walter.Net.Networking Namespace


IWhoisIPRange Properties

The IWhoisIPRange type exposes the following members.

Properties

 | Name | Description
Public property | AddressesInRange | Get the number of IP addresses in Range
Public property | Discovered | Gets or time the address was discovered/ queried from the provider. If the date is "old" you might try and update to get any changes
Public property | From | Gets or sets starting IP range associated with the ISP .
Public property | Till | Gets or sets ending IP range associated with the ISP.

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


AddressesInRange Property

IWhoisIPRange..::..AddressesInRange Property

Get the number of IP addresses in Range

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
long AddressesInRange { get; }

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


Discovered Property

IWhoisIPRange..::..Discovered Property

Gets or time the address was discovered/ queried from the provider. If the date is "old" you might try and update to get any changes

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DateTime Discovered { get; }

Field Value

The discovered.

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


From Property

IWhoisIPRange..::..From Property

Gets or sets starting IP range associated with the ISP .

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress From { get; }

Field Value

From.

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


Till Property

IWhoisIPRange..::..Till Property

Gets or sets ending IP range associated with the ISP.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress Till { get; }

Field Value

The till.

See Also

IWhoisIPRange Interface
Walter.Net.Networking Namespace


IWhoisProvider Interface

Provider of Who-Is data

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IWhoisProvider

See Also

IWhoisProvider Members
Walter.Net.Networking Namespace


IWhoisProvider Members

The IWhoisProvider type exposes the following members.

Methods

 | Name | Description
Public method | WhoOwnsThis | Who is the ISP manager owning the IP address
Public method | WhoOwnsThisAsync(DnsEntry) | Who is the ISP manager owning the IP address
Public method | WhoOwnsThisAsync(IPAddress) | Who is the ISP manager owning the IP address

Properties

Name | Description
DefaultInstance | Gets or sets the default instance.

See Also

IWhoisProvider Interface
Walter.Net.Networking Namespace


IWhoisProvider Methods

The IWhoisProvider type exposes the following members.

Methods

 | Name | Description
Public method | WhoOwnsThis | Who is the ISP manager owning the IP address
Public method | WhoOwnsThisAsync(DnsEntry) | Who is the ISP manager owning the IP address
Public method | WhoOwnsThisAsync(IPAddress) | Who is the ISP manager owning the IP address

See Also

IWhoisProvider Interface
Walter.Net.Networking Namespace


WhoOwnsThis Method

IWhoisProvider..::..WhoOwnsThis Method

Who is the ISP manager owning the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IWhois WhoOwnsThis(
    DnsEntry entry
)

Parameters

entry
Type: Walter.Net.Networking..::..DnsEntry
the address to lookup

Return Value

WhoIs entry

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IWhoisProvider Interface
Walter.Net.Networking Namespace


WhoOwnsThisAsync Method

IWhoisProvider..::..WhoOwnsThisAsync Method

Overload List

 | Name | Description
Public method | WhoOwnsThisAsync(DnsEntry) | Who is the ISP manager owning the IP address
Public method | WhoOwnsThisAsync(IPAddress) | Who is the ISP manager owning the IP address

See Also

IWhoisProvider Interface
IWhoisProvider Members
Walter.Net.Networking Namespace


WhoOwnsThisAsync Method (DnsEntry)

IWhoisProvider..::..WhoOwnsThisAsync Method (DnsEntry)

Who is the ISP manager owning the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Task<IWhois> WhoOwnsThisAsync(
    DnsEntry entry
)

Parameters

entry
Type: Walter.Net.Networking..::..DnsEntry
the address to lookup

Return Value

WhoIs entry

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IWhoisProvider Interface
WhoOwnsThisAsync Overload
Walter.Net.Networking Namespace


WhoOwnsThisAsync Method (IPAddress)

IWhoisProvider..::..WhoOwnsThisAsync Method (IPAddress)

Who is the ISP manager owning the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Task<IWhois> WhoOwnsThisAsync(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to lookup

Return Value

WhoIs entry

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IWhoisProvider Interface
WhoOwnsThisAsync Overload
Walter.Net.Networking Namespace


IWhoisProvider Properties

The IWhoisProvider type exposes the following members.

Properties

Name | Description
DefaultInstance | Gets or sets the default instance.

See Also

IWhoisProvider Interface
Walter.Net.Networking Namespace


DefaultInstance Property

IWhoisProvider..::..DefaultInstance Property

Gets or sets the default instance.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IWhoisProvider> DefaultInstance { get; set; }

Field Value

The default instance.

See Also

IWhoisProvider Interface
Walter.Net.Networking Namespace


LocalNetwork Class

This class supports a set of methods that allow working with the local network.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class LocalNetwork

Remarks

Being able to discover all MAC addresses of IP addresses with out brute-force on a LAN in a smart way is quite help full. This class contains several such methods that are used by several of the products created in the Walter.* namespace.

See Also

LocalNetwork Members
Walter.Net.Networking Namespace


LocalNetwork Members

The LocalNetwork type exposes the following members.

Methods

Name | Description
CanPing(String) | Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
CanPing(Uri) | Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
DhcpServers | Get all DHCP servers on the LAN network
DnsServers | Get the DNS servers for this network according to the network cards configurations.
GatewayAddressesServers | Get all Gateway servers on the LAN
GetAllMacAddressesAndIpPairs | Gets all mac addresses and IP PAIRS visible to the computer.
GetEndpoints | Get the IP addresses between 2 points on the network
GetLocalNetworks | Get what the computer running the application consider to be the local networks
GetSubnetMasks | Get all IP addresses and subnet masks of the local computer
IpAddressOf | Get the IP address of a given host name.
IsAvailable | Look and test if a given IP address is responsive
LocalIPAddresses | Return all local IP addresses of all network cards
NetworkStats()()()() | Get all network statistics for all network cards
NetworkStats(IPAddress) | Get all network statistics for a local IPAddress
Tracert | Get a trace rout on the specified IP address.
WakeOnLan | Wakes the on LAN using a Mac address, to discover all available mac addresses use GetAllMacAddressesAndIpPairs() to query the network.
WinsServers | Windows Internet Name Service (WINS) servers

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


LocalNetwork Methods

The LocalNetwork type exposes the following members.

Methods

Name | Description
CanPing(String) | Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
CanPing(Uri) | Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
DhcpServers | Get all DHCP servers on the LAN network
DnsServers | Get the DNS servers for this network according to the network cards configurations.
GatewayAddressesServers | Get all Gateway servers on the LAN
GetAllMacAddressesAndIpPairs | Gets all mac addresses and IP PAIRS visible to the computer.
GetEndpoints | Get the IP addresses between 2 points on the network
GetLocalNetworks | Get what the computer running the application consider to be the local networks
GetSubnetMasks | Get all IP addresses and subnet masks of the local computer
IpAddressOf | Get the IP address of a given host name.
IsAvailable | Look and test if a given IP address is responsive
LocalIPAddresses | Return all local IP addresses of all network cards
NetworkStats()()()() | Get all network statistics for all network cards
NetworkStats(IPAddress) | Get all network statistics for a local IPAddress
Tracert | Get a trace rout on the specified IP address.
WakeOnLan | Wakes the on LAN using a Mac address, to discover all available mac addresses use GetAllMacAddressesAndIpPairs() to query the network.
WinsServers | Windows Internet Name Service (WINS) servers

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


CanPing Method

LocalNetwork..::..CanPing Method

Overload List

Name | Description
CanPing(String) | Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
CanPing(Uri) | Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply

See Also

LocalNetwork Class
LocalNetwork Members
Walter.Net.Networking Namespace


CanPing Method (String)

LocalNetwork..::..CanPing Method (String)

Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool CanPing(
    string IpAddressOrHostName
)

Parameters

IpAddressOrHostName
Type: String
The DNS Name or IP address to validate

Return Value

True if pinging could or is possible

See Also

LocalNetwork Class
CanPing Overload
Walter.Net.Networking Namespace


CanPing Method (Uri)

LocalNetwork..::..CanPing Method (Uri)

Will return true if the IPAaddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool CanPing(
    Uri IpAddressOrHostName
)

Parameters

IpAddressOrHostName
Type: Uri
The DNS Name or IP address to validate

Return Value

True if pinging could or is possible

See Also

LocalNetwork Class
CanPing Overload
Walter.Net.Networking Namespace


DhcpServers Method

LocalNetwork..::..DhcpServers Method

Get all DHCP servers on the LAN network

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<DnsEntry> DhcpServers()

Return Value

list of DHCP servers used by the machine

Remarks

If the LAN consists of multiple AD-Domains you entries may contain DHCP servers of external domains. Pay attention when in use with VPN servers as you may get DHCP server's located outside your own domain when using multiple NIC's

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


DnsServers Method

LocalNetwork..::..DnsServers Method

Get the DNS servers for this network according to the network cards configurations.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<IPAddress> DnsServers()

Return Value

list of IP addresses for the DNS servers

Remarks

Test the IP addresses to see if the IP address is local, LAN or WAN based to test if the list contains external DNS servers. Pay attention when in use with VPN servers as you may get DNS server's located outside your own domain when using multiple NIC's

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


GatewayAddressesServers Method

LocalNetwork..::..GatewayAddressesServers Method

Get all Gateway servers on the LAN

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<DnsEntry> GatewayAddressesServers()

Return Value

list of DHCP servers used by the machine

Remarks

Pay attention when in use with VPN servers as you may get Gateway server's located outside your own domain when using multiple NIC's

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


GetAllMacAddressesAndIpPairs Method

LocalNetwork..::..GetAllMacAddressesAndIpPairs Method

Gets all mac addresses and IP PAIRS visible to the computer.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static List<MacIpPair> GetAllMacAddressesAndIpPairs()

Return Value

List<MacIpPair>.

Remarks

This will use RRP broadcast to obtain the mac addresses for all devices connected with the DHCP server

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


GetEndpoints Method

LocalNetwork..::..GetEndpoints Method

Get the IP addresses between 2 points on the network

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static ValueTuple<IPAddress, IPAddress> GetEndpoints(
    Scope from,
    Scope to
)

Parameters

from
Type: Walter.Net.Networking..::..Scope
Start from
to
Type: Walter.Net.Networking..::..Scope
Destination till

Return Value

The 2 IP addresses that make up the 2 endpoints

Exceptions

Exception | Condition
Walter.Net.Networking..::..NetworkException | Will throw an exception if network not available

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


GetLocalNetworks Method

LocalNetwork..::..GetLocalNetworks Method

Get what the computer running the application consider to be the local networks

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static INetwork[] GetLocalNetworks()

Return Value

list of TCP networks

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


GetSubnetMasks Method

LocalNetwork..::..GetSubnetMasks Method

Get all IP addresses and subnet masks of the local computer

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<ValueTuple<IPAddress, IPAddress>> GetSubnetMasks()

Return Value

List with address and masks used

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


IpAddressOf Method

LocalNetwork..::..IpAddressOf Method

Get the IP address of a given host name.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IPAddress IpAddressOf(
    string hostName,
    Nullable<TimeSpan> timeout
)

Parameters

hostName
Type: String
Name of the host.
timeout
Type: Nullable <(Of <(<'TimeSpan>)>)>
How long the operation is allowed to take

Return Value

IPAddress.

Exceptions

Exception | Condition
[ArgumentException] | The host name must be provided - hostName

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


IsAvailable Method

LocalNetwork..::..IsAvailable Method

Look and test if a given IP address is responsive

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsAvailable(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

true if the specified address is available; otherwise, false.

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


LocalIPAddresses Method

LocalNetwork..::..LocalIPAddresses Method

Return all local IP addresses of all network cards

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<IPAddress> LocalIPAddresses()

Return Value

list of IP addresses

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


NetworkStats Method

LocalNetwork..::..NetworkStats Method

Overload List

Name | Description
NetworkStats()()()() | Get all network statistics for all network cards
NetworkStats(IPAddress) | Get all network statistics for a local IPAddress

See Also

LocalNetwork Class
LocalNetwork Members
Walter.Net.Networking Namespace


NetworkStats Method

LocalNetwork..::..NetworkStats Method

Get all network statistics for all network cards

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<ValueTuple<NetworkInterface, IPInterfaceStatistics>> NetworkStats()

Return Value

A list with tuples for the NIC and IP Interface statistics for each physical and virtual network card

Remarks

You can use multiple requests to obtain real-time bandwidth data.

See Also

LocalNetwork Class
NetworkStats Overload
Walter.Net.Networking Namespace


NetworkStats Method (IPAddress)

LocalNetwork..::..NetworkStats Method (IPAddress)

Get all network statistics for a local IPAddress

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<ValueTuple<NetworkInterface, IPInterfaceStatistics>> NetworkStats(
    IPAddress address
)

Parameters

address
Type: IPAddress

Return Value

If you have teamed your network card then you might get the statistics for both cards

Remarks

You can use multiple requests to obtain real-time bandwidth data.

See Also

LocalNetwork Class
NetworkStats Overload
Walter.Net.Networking Namespace


Tracert Method

LocalNetwork..::..Tracert Method

Get a trace rout on the specified IP address.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<TracertEntry> Tracert(
    IPAddress address,
    int maxHops,
    int timeout,
    bool useNs
)

Parameters

address
Type: IPAddress
The address.
maxHops
Type: Int32
timeout
Type: Int32
useNs
Type: Boolean

Return Value

IReadOnlyList<Tracert.TracertEntry>.

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


WakeOnLan Method

LocalNetwork..::..WakeOnLan Method

Wakes the on LAN using a Mac address, to discover all available mac addresses use GetAllMacAddressesAndIpPairs() to query the network.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Task WakeOnLan(
    string macAddress
)

Parameters

macAddress
Type: String
The mac address.

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


WinsServers Method

LocalNetwork..::..WinsServers Method

Windows Internet Name Service (WINS) servers

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<DnsEntry> WinsServers()

Return Value

list of DHCP servers used by the machine

Remarks

Pay attention when in use with VPN servers as you may get WINS server's located outside your own domain when using multiple NIC's

See Also

LocalNetwork Class
Walter.Net.Networking Namespace


LocalTracert Class

Provide access to trace information

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class LocalTracert

See Also

LocalTracert Members
Walter.Net.Networking Namespace


LocalTracert Members

The LocalTracert type exposes the following members.

Methods

Name | Description
GetTrace(IPAddress, Scope) |
GetTrace(IPAddress) |
WhatsMyIp | Get the public IP address of this machine
WhatsMyIpAsync | get the public IP address of this machine

See Also

LocalTracert Class
Walter.Net.Networking Namespace


LocalTracert Methods

The LocalTracert type exposes the following members.

Methods

Name | Description
GetTrace(IPAddress, Scope) |
GetTrace(IPAddress) |
WhatsMyIp | Get the public IP address of this machine
WhatsMyIpAsync | get the public IP address of this machine

See Also

LocalTracert Class
Walter.Net.Networking Namespace


GetTrace Method

LocalTracert..::..GetTrace Method

Overload List

Name | Description
GetTrace(IPAddress, Scope) |
GetTrace(IPAddress) |

See Also

LocalTracert Class
LocalTracert Members
Walter.Net.Networking Namespace


GetTrace Method (IPAddress, Scope)

LocalTracert..::..GetTrace Method (IPAddress, Scope)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<TraceEntry> GetTrace(
    IPAddress routToUse,
    Scope to
)

Parameters

routToUse
Type: IPAddress
to
Type: Walter.Net.Networking..::..Scope

Return Value

See Also

LocalTracert Class
GetTrace Overload
Walter.Net.Networking Namespace


GetTrace Method (IPAddress)

LocalTracert..::..GetTrace Method (IPAddress)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<TraceEntry> GetTrace(
    IPAddress routToUse
)

Parameters

routToUse
Type: IPAddress

Return Value

See Also

LocalTracert Class
GetTrace Overload
Walter.Net.Networking Namespace


WhatsMyIp Method

LocalTracert..::..WhatsMyIp Method

Get the public IP address of this machine

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IPAddress WhatsMyIp()

Return Value

Public IP address provided by the gateway or proxy

See Also

LocalTracert Class
Walter.Net.Networking Namespace


WhatsMyIpAsync Method

LocalTracert..::..WhatsMyIpAsync Method

get the public IP address of this machine

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Task<IPAddress> WhatsMyIpAsync()

Return Value

Public IP address provided by the gateway or proxy

Exceptions

Exception | Condition
Walter.Net.Networking..::..NetworkException | Will throw an exception if network is not available

See Also

LocalTracert Class
Walter.Net.Networking Namespace


MacIpPair Structure

the Struct MacIpPair contains the MAC and IP address pairs for a given adapter

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public struct MacIpPair

See Also

MacIpPair Members
Walter.Net.Networking Namespace


MacIpPair Members

The MacIpPair type exposes the following members.

Constructors

 | Name | Description
Public method | MacIpPair | Initializes a new instance of the MacIpPair struct.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(MacIpPair) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | IpAddress | The ip address
Public property | MacAddress | The mac address

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


MacIpPair Constructor

Initializes a new instance of the MacIpPair struct.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public MacIpPair(
    string mac,
    string ip,
    ArpStatus type
)

Parameters

mac
Type: String
The mac.
ip
Type: String
The ip.
type
Type: Walter.Net.Networking..::..ArpStatus
ARP record status

Exceptions

Exception | Condition
[System.ArgumentException] | Mac address needs to be provided - mac
[System.ArgumentException] | IP address needs to be provided - ip

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


MacIpPair Methods

The MacIpPair type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(MacIpPair) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


Equals Method

MacIpPair..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(MacIpPair) | Indicates whether the current object is equal to another object of the same type.

See Also

MacIpPair Structure
MacIpPair Members
Walter.Net.Networking Namespace


Equals Method (Nullable(Object))

MacIpPair..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

MacIpPair Structure
Equals Overload
Walter.Net.Networking Namespace


Equals Method (MacIpPair)

MacIpPair..::..Equals Method (MacIpPair)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool Equals(
    MacIpPair other
)

Parameters

other
Type: Walter.Net.Networking..::..MacIpPair
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

MacIpPair Structure
Equals Overload
Walter.Net.Networking Namespace


GetHashCode Method

MacIpPair..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


MacIpPair Operators

The MacIpPair type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


Equality Operator

MacIpPair..::..Equality Operator

Implements the == operator.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool operator ==(
    MacIpPair left,
    MacIpPair right
)

Parameters

left
Type: Walter.Net.Networking..::..MacIpPair
The left.
right
Type: Walter.Net.Networking..::..MacIpPair
The right.

Return Value

The result of the operator.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


Inequality Operator

MacIpPair..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool operator !=(
    MacIpPair left,
    MacIpPair right
)

Parameters

left
Type: Walter.Net.Networking..::..MacIpPair
The left.
right
Type: Walter.Net.Networking..::..MacIpPair
The right.

Return Value

The result of the operator.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


MacIpPair Properties

The MacIpPair type exposes the following members.

Properties

 | Name | Description
Public property | IpAddress | The ip address
Public property | MacAddress | The mac address

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


IpAddress Property

MacIpPair..::..IpAddress Property

The ip address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string IpAddress { get; }

Field Value

The ip address.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


MacAddress Property

MacIpPair..::..MacAddress Property

The mac address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string MacAddress { get; }

Field Value

The mac address.

See Also

MacIpPair Structure
Walter.Net.Networking Namespace


NetworkException Class

Class NetworkException. Implements the [System.Exception]

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class NetworkException

See Also

NetworkException Members
Walter.Net.Networking Namespace
[System.Exception]


NetworkException Members

Constructors

 | Name | Description
Public method | NetworkException()()()() | Initializes a new instance of the NetworkException class.
Public method | NetworkException(Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the NetworkException class.

See Also

NetworkException Class
Walter.Net.Networking Namespace


NetworkException Constructor

Overload List

 | Name | Description
Public method | NetworkException()()()() | Initializes a new instance of the NetworkException class.
Public method | NetworkException(Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the NetworkException class.

See Also

NetworkException Class
NetworkException Members
Walter.Net.Networking Namespace


NetworkException Constructor

Initializes a new instance of the NetworkException class.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public NetworkException()

See Also

NetworkException Class
NetworkException Overload
Walter.Net.Networking Namespace


NetworkException Constructor (Nullable(String))

NetworkException Constructor (Nullable<(Of <(<'String>)>)>)

Initializes a new instance of the NetworkException class.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public NetworkException(
    Nullable<string> message
)

Parameters

message
Type: Nullable <(Of <(<' String >)>)>
The message that describes the error.

See Also

NetworkException Class
NetworkException Overload
Walter.Net.Networking Namespace


NetworkExtensionMethods Class

Class Network Extension Methods adds additional network related capabilities to networking related classes like IPAddress and Uri.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class NetworkExtensionMethods

See Also

NetworkExtensionMethods Members
Walter.Net.Networking Namespace


NetworkExtensionMethods Members

The NetworkExtensionMethods type exposes the following members.

Methods

Name | Description
CanPing | Test if you can "ping" the domain in the URI
DnsHostName | Get the DNS HostName of an IP address
Domain | Get the domain part of the URL so https://www.someDomain.com/path?query=value#fragement becomes Https://www.someDomain.com
DomainName | get the domain name from a host entry
GetBroadcastAddress | Get Broadcast address of a given IP address
GetCommunicationScope | Get the communication scope between a the machine and a ip address
GetDomainReport(Uri) | Get the domain report for a given domain
GetDomainReport(Uri, DataExtensions) | Get the domain report for a given domain
GetDomainReportAsync | Get the domain report for a given domain
GetGeographyAsync | Try get the ISP hosting related data for a URL
GetNetworkAddress | Get the network Broadcast address given a address and a subnet
IP2Cidr | Convert the IP address to a CIDR format (Classless Inter-Domain Routing)
IsInLocalSubnet | Informs if the IP address is considered to be in a subnet mask of any of the server's assigned ip addresses (not reliable on IP6 when reverse PTR is not configured for V6
IsInSameSubnet(IPAddress, IPAddress, IPAddress) | Test to see if the IP address is in the same subnet as the source IP address
IsInSameSubnet(IPAddress, IPAddress) | Test to see if the IP address is in the same subnet as the source IP address
IsLocal | Informs if the URL maps to a resource managed by this computer
IsLocalIpAddress | Determines whether [is local IP address].
IsLoopback | Test if an IP address is a valid loop-back address on this machine
IsPubliclyAccessable | Will return true if the IPAddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
IsSubDomainOf(Uri, List<(Of <<'(Uri>)>>)) | Return the first index of the domain where the URI is a sub domain of
IsSubDomainOf(Uri, Uri) | Return the first index of the domain where the URI is a sub domain of
Scope | Get the scope of the communication
ToTopLevelDomain | Converts to top level domain.
TryGetDomainReport | Tries to validates the domain data in the URL and will extract top level domain, sub domain and host name.
TryGetGeography | Try get the ISP hosting related data for a URL
TryGetSubnetMask | get the Subnet mask of a local IP address
TryGetTopLevelDomain | Converts to top level domain.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


NetworkExtensionMethods Methods

The NetworkExtensionMethods type exposes the following members.

Methods

Name | Description
CanPing | Test if you can "ping" the domain in the URI
DnsHostName | Get the DNS HostName of an IP address
Domain | Get the domain part of the URL so https://www.someDomain.com/path?query=value#fragement becomes Https://www.someDomain.com
DomainName | get the domain name from a host entry
GetBroadcastAddress | Get Broadcast address of a given IP address
GetCommunicationScope | Get the communication scope between a the machine and a ip address
GetDomainReport(Uri) | Get the domain report for a given domain
GetDomainReport(Uri, DataExtensions) | Get the domain report for a given domain
GetDomainReportAsync | Get the domain report for a given domain
GetGeographyAsync | Try get the ISP hosting related data for a URL
GetNetworkAddress | Get the network Broadcast address given a address and a subnet
IP2Cidr | Convert the IP address to a CIDR format (Classless Inter-Domain Routing)
IsInLocalSubnet | Informs if the IP address is considered to be in a subnet mask of any of the server's assigned ip addresses (not reliable on IP6 when reverse PTR is not configured for V6
IsInSameSubnet(IPAddress, IPAddress, IPAddress) | Test to see if the IP address is in the same subnet as the source IP address
IsInSameSubnet(IPAddress, IPAddress) | Test to see if the IP address is in the same subnet as the source IP address
IsLocal | Informs if the URL maps to a resource managed by this computer
IsLocalIpAddress | Determines whether [is local IP address].
IsLoopback | Test if an IP address is a valid loop-back address on this machine
IsPubliclyAccessable | Will return true if the IPAddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply
IsSubDomainOf(Uri, List<(Of <<'(Uri>)>>)) | Return the first index of the domain where the URI is a sub domain of
IsSubDomainOf(Uri, Uri) | Return the first index of the domain where the URI is a sub domain of
Scope | Get the scope of the communication
ToTopLevelDomain | Converts to top level domain.
TryGetDomainReport | Tries to validates the domain data in the URL and will extract top level domain, sub domain and host name.
TryGetGeography | Try get the ISP hosting related data for a URL
TryGetSubnetMask | get the Subnet mask of a local IP address
TryGetTopLevelDomain | Converts to top level domain.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


CanPing Method

NetworkExtensionMethods..::..CanPing Method

Test if you can "ping" the domain in the URI

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool CanPing(
    Uri uri
)

Parameters

uri
Type: Uri
The URI

Return Value

Remarks

The domain does not have to be active nor does the firewall have to allow pings to go through, the theory is could you ping it, is a path via the network possible

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


DnsHostName Method

NetworkExtensionMethods..::..DnsHostName Method

Get the DNS HostName of an IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static string DnsHostName(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address to resolve

Return Value

the DNS name of an IP address

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


Domain Method

NetworkExtensionMethods..::..Domain Method

Get the domain part of the URL so https://www.someDomain.com/path?query=value#fragement becomes Https://www.someDomain.com

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Uri Domain(
    Uri uri
)

Parameters

uri
Type: Uri

Return Value

URI of only the domain

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


DomainName Method

NetworkExtensionMethods..::..DomainName Method

get the domain name from a host entry

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static string DomainName(
    IPHostEntry entry
)

Parameters

entry
Type: IPHostEntry

Return Value

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


GetBroadcastAddress Method

NetworkExtensionMethods..::..GetBroadcastAddress Method

Get Broadcast address of a given IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IPAddress GetBroadcastAddress(
    IPAddress address,
    IPAddress subnetMask
)

Parameters

address
Type: IPAddress
The IP address
subnetMask
Type: IPAddress
the subnet mask

Return Value

The broadcast address

Exceptions

Exception | Condition
[ArgumentException] | Lengths of IP address and subnet mask do not match if IP subnet does not belongs to IP address.
[ArgumentException] | Either IP address was null.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


GetCommunicationScope Method

NetworkExtensionMethods..::..GetCommunicationScope Method

Get the communication scope between a the machine and a ip address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static CommunicationScopes GetCommunicationScope(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to scope

Return Value

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


GetDomainReport Method

NetworkExtensionMethods..::..GetDomainReport Method

Overload List

Name | Description
GetDomainReport(Uri) | Get the domain report for a given domain
GetDomainReport(Uri, DataExtensions) | Get the domain report for a given domain

See Also

NetworkExtensionMethods Class
NetworkExtensionMethods Members
Walter.Net.Networking Namespace


GetDomainReport Method (Uri)

NetworkExtensionMethods..::..GetDomainReport Method (Uri)

Get the domain report for a given domain

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IDomainStatusReport GetDomainReport(
    Uri url
)

Parameters

url
Type: Uri
The URL.

Return Value

IDomainReport

Exceptions

Exception | Condition
[ArgumentNullException] | url
Walter.Net.Networking.TopLevelDomainQuery..::..DomainParseException | Only DNS based URI's are possible

See Also

NetworkExtensionMethods Class
GetDomainReport Overload
Walter.Net.Networking Namespace


GetDomainReport Method (Uri, DataExtensions)

NetworkExtensionMethods..::..GetDomainReport Method (Uri, DataExtensions)

Get the domain report for a given domain

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IDomainStatusReport GetDomainReport(
    Uri url,
    DataExtensions stats
)

Parameters

url
Type: Uri
The URL.
stats
Type: Walter.Net.Networking.TopLevelDomainQuery..::..DataExtensions
flags of stats to include

Return Value

IDomainReport

Exceptions

Exception | Condition
[ArgumentNullException] | url
Walter.Net.Networking.TopLevelDomainQuery..::..DomainParseException | Only DNS based URI's are possible

See Also

NetworkExtensionMethods Class
GetDomainReport Overload
Walter.Net.Networking Namespace


GetDomainReportAsync Method

NetworkExtensionMethods..::..GetDomainReportAsync Method

Get the domain report for a given domain

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Task<IDomainStatusReport> GetDomainReportAsync(
    Uri url,
    DataExtensions stats
)

Parameters

url
Type: Uri
The URL.
stats
Type: Walter.Net.Networking.TopLevelDomainQuery..::..DataExtensions
flags of stats to include

Return Value

IDomainReport

Exceptions

Exception | Condition
[ArgumentNullException] | url
Walter.Net.Networking.TopLevelDomainQuery..::..DomainParseException | Only DNS based URI's are possible

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


GetGeographyAsync Method

NetworkExtensionMethods..::..GetGeographyAsync Method

Try get the ISP hosting related data for a URL

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Task<IIPAddressGeo> GetGeographyAsync(
    Uri sender
)

Parameters

sender
Type: Uri
the url that was requesting the ISP data

Return Value

The discovered location of the URL hosting

Remarks

This method is not to fast, better to use a Geography plug-in

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


GetNetworkAddress Method

NetworkExtensionMethods..::..GetNetworkAddress Method

Get the network Broadcast address given a address and a subnet

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IPAddress GetNetworkAddress(
    IPAddress address,
    IPAddress subnetMask
)

Parameters

address
Type: IPAddress
The address
subnetMask
Type: IPAddress
the subnet

Return Value

Network address

Exceptions

Exception | Condition
[ArgumentException] | Either IP address was null.
[ArgumentException] | Lengths of IP address and subnet mask do not match if IP subnet does not belongs to IP address.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IP2Cidr Method

NetworkExtensionMethods..::..IP2Cidr Method

Convert the IP address to a CIDR format (Classless Inter-Domain Routing)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static long IP2Cidr(
    IPAddress ip
)

Parameters

ip
Type: IPAddress
The IP address.

Return Value

System.Int64.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IsInLocalSubnet Method

NetworkExtensionMethods..::..IsInLocalSubnet Method

Informs if the IP address is considered to be in a subnet mask of any of the server's assigned ip addresses (not reliable on IP6 when reverse PTR is not configured for V6

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsInLocalSubnet(
    IPAddress address
)

Parameters

address
Type: IPAddress
the IP address to test

Return Value

True if in the same subnet (LAN)

Remarks

For IPv6, this may fail, since most IPv6 deployments do not register the reverse (PTR) record for an IPv6 address. So this method may return the string IPv6 literal as the fully-qualified domain (FQDN) host name in the HostName property and will never give the right answer.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IsInSameSubnet Method

NetworkExtensionMethods..::..IsInSameSubnet Method

Overload List

Name | Description
IsInSameSubnet(IPAddress, IPAddress, IPAddress) | Test to see if the IP address is in the same subnet as the source IP address
IsInSameSubnet(IPAddress, IPAddress) | Test to see if the IP address is in the same subnet as the source IP address

See Also

NetworkExtensionMethods Class
NetworkExtensionMethods Members
Walter.Net.Networking Namespace


IsInSameSubnet Method (IPAddress, IPAddress, IPAddress)

NetworkExtensionMethods..::..IsInSameSubnet Method (IPAddress, IPAddress, IPAddress)

Test to see if the IP address is in the same subnet as the source IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsInSameSubnet(
    IPAddress address1,
    IPAddress address2,
    IPAddress subnetMask
)

Parameters

address1
Type: IPAddress
Firs address
address2
Type: IPAddress
Second address
subnetMask
Type: IPAddress
The subnet mash used to compute

Exceptions

Exception | Condition
[ArgumentException] | Either IP address was null.
[ArgumentException] | Lengths of IP address and subnet mask do not match if IP subnet does not belongs to IP address.

See Also

NetworkExtensionMethods Class
IsInSameSubnet Overload
Walter.Net.Networking Namespace


IsInSameSubnet Method (IPAddress, IPAddress)

NetworkExtensionMethods..::..IsInSameSubnet Method (IPAddress, IPAddress)

Test to see if the IP address is in the same subnet as the source IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsInSameSubnet(
    IPAddress address1,
    IPAddress address2
)

Parameters

address1
Type: IPAddress
Firs address
address2
Type: IPAddress
Second address

Exceptions

Exception | Condition
[ArgumentException] | Either IP address was null.
[ArgumentException] | Lengths of IP address and subnet mask do not match if IP subnet does not belongs to IP address.

See Also

NetworkExtensionMethods Class
IsInSameSubnet Overload
Walter.Net.Networking Namespace


IsLocal Method

NetworkExtensionMethods..::..IsLocal Method

Informs if the URL maps to a resource managed by this computer

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsLocal(
    Uri uri
)

Parameters

uri
Type: Uri

Return Value

True if the URL is local to this machine

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IsLocalIpAddress Method

NetworkExtensionMethods..::..IsLocalIpAddress Method

Determines whether [is local IP address].

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsLocalIpAddress(
    IPAddress host
)

Parameters

host
Type: IPAddress
The host.

Return Value

true if [is local IP address] [the specified host]; otherwise, false.

Exceptions

Exception | Condition
[ArgumentNullException] | Throws an exception if host's IP address is not provided

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IsLoopback Method

NetworkExtensionMethods..::..IsLoopback Method

Test if an IP address is a valid loop-back address on this machine

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsLoopback(
    IPAddress adress
)

Parameters

adress
Type: IPAddress
the IP address to test

Return Value

true if the IP address is a loop-back address

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IsPubliclyAccessable Method

NetworkExtensionMethods..::..IsPubliclyAccessable Method

Will return true if the IPAddress or DNS domain name could be accessed regardless of the fact that the server suppresses ping reply

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsPubliclyAccessable(
    Uri test
)

Parameters

test
Type: Uri
The DNS based URL to Test

Return Value

True if a path was found

Exceptions

Exception | Condition
[ArgumentNullException] | test
Walter.Net.Networking.TopLevelDomainQuery..::..DomainParseException | Only DNS based URI's are possible, you provided a {url.HostNameType }

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


IsSubDomainOf Method

NetworkExtensionMethods..::..IsSubDomainOf Method

Overload List

Name | Description
IsSubDomainOf(Uri, List<(Of <<'(Uri>)>>)) | Return the first index of the domain where the URI is a sub domain of
IsSubDomainOf(Uri, Uri) | Return the first index of the domain where the URI is a sub domain of

See Also

NetworkExtensionMethods Class
NetworkExtensionMethods Members
Walter.Net.Networking Namespace


IsSubDomainOf Method (Uri, List(Uri))

NetworkExtensionMethods..::..IsSubDomainOf Method (Uri, List<(Of <(<'Uri>)>)>)

Return the first index of the domain where the URI is a sub domain of

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static int IsSubDomainOf(
    Uri sender,
    List<Uri> urls
)

Parameters

sender
Type: Uri
The URL to test
urls
Type: List<(Of <(<'Uri>)>)>
the list of domains to test against

Return Value

-1 of not found or the

Remarks

Test the main domain being a first level http://www.domain.com or a 2nd level domain like http://www.domain.co.uk

See Also

NetworkExtensionMethods Class
IsSubDomainOf Overload
Walter.Net.Networking Namespace


IsSubDomainOf Method (Uri, Uri)

NetworkExtensionMethods..::..IsSubDomainOf Method (Uri, Uri)

Return the first index of the domain where the URI is a sub domain of

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool IsSubDomainOf(
    Uri sender,
    Uri test
)

Parameters

sender
Type: Uri
The baseline url
test
Type: Uri
the other url to test

Return Value

True if only the sub domains differ

Remarks

Test the main domain being a first level http://www.domain.com or a 2nd level domain like http://www.domain.co.uk

See Also

NetworkExtensionMethods Class
IsSubDomainOf Overload
Walter.Net.Networking Namespace


Scope Method

NetworkExtensionMethods..::..Scope Method

Get the scope of the communication

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static CommunicationScopes Scope(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address to scope

Return Value

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


ToTopLevelDomain Method

NetworkExtensionMethods..::..ToTopLevelDomain Method

Converts to top level domain.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static string ToTopLevelDomain(
    Uri link
)

Parameters

link
Type: Uri
The link to parse.

Return Value

System.String.

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


TryGetDomainReport Method

NetworkExtensionMethods..::..TryGetDomainReport Method

Tries to validates the domain data in the URL and will extract top level domain, sub domain and host name.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryGetDomainReport(
    Uri url,
    DataExtensions stats,
    out Nullable<IDomainStatusReport> report
)

Parameters

url
Type: Uri
The URL.
stats
Type: Walter.Net.Networking.TopLevelDomainQuery..::..DataExtensions
flags of stats to include
report
Type: Nullable <(Of <(<' IDomainStatusReport >)>)>%
The report generated

Return Value

IDomainReport

Exceptions

Exception | Condition
[ArgumentNullException] | url
Walter.Net.Networking.TopLevelDomainQuery..::..DomainParseException | Only DNS based URI's are possible

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


TryGetGeography Method

NetworkExtensionMethods..::..TryGetGeography Method

Try get the ISP hosting related data for a URL

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryGetGeography(
    Uri test,
    out Nullable<IIPAddressGeo> geography
)

Parameters

test
Type: Uri
geography
Type: Nullable <(Of <(<' IIPAddressGeo >)>)>%
The discovered location of the URL hosting

Return Value

True if the data could be retrieved

Remarks

This method is not to fast, better to use a Geography plug-in

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


TryGetSubnetMask Method

NetworkExtensionMethods..::..TryGetSubnetMask Method

get the Subnet mask of a local IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryGetSubnetMask(
    IPAddress address,
    out IPAddress ipMask
)

Parameters

address
Type: IPAddress
ipMask
Type: IPAddress%

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


TryGetTopLevelDomain Method

NetworkExtensionMethods..::..TryGetTopLevelDomain Method

Converts to top level domain.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryGetTopLevelDomain(
    Uri link,
    out Nullable<Uri> result
)

Parameters

link
Type: Uri
The link to parse.
result
Type: Nullable <(Of <(<'Uri>)>)>%
the top level domain name

Return Value

true if succeeded

See Also

NetworkExtensionMethods Class
Walter.Net.Networking Namespace


RipeClient Class

Class RipeClient. Implements the [System.IDisposable]

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class RipeClient : ClientBase

Inheritance Hierarchy

Walter.Net.Networking.ISP..::..ClientBase
Walter.Net.Networking..::..RipeClient

See Also

RipeClient Members
Walter.Net.Networking Namespace
[System.IDisposable]


RipeClient Members

The RipeClient type exposes the following members.

Constructors

 | Name | Description
Public method | RipeClient | Initializes a new instance of the RipeClient class.

Methods

 | Name | Description
Public method | DownloadOrganisation | Downloads the organization.
Public method | DownloadRoot | Downloads the root.
 | GetWhois | Get the Who-is data for the ISP woning the IP address
Public method | GetWhoisAsync | Get the Who-is data for the ISP woning the IP address

Properties

 | Name | Description
Protected property | Client | Gets the client. (Inherited from ClientBase.)

See Also

RipeClient Class
Walter.Net.Networking Namespace


RipeClient Constructor

Initializes a new instance of the RipeClient class.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public RipeClient()

See Also

RipeClient Class
Walter.Net.Networking Namespace


RipeClient Methods

The RipeClient type exposes the following members.

Methods

 | Name | Description
Public method | DownloadOrganisation | Downloads the organization.
Public method | DownloadRoot | Downloads the root.
 | GetWhois | Get the Who-is data for the ISP woning the IP address
Public method | GetWhoisAsync | Get the Who-is data for the ISP woning the IP address

See Also

RipeClient Class
Walter.Net.Networking Namespace


DownloadOrganisation Method

RipeClient..::..DownloadOrganisation Method

Downloads the organization.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<string> DownloadOrganisation(
    string organisationId
)

Parameters

organisationId
Type: String
The organization identifier.

Return Value

Task<HttpResponseMessage>.

See Also

RipeClient Class
Walter.Net.Networking Namespace


DownloadRoot Method

RipeClient..::..DownloadRoot Method

Downloads the root.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<string> DownloadRoot(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

Task<HttpResponseMessage>.

See Also

RipeClient Class
Walter.Net.Networking Namespace


GetWhois Method

RipeClient..::..GetWhois Method

Get the Who-is data for the ISP woning the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IWhois GetWhois(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: Walter.Net.Networking..::..DnsEntry

Return Value

IWhois.

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

RipeClient Class
Walter.Net.Networking Namespace


GetWhoisAsync Method

RipeClient..::..GetWhoisAsync Method

Get the Who-is data for the ISP woning the IP address

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<IWhois> GetWhoisAsync(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: Walter.Net.Networking..::..DnsEntry
The IP address to get the result for.

Return Value

IWhois for a given IP address or null if not found.

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

RipeClient Class
Walter.Net.Networking Namespace


RipeClient Properties

The RipeClient type exposes the following members.

Properties

 | Name | Description
Protected property | Client | Gets the client. (Inherited from ClientBase.)

See Also

RipeClient Class
Walter.Net.Networking Namespace


RuntimeValues Class

Semi-Constant values manipulated at runtime, usually they do not change during a session and used by the framework as needed

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class RuntimeValues

See Also

RuntimeValues Members
Walter.Net.Networking Namespace


RuntimeValues Members

The RuntimeValues type exposes the following members.

Properties

Name | Description
CookieContainer | Cookie container to use when communicating with web services
Intranet | IP range for intra-net LAN IP addresses that are considered to be LAN addresses
LicensedDomain | Gets or sets the licensed domain.
MemoryCash | Gets or sets the memory cash to be used by the framework.
PublicIpAddress | Gets or sets the public IP address as discovered by the runtime.
UserAgent | User agent used when consuming web services

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


RuntimeValues Properties

The RuntimeValues type exposes the following members.

Properties

Name | Description
CookieContainer | Cookie container to use when communicating with web services
Intranet | IP range for intra-net LAN IP addresses that are considered to be LAN addresses
LicensedDomain | Gets or sets the licensed domain.
MemoryCash | Gets or sets the memory cash to be used by the framework.
PublicIpAddress | Gets or sets the public IP address as discovered by the runtime.
UserAgent | User agent used when consuming web services

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


CookieContainer Property

RuntimeValues..::..CookieContainer Property

Cookie container to use when communicating with web services

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static CookieContainer CookieContainer { get; set; }

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


Intranet Property

RuntimeValues..::..Intranet Property

IP range for intra-net LAN IP addresses that are considered to be LAN addresses

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static List<ValueTuple<IPAddress, IPAddress>> Intranet { get; }

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


LicensedDomain Property

RuntimeValues..::..LicensedDomain Property

Gets or sets the licensed domain.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Nullable<Uri> LicensedDomain { get; set; }

Field Value

The licensed domain.

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


MemoryCash Property

RuntimeValues..::..MemoryCash Property

Gets or sets the memory cash to be used by the framework.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Nullable<IMemoryCache> MemoryCash { get; set; }

Field Value

The memory cash.

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


PublicIpAddress Property

RuntimeValues..::..PublicIpAddress Property

Gets or sets the public IP address as discovered by the runtime.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Nullable<IPAddress> PublicIpAddress { get; set; }

Field Value

The public IP address.

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


UserAgent Property

RuntimeValues..::..UserAgent Property

User agent used when consuming web services

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static string UserAgent { get; set; }

See Also

RuntimeValues Class
Walter.Net.Networking Namespace


Scope Enumeration

Sope of the networking to focus on

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum Scope

Members

Member name | Description
NotSet | no option provided
LAN | Local area network
WAN | Wide area network IP address (Kind of like WhatsMyIp on the Internet)
Gateway | Get the IP address of the gateway
IspRouters | Get the IP address if the routers in your ISP's network
TraceRoute | All hubs starting your public IP address to all IP addresses including the endpoint (only viable when asking a segment of iP addresses)
Endpoint | Get the IP address of a given endpoint, (Kind of like WhatsHisIp)

See Also

Walter.Net.Networking Namespace


TraceEntry Class

Class TraceRout data object.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class TraceEntry

See Also

TraceEntry Members
Walter.Net.Networking Namespace


TraceEntry Members

The TraceEntry type exposes the following members.

Constructors

 | Name | Description
Public method | TraceEntry | Initializes a new instance of the TraceEntry class.

Properties

 | Name | Description
Public property | Duration | Gets the cumulative latency till this point.
Public property | HubNr | Gets the hub nr.
Public property | IPAddress | Gets the IP address.
Public property | Latency | Gets the latency op the hub.
Public property | Location | Gets the location along the route.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


TraceEntry Constructor

Initializes a new instance of the TraceEntry class.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public TraceEntry(
    int hub,
    IPAddress ip,
    Scope location,
    TimeSpan latency,
    TimeSpan duration
)

Parameters

hub
Type: Int32
The hub number made.
ip
Type: IPAddress
The IP at the hub.
location
Type: Walter.Net.Networking..::..Scope
The location of the ip address.
latency
Type: TimeSpan
The latency.
duration
Type: TimeSpan
The duration.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


TraceEntry Properties

The TraceEntry type exposes the following members.

Properties

 | Name | Description
Public property | Duration | Gets the cumulative latency till this point.
Public property | HubNr | Gets the hub nr.
Public property | IPAddress | Gets the IP address.
Public property | Latency | Gets the latency op the hub.
Public property | Location | Gets the location along the route.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


Duration Property

TraceEntry..::..Duration Property

Gets the cumulative latency till this point.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public TimeSpan Duration { get; set; }

Field Value

The duration.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


HubNr Property

TraceEntry..::..HubNr Property

Gets the hub nr.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public int HubNr { get; set; }

Field Value

The hub nr.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


IPAddress Property

TraceEntry..::..IPAddress Property

Gets the IP address.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IPAddress IPAddress { get; set; }

Field Value

The IP address.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


Latency Property

TraceEntry..::..Latency Property

Gets the latency op the hub.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public TimeSpan Latency { get; set; }

Field Value

The latency.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


Location Property

TraceEntry..::..Location Property

Gets the location along the route.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Scope Location { get; set; }

Field Value

The location.

See Also

TraceEntry Class
Walter.Net.Networking Namespace


UriHelpers Class

Class UriHelpers contain helper methods for use in project.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class UriHelpers

See Also

UriHelpers Members
Walter.Net.Networking Namespace


UriHelpers Members

The UriHelpers type exposes the following members.

Methods

Name | Description
TryGetQuery<(Of <<'(T>)>>) | Tries the get query parameter from a query string in the expected data type, will fail if the key doesn't exists or the value is not compatible.

See Also

UriHelpers Class
Walter.Net.Networking Namespace


UriHelpers Methods

The UriHelpers type exposes the following members.

Methods

Name | Description
TryGetQuery<(Of <<'(T>)>>) | Tries the get query parameter from a query string in the expected data type, will fail if the key doesn't exists or the value is not compatible.

See Also

UriHelpers Class
Walter.Net.Networking Namespace


TryGetQuery(T) Method

UriHelpers..::..TryGetQuery<(Of <(<'T>)>)> Method

Tries the get query parameter from a query string in the expected data type, will fail if the key doesn't exists or the value is not compatible.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryGetQuery<T>(
    Uri uri,
    string argumentName,
    out Nullable<T> value
)

Type Parameters

T
The type to cast into

Parameters

uri
Type: Uri
The URI.
argumentName
Type: String
Name of the argument.
value
Type: Nullable <(Of <(<'T>)>)>%
The value to populate.

Return Value

true if successful, false otherwise.

See Also

UriHelpers Class
Walter.Net.Networking Namespace


WhoisContactTypes Enumeration

Enum WhoisContactTypes marks the role that a WHOIS contact has for the public. This can be a organizational group or a person

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum WhoisContactTypes

Members

Member name | Description
UnKnown | The contact type is not specified
Organization | The details are for an organization
Administration | The details are for a administrative contact
Technical | The technical are for a technical contact
AbuseContactAdministrator | The abuse contact administrator manages the abuse data entry
Person | a person with an unknown role
TechnicalPerson | The technical person
AdministrativePerson | The administrative person
Group | Contact is a organizational group

See Also

Walter.Net.Networking Namespace


WhoisStatus Enumeration

Enum WhoisStatus

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum WhoisStatus

Members

Member name | Description
UnKnown | The unknown status
OutDated | The data is out dated
Ok | The data is okey
Shallow | The data is shallow(no related data)
NotFound | The entry was not found

See Also

Walter.Net.Networking Namespace


Walter.Net.Networking.Builder Namespace

Classes

 | Class | Description
Public class | NetworkingBuilderExtensions | Extension class use to inject Networking features/>


NetworkingBuilderExtensions Class

Extension class use to inject Networking features/>

Namespace: Walter.Net.Networking.Builder
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class NetworkingBuilderExtensions

See Also

NetworkingBuilderExtensions Members
Walter.Net.Networking.Builder Namespace


NetworkingBuilderExtensions Members

The NetworkingBuilderExtensions type exposes the following members.

Methods

Name | Description
AddDNSManager<(Of <<'(T>)>>) | Adds the DNS manager and networking factories to the service factory.

See Also

NetworkingBuilderExtensions Class
Walter.Net.Networking.Builder Namespace


NetworkingBuilderExtensions Methods

The NetworkingBuilderExtensions type exposes the following members.

Methods

Name | Description
AddDNSManager<(Of <<'(T>)>>) | Adds the DNS manager and networking factories to the service factory.

See Also

NetworkingBuilderExtensions Class
Walter.Net.Networking.Builder Namespace


AddDNSManager(T) Method

NetworkingBuilderExtensions..::..AddDNSManager<(Of <(<'T>)>)> Method

Adds the DNS manager and networking factories to the service factory.

Namespace: Walter.Net.Networking.Builder
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static T AddDNSManager<T>(
    T serviceCollection
)
where T : IServiceCollection

Type Parameters

T
The service factory to enhance

Parameters

serviceCollection
Type: T
The service collection.

Return Value

T.

Exceptions

Exception | Condition
[ArgumentNullException] | serviceCollection

See Also

NetworkingBuilderExtensions Class
Walter.Net.Networking.Builder Namespace


Walter.Net.Networking.DNS Namespace

Classes

 | Class | Description
Public class | NSLookup | Class NSLookup.

Interfaces

 | Interface | Description
Public interface | IPokeResponse | Poke a host name or IP address and see what it returns on information

Enumerations

 | Enumeration | Description
Public enumeration | PokeRecord | Record data set


IPokeResponse Interface

Poke a host name or IP address and see what it returns on information

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IPokeResponse

See Also

IPokeResponse Members
Walter.Net.Networking.DNS Namespace


IPokeResponse Members

The IPokeResponse type exposes the following members.

Properties

 | Name | Description
Public property | DNSResponceTime | The time it took for the DNS server to answer (is using stop to time answer)
Public property | HostAddresses | IP address of the host Host
Public property | HostName | The Host name as resolved by DNS server

See Also

IPokeResponse Interface
Walter.Net.Networking.DNS Namespace


IPokeResponse Properties

The IPokeResponse type exposes the following members.

Properties

 | Name | Description
Public property | DNSResponceTime | The time it took for the DNS server to answer (is using stop to time answer)
Public property | HostAddresses | IP address of the host Host
Public property | HostName | The Host name as resolved by DNS server

See Also

IPokeResponse Interface
Walter.Net.Networking.DNS Namespace


DNSResponceTime Property

IPokeResponse..::..DNSResponceTime Property

The time it took for the DNS server to answer (is using stop to time answer)

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
TimeSpan DNSResponceTime { get; }

See Also

IPokeResponse Interface
Walter.Net.Networking.DNS Namespace


HostAddresses Property

IPokeResponse..::..HostAddresses Property

IP address of the host Host

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IReadOnlyList<IPAddress> HostAddresses { get; }

See Also

IPokeResponse Interface
Walter.Net.Networking.DNS Namespace


HostName Property

IPokeResponse..::..HostName Property

The Host name as resolved by DNS server

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string HostName { get; }

See Also

IPokeResponse Interface
Walter.Net.Networking.DNS Namespace


NSLookup Class

Class NSLookup.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class NSLookup

See Also

NSLookup Members
Walter.Net.Networking.DNS Namespace


NSLookup Members

The NSLookup type exposes the following members.

Constructors

 | Name | Description
Public method | NSLookup | Initializes a new instance of the NSLookup class.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Addresses | Gets the addresses.
Public property | Error | Gets the error.
Public property | Name | Gets the name.
Public property | Query | Gets the query.
Public property | ServerName | Gets the name of the server.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


NSLookup Constructor

Initializes a new instance of the NSLookup class.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public NSLookup(
    string query,
    string server,
    IPAddress serverIp
)

Parameters

query
Type: String
The query.
server
Type: String
The server.
serverIp
Type: IPAddress
The server ip.

Exceptions

Exception | Condition
[System.ArgumentException] | Query must be provided - query
[System.ArgumentException] | DNS server name must be provided - server
[System.ArgumentNullException] | serverIp

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


NSLookup Properties

The NSLookup type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Addresses | Gets the addresses.
Public property | Error | Gets the error.
Public property | Name | Gets the name.
Public property | Query | Gets the query.
Public property | ServerName | Gets the name of the server.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


Address Property

NSLookup..::..Address Property

Gets the address.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IPAddress Address { get; set; }

Field Value

The address.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


Addresses Property

NSLookup..::..Addresses Property

Gets the addresses.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public List<IPAddress> Addresses { get; }

Field Value

The addresses.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


Error Property

NSLookup..::..Error Property

Gets the error.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Nullable<string> Error { get; set; }

Field Value

The error.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


Name Property

NSLookup..::..Name Property

Gets the name.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Nullable<string> Name { get; set; }

Field Value

The name.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


Query Property

NSLookup..::..Query Property

Gets the query.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Query { get; }

Field Value

The query.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


ServerName Property

NSLookup..::..ServerName Property

Gets the name of the server.

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string ServerName { get; }

Field Value

The name of the server.

See Also

NSLookup Class
Walter.Net.Networking.DNS Namespace


PokeRecord Enumeration

Record data set

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum PokeRecord

Members

Member name | Description
NotSet | not set
SOA | SOA Record
A | Domain name
AAAA | Host AAAA record (IP6)
CNAME | A Canonical Name for a domain (alias)
MX | Mail Exchange (MX) records
NS | Name server
PRT | A pointer (PTR) record is a type of Domain Name System
TXT | A Text record

See Also

Walter.Net.Networking.DNS Namespace


Walter.Net.Networking.EventArg Namespace

Classes

 | Class | Description
Public class | OnISPTrustLevelChangeEventArgs | Event arguments for OnTrustLevelChanged Implements the [System.EventArgs]


OnISPTrustLevelChangeEventArgs Class

Event arguments for OnTrustLevelChanged Implements the [System.EventArgs]

Namespace: Walter.Net.Networking.EventArg
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public sealed class OnISPTrustLevelChangeEventArgs

See Also

OnISPTrustLevelChangeEventArgs Members
Walter.Net.Networking.EventArg Namespace
[System.EventArgs]


OnISPTrustLevelChangeEventArgs Members

The OnISPTrustLevelChangeEventArgs type exposes the following members.

Constructors

 | Name | Description
Public method | OnISPTrustLevelChangeEventArgs | Initializes a new instance of the OnISPTrustLevelChangeEventArgs class.

Properties

 | Name | Description
Public property | Changed | Gets the changed WHOIS object.
Public property | RangeOnly | Gets a value indicating whether the WHOIS range is only affected or the whole ISP is to be affected.

See Also

OnISPTrustLevelChangeEventArgs Class
Walter.Net.Networking.EventArg Namespace


OnISPTrustLevelChangeEventArgs Constructor

Initializes a new instance of the OnISPTrustLevelChangeEventArgs class.

Namespace: Walter.Net.Networking.EventArg
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public OnISPTrustLevelChangeEventArgs(
    IWhois changed,
    bool rangeOnly
)

Parameters

changed
Type: Walter.Net.Networking..::..IWhois
The whois ISP provider that was affected by the change.
rangeOnly
Type: Boolean
if set to true than this only affects the ISP IP range located in the WHOIS object.

See Also

OnISPTrustLevelChangeEventArgs Class
Walter.Net.Networking.EventArg Namespace


OnISPTrustLevelChangeEventArgs Properties

The OnISPTrustLevelChangeEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Changed | Gets the changed WHOIS object.
Public property | RangeOnly | Gets a value indicating whether the WHOIS range is only affected or the whole ISP is to be affected.

See Also

OnISPTrustLevelChangeEventArgs Class
Walter.Net.Networking.EventArg Namespace


Changed Property

OnISPTrustLevelChangeEventArgs..::..Changed Property

Gets the changed WHOIS object.

Namespace: Walter.Net.Networking.EventArg
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IWhois Changed { get; }

Field Value

The changed.

See Also

OnISPTrustLevelChangeEventArgs Class
Walter.Net.Networking.EventArg Namespace


RangeOnly Property

OnISPTrustLevelChangeEventArgs..::..RangeOnly Property

Gets a value indicating whether the WHOIS range is only affected or the whole ISP is to be affected.

Namespace: Walter.Net.Networking.EventArg
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool RangeOnly { get; }

Field Value

true if [range only]; otherwise, false.

See Also

OnISPTrustLevelChangeEventArgs Class
Walter.Net.Networking.EventArg Namespace


Walter.Net.Networking.IANA Namespace

Classes

 | Class | Description
Public class | ProtoCollNumbers | Database utility class for mapping official protocol numbers


ProtoCollNumbers Class

Database utility class for mapping official protocol numbers

Namespace: Walter.Net.Networking.IANA
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static class ProtoCollNumbers

See Also

ProtoCollNumbers Members
Walter.Net.Networking.IANA Namespace


ProtoCollNumbers Members

The ProtoCollNumbers type exposes the following members.

Methods

Name | Description
TryGet | try and get the IANA protocol name that goes with a port number

See Also

ProtoCollNumbers Class
Walter.Net.Networking.IANA Namespace


ProtoCollNumbers Methods

The ProtoCollNumbers type exposes the following members.

Methods

Name | Description
TryGet | try and get the IANA protocol name that goes with a port number

See Also

ProtoCollNumbers Class
Walter.Net.Networking.IANA Namespace


TryGet Method

ProtoCollNumbers..::..TryGet Method

try and get the IANA protocol name that goes with a port number

Namespace: Walter.Net.Networking.IANA
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static bool TryGet(
    int port,
    out Nullable<string> serviceName
)

Parameters

port
Type: Int32
the port to query
serviceName
Type: Nullable <(Of <(<' String >)>)>%
the service name if successful

Return Value

TRue if port was found

See Also

ProtoCollNumbers Class
Walter.Net.Networking.IANA Namespace


Walter.Net.Networking.ISP Namespace

Classes

 | Class | Description
Public class | ClientBase | Class ClientBase. Implements the [System.IDisposable]


ClientBase Class

Class ClientBase. Implements the [System.IDisposable]

Namespace: Walter.Net.Networking.ISP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public abstract class ClientBase

See Also

ClientBase Members
Walter.Net.Networking.ISP Namespace
[System.IDisposable]


ClientBase Members

The ClientBase type exposes the following members.

Constructors

 | Name | Description
Public method | ClientBase | Initializes a new instance of the ClientBase class.

Methods

 | Name | Description
Public method | GetWhoisAsync | Gets the whois for a given IP address using the concrete implementation.

Properties

 | Name | Description
Protected property | Client | Gets the client.

See Also

ClientBase Class
Walter.Net.Networking.ISP Namespace


ClientBase Constructor

Initializes a new instance of the ClientBase class.

Namespace: Walter.Net.Networking.ISP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public ClientBase(
    Nullable<ILoggerFactory> factory,
    string agent
)

Parameters

factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
logger base
agent
Type: String
The user agent.

See Also

ClientBase Class
Walter.Net.Networking.ISP Namespace


ClientBase Methods

The ClientBase type exposes the following members.

Methods

 | Name | Description
Public method | GetWhoisAsync | Gets the whois for a given IP address using the concrete implementation.

See Also

ClientBase Class
Walter.Net.Networking.ISP Namespace


GetWhoisAsync Method

ClientBase..::..GetWhoisAsync Method

Gets the whois for a given IP address using the concrete implementation.

Namespace: Walter.Net.Networking.ISP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public Task<IWhois> GetWhoisAsync(
    DnsEntry dns
)

Parameters

dns
Type: Walter.Net.Networking..::..DnsEntry

Return Value

IWhois for a given IP address or null if not found.

Exceptions

Exception | Condition
[ArgumentNullException] | IP address must be provided

See Also

ClientBase Class
Walter.Net.Networking.ISP Namespace


ClientBase Properties

The ClientBase type exposes the following members.

Properties

 | Name | Description
Protected property | Client | Gets the client.

See Also

ClientBase Class
Walter.Net.Networking.ISP Namespace


Client Property

ClientBase..::..Client Property

Gets the client.

Namespace: Walter.Net.Networking.ISP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
protected WafWebClient Client { get; }

Field Value

The client.

See Also

ClientBase Class
Walter.Net.Networking.ISP Namespace


Walter.Net.Networking.Properties Namespace

Classes

 | Class | Description
Public class | Resources | A strongly-typed resource class, for looking up localized strings, etc.


Resources Class

A strongly-typed resource class, for looking up localized strings, etc.

Namespace: Walter.Net.Networking.Properties
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class Resources

See Also

Resources Members
Walter.Net.Networking.Properties Namespace


Resources Members

The Resources type exposes the following members.

Properties

Name | Description
Culture | Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class.
ResourceManager | Returns the cached ResourceManager instance used by this class.
service_names_port_numbers | Looks up a localized string similar to <?xml version='1.0' encoding='UTF-8'?> <?xml-stylesheet type="text/xsl" href="service-names-port-numbers.xsl"?> <?oxygen RNGSchema="service-names-port-numbers.rng" type="xml"?> <registry xmlns="http://www.iana.org/assignments" id="service-names-port-numbers"> <title>Service Name and Transport Protocol Port Number Registry</title> <category>Service Names and Transport Protocol Port Numbers</category> <updated>2020-08-12</updated> <xref type="rfc" data="rfc6335"/> <expert>TCP/UDP: Joe Touch; Eliot L [rest of string was truncated]";.

See Also

Resources Class
Walter.Net.Networking.Properties Namespace


Resources Properties

The Resources type exposes the following members.

Properties

Name | Description
Culture | Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class.
ResourceManager | Returns the cached ResourceManager instance used by this class.
service_names_port_numbers | Looks up a localized string similar to <?xml version='1.0' encoding='UTF-8'?> <?xml-stylesheet type="text/xsl" href="service-names-port-numbers.xsl"?> <?oxygen RNGSchema="service-names-port-numbers.rng" type="xml"?> <registry xmlns="http://www.iana.org/assignments" id="service-names-port-numbers"> <title>Service Name and Transport Protocol Port Number Registry</title> <category>Service Names and Transport Protocol Port Numbers</category> <updated>2020-08-12</updated> <xref type="rfc" data="rfc6335"/> <expert>TCP/UDP: Joe Touch; Eliot L [rest of string was truncated]";.

See Also

Resources Class
Walter.Net.Networking.Properties Namespace


Culture Property

Resources..::..Culture Property

Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class.

Namespace: Walter.Net.Networking.Properties
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static CultureInfo Culture { get; set; }

See Also

Resources Class
Walter.Net.Networking.Properties Namespace


ResourceManager Property

Resources..::..ResourceManager Property

Returns the cached ResourceManager instance used by this class.

Namespace: Walter.Net.Networking.Properties
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static ResourceManager ResourceManager { get; }

See Also

Resources Class
Walter.Net.Networking.Properties Namespace


service_names_port_numbers Property

Resources..::..service_names_port_numbers Property

Looks up a localized string similar to <?xml version='1.0' encoding='UTF-8'?> <?xml-stylesheet type="text/xsl" href="service-names-port-numbers.xsl"?> <?oxygen RNGSchema="service-names-port-numbers.rng" type="xml"?> <registry xmlns="http://www.iana.org/assignments" id="service-names-port-numbers"> <title>Service Name and Transport Protocol Port Number Registry</title> <category>Service Names and Transport Protocol Port Numbers</category> <updated>2020-08-12</updated> <xref type="rfc" data="rfc6335"/> <expert>TCP/UDP: Joe Touch; Eliot L [rest of string was truncated]";.

Namespace: Walter.Net.Networking.Properties
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static string service_names_port_numbers { get; }

See Also

Resources Class
Walter.Net.Networking.Properties Namespace


Walter.Net.Networking.TCP Namespace

Classes

 | Class | Description
Public class | TCPIPNetwork | Class TCPIPNetwork.

Interfaces

 | Interface | Description
Public interface | INetwork | Access the IP network configuration


INetwork Interface

Access the IP network configuration

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface INetwork

See Also

INetwork Members
Walter.Net.Networking.TCP Namespace


INetwork Members

The INetwork type exposes the following members.

Methods

 | Name | Description
Public method | Contains | Allows you to test if the IP address belongs to this network
 | ListAddreses | return a iterator allowing you to loop over a network
 | Parse(IPAddress, IPAddress) | Parse the IP address and Subnet mask to get the network
 | Parse(IPAddress) | single IP address
 | Parse(IPAddress, Byte) | From a single IP address to a range
 | Parse(String) | Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24
 | Parse(String, String) | Parse the IP address and Subnet mask to get the network
 | TryParse | tries to parse a IP/CIDR string to a network

Properties

 | Name | Description
Public property | AddressFamily | Address Family
Public property | Broadcast | Broadcast address
Public property | Count | the number of IP addresses available in network
Public property | FirstUsable | First usable IP address in Network
Public property | LastUsable | Last usable IP address in Network

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


INetwork Methods

The INetwork type exposes the following members.

Methods

 | Name | Description
Public method | Contains | Allows you to test if the IP address belongs to this network
 | ListAddreses | return a iterator allowing you to loop over a network
 | Parse(IPAddress, IPAddress) | Parse the IP address and Subnet mask to get the network
 | Parse(IPAddress) | single IP address
 | Parse(IPAddress, Byte) | From a single IP address to a range
 | Parse(String) | Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24
 | Parse(String, String) | Parse the IP address and Subnet mask to get the network
 | TryParse | tries to parse a IP/CIDR string to a network

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


Contains Method

INetwork..::..Contains Method

Allows you to test if the IP address belongs to this network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool Contains(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to validate

Return Value

True if matched

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


ListAddreses Method

INetwork..::..ListAddreses Method

return a iterator allowing you to loop over a network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IEnumerable<IPAddress> ListAddreses(
    IPAddress address,
    IPAddress subnetmask
)

Parameters

address
Type: IPAddress
subnetmask
Type: IPAddress

Return Value

the list of IP addresses in the range

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace
INetwork..::..Contains(IPAddress)


Parse Method

INetwork..::..Parse Method

Overload List

Name | Description
Parse(IPAddress, IPAddress) | Parse the IP address and Subnet mask to get the network
Parse(IPAddress) | single IP address
Parse(IPAddress, Byte) | From a single IP address to a range
Parse(String) | Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24
Parse(String, String) | Parse the IP address and Subnet mask to get the network

See Also

INetwork Interface
INetwork Members
Walter.Net.Networking.TCP Namespace


Parse Method (IPAddress, IPAddress)

INetwork..::..Parse Method (IPAddress, IPAddress)

Parse the IP address and Subnet mask to get the network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
INetwork Parse(
    IPAddress address,
    IPAddress subnetmask
)

Parameters

address
Type: IPAddress
subnetmask
Type: IPAddress

Return Value

See Also

INetwork Interface
Parse Overload
Walter.Net.Networking.TCP Namespace


Parse Method (IPAddress)

INetwork..::..Parse Method (IPAddress)

single IP address

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
INetwork Parse(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to take

Return Value

only 1 address

See Also

INetwork Interface
Parse Overload
Walter.Net.Networking.TCP Namespace


Parse Method (IPAddress, Byte)

INetwork..::..Parse Method (IPAddress, Byte)

From a single IP address to a range

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
INetwork Parse(
    IPAddress address,
    byte cidr
)

Parameters

address
Type: IPAddress
the address to take
cidr
Type: Byte
use the CIDR calculate the subnet mast

Return Value

Network range

Remarks

sample IPV4 192.168.1.1 with a 32 bit address, please note that IPV6 is 64 bit address so start at 64 make a narrow range cidr=32: first in range 192.168.1.0 -> Last in range 192.168.1.0 count=1 cidr=31: first in range 192.168.1.0 -> Last in range 192.168.1.0 count=1 cidr=30: first in range 192.168.1.1 -> Last in range 192.168.1.2 count=2 cidr=29: first in range 192.168.1.1 -> Last in range 192.168.1.6 count=6 cidr=28: first in range 192.168.1.1 -> Last in range 192.168.1.14 count=14 cidr=27: first in range 192.168.1.1 -> Last in range 192.168.1.30 count=30 cidr=26: first in range 192.168.1.1 -> Last in range 192.168.1.62 count=62 cidr=25: first in range 192.168.1.1 -> Last in range 192.168.1.126 count=126 cidr=24: first in range 192.168.1.1 -> Last in range 192.168.1.254 count=254 ================================SWITCH=========================================== cidr=23: first in range 192.168.0.1 -> Last in range 192.168.1.254 count=510 cidr=22: first in range 192.168.0.1 -> Last in range 192.168.3.254 count=1022 cidr=21: first in range 192.168.0.1 -> Last in range 192.168.7.254 count=2046 cidr=20: first in range 192.168.0.1 -> Last in range 192.168.15.254 count=4094 cidr=19: first in range 192.168.0.1 -> Last in range 192.168.31.254 count=8190 cidr=18: first in range 192.168.0.1 -> Last in range 192.168.63.254 count=16382 cidr=17: first in range 192.168.0.1 -> Last in range 192.168.127.254 count=32766 cidr=16: first in range 192.168.0.1 -> Last in range 192.168.255.254 count=65534 cidr=15: first in range 192.168.0.1 -> Last in range 192.169.255.254 count=131070 cidr=14: first in range 192.168.0.1 -> Last in range 192.171.255.254 count=262142 cidr=13: first in range 192.168.0.1 -> Last in range 192.175.255.254 count=524286 ================================SWITCH===========================================

See Also

INetwork Interface
Parse Overload
Walter.Net.Networking.TCP Namespace


Parse Method (String)

INetwork..::..Parse Method (String)

Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
INetwork Parse(
    string AddressCidr
)

Parameters

AddressCidr
Type: String
Address in ip/cidr range or ip%range

Return Value

the network

See Also

INetwork Interface
Parse Overload
Walter.Net.Networking.TCP Namespace


Parse Method (String, String)

INetwork..::..Parse Method (String, String)

Parse the IP address and Subnet mask to get the network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
INetwork Parse(
    string address,
    string subnetmask
)

Parameters

address
Type: String
subnetmask
Type: String

Return Value

See Also

INetwork Interface
Parse Overload
Walter.Net.Networking.TCP Namespace


TryParse Method

INetwork..::..TryParse Method

tries to parse a IP/CIDR string to a network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
bool TryParse(
    string AddressCidr,
    out Nullable<INetwork> network
)

Parameters

AddressCidr
Type: String
the IP/cidr string
network
Type: Nullable <(Of <(<' INetwork >)>)>%
returns a IP4 or IP6 network

Return Value

true if valid

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


INetwork Properties

The INetwork type exposes the following members.

Properties

 | Name | Description
Public property | AddressFamily | Address Family
Public property | Broadcast | Broadcast address
Public property | Count | the number of IP addresses available in network
Public property | FirstUsable | First usable IP address in Network
Public property | LastUsable | Last usable IP address in Network

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


AddressFamily Property

INetwork..::..AddressFamily Property

Address Family

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
AddressFamily AddressFamily { get; }

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


Broadcast Property

INetwork..::..Broadcast Property

Broadcast address

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress Broadcast { get; }

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


Count Property

INetwork..::..Count Property

the number of IP addresses available in network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
BigInteger Count { get; }

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


FirstUsable Property

INetwork..::..FirstUsable Property

First usable IP address in Network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress FirstUsable { get; }

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


LastUsable Property

INetwork..::..LastUsable Property

Last usable IP address in Network

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPAddress LastUsable { get; }

See Also

INetwork Interface
Walter.Net.Networking.TCP Namespace


TCPIPNetwork Class

Class TCPIPNetwork.

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class TCPIPNetwork

See Also

TCPIPNetwork Members
Walter.Net.Networking.TCP Namespace


TCPIPNetwork Members

The TCPIPNetwork type exposes the following members.

Constructors

 | Name | Description
Public method | TCPIPNetwork | Initializes a new instance of the TCPIPNetwork class.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | IPAddress | Gets the ip address.
Public property | Network | Gets the network belonging to the IP address.
Public property | SubnetMask | Gets the subnet mask.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


TCPIPNetwork Constructor

Initializes a new instance of the TCPIPNetwork class.

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public TCPIPNetwork(
    string subnetMask,
    string ipAddress
)

Parameters

subnetMask
Type: String
The subnet mask.
ipAddress
Type: String
The ip address.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


TCPIPNetwork Methods

The TCPIPNetwork type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


ToString Method

TCPIPNetwork..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


TCPIPNetwork Properties

The TCPIPNetwork type exposes the following members.

Properties

 | Name | Description
Public property | IPAddress | Gets the ip address.
Public property | Network | Gets the network belonging to the IP address.
Public property | SubnetMask | Gets the subnet mask.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


IPAddress Property

TCPIPNetwork..::..IPAddress Property

Gets the ip address.

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string IPAddress { get; }

Field Value

The ip address.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


Network Property

TCPIPNetwork..::..Network Property

Gets the network belonging to the IP address.

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public INetwork Network { get; }

Field Value

The network.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


SubnetMask Property

TCPIPNetwork..::..SubnetMask Property

Gets the subnet mask.

Namespace: Walter.Net.Networking.TCP
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string SubnetMask { get; }

Field Value

The subnet mask.

See Also

TCPIPNetwork Class
Walter.Net.Networking.TCP Namespace


Walter.Net.Networking.TopLevelDomainQuery Namespace

Classes

 | Class | Description
Public class | DomainParseException | Class ParseException. Implements the [System.Exception]
Public class | DomainParser | A Top Level Domain parser

Interfaces

 | Interface | Description
Public interface | IDomainStatusReport | The Interface IDomainStatusReport is the result generated by the [DomainParser.Parse(System.Uri, DataExtensions)] method

Enumerations

 | Enumeration | Description
Public enumeration | DataExtensions | Indicates how you would like to have the Extensions enrichment the url data
Public enumeration | DomainStatusValidityTests | Validity tests on the domain status reports


DataExtensions Enumeration

Indicates how you would like to have the Extensions enrichment the url data

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum DataExtensions

Members

Member name | Description
None | No data enrichment other than the URL data
Dns | Add The DNS data of the hosting server
Ping | Get the Ping status of the hosting server
Geography | The geography of the ISP hosting the server
ALL | Get full network endpoint discovery stats

See Also

Walter.Net.Networking.TopLevelDomainQuery Namespace


DomainParseException Class

Class ParseException. Implements the [System.Exception]

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class DomainParseException

See Also

DomainParseException Members
Walter.Net.Networking.TopLevelDomainQuery Namespace
[System.Exception]


DomainParseException Members

The DomainParseException type exposes the following members.

Constructors

 | Name | Description
Public method | DomainParseException | Initializes a new instance of the DomainParseException class.

See Also

DomainParseException Class
Walter.Net.Networking.TopLevelDomainQuery Namespace


DomainParseException Constructor

Initializes a new instance of the DomainParseException class.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public DomainParseException(
    string message
)

Parameters

message
Type: String
The message.

See Also

DomainParseException Class
Walter.Net.Networking.TopLevelDomainQuery Namespace


DomainParser Class

A Top Level Domain parser

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public class DomainParser

Remarks

Allows for parsing top level domain names

See Also

DomainParser Members
Walter.Net.Networking.TopLevelDomainQuery Namespace


DomainParser Members

The DomainParser type exposes the following members.

Methods

Name | Description
Parse | Generate a domain status report based on the provided URI
ParseAsync | Generate a domain status report based on the provided URI

See Also

DomainParser Class
Walter.Net.Networking.TopLevelDomainQuery Namespace


DomainParser Methods

The DomainParser type exposes the following members.

Methods

Name | Description
Parse | Generate a domain status report based on the provided URI
ParseAsync | Generate a domain status report based on the provided URI

See Also

DomainParser Class
Walter.Net.Networking.TopLevelDomainQuery Namespace


Parse Method

DomainParser..::..Parse Method

Generate a domain status report based on the provided URI

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IDomainStatusReport Parse(
    Uri url,
    DataExtensions includeStatus
)

Parameters

url
Type: Uri
the URI to validate
includeStatus
Type: Walter.Net.Networking.TopLevelDomainQuery..::..DataExtensions
If true it will perform network report like DNS, Ping and Geography

Return Value

The domains status report

See Also

DomainParser Class
Walter.Net.Networking.TopLevelDomainQuery Namespace


ParseAsync Method

DomainParser..::..ParseAsync Method

Generate a domain status report based on the provided URI

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static Task<IDomainStatusReport> ParseAsync(
    Uri url,
    DataExtensions includeStatus
)

Parameters

url
Type: Uri
the URI to validate
includeStatus
Type: Walter.Net.Networking.TopLevelDomainQuery..::..DataExtensions
If true it will perform network report like DNS, Ping and Geography

Return Value

The domains status report

See Also

DomainParser Class
Walter.Net.Networking.TopLevelDomainQuery Namespace


DomainStatusValidityTests Enumeration

Validity tests on the domain status reports

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public enum DomainStatusValidityTests

Members

Member name | Description
NotValid | Not valid
UriIsValid | URI format is valid
DnsPasses | The DNS that for the domain is valid and routs
PingPassed | The HostName responds to a ping
GeographyPassed | The Geography Resolves

See Also

Walter.Net.Networking.TopLevelDomainQuery Namespace


IDomainStatusReport Interface

The Interface IDomainStatusReport is the result generated by the [DomainParser.Parse(System.Uri, DataExtensions)] method

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public interface IDomainStatusReport

Remarks

You can call this method via the domain parser or make use of the extension method on the Uri instance.

See Also

IDomainStatusReport Members
Walter.Net.Networking.TopLevelDomainQuery Namespace
Walter.Net.Networking.TopLevelDomainQuery..::..DomainParser
[NetworkExtensionMethods.GetDomainReport(System.Uri)]
[NetworkExtensionMethods.GetDomainReport(System.Uri, DataExtensions)]
[NetworkExtensionMethods.TryGetDomainReport(System.Uri, DataExtensions, out IDomainStatusReport?)]


IDomainStatusReport Members

The IDomainStatusReport type exposes the following members.

Properties

 | Name | Description
Public property | Dns | Gets the DNS entry for the URL.
Public property | Domain | Gets the domain.
Public property | Geo | Gets the geographical data that belong to the URL used to generate this report.
Public property | Hostname | Gets the host name top level domain name compliant host name.
Public property | IPAddress | The IP address of the server hosting the URL
Public property | IsValid | Gets a value indicating whether this IDomainStatusReport is generated from a valid URL.
Public property | PingStatus | Gets the ping status.
Public property | RegistrableDomain | indicate if the domain name is a registrable domain.
Public property | SubDomain | Gets the sub domain.
Public property | TopLevelDomain | Gets the top level domain.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


IDomainStatusReport Properties

The IDomainStatusReport type exposes the following members.

Properties

 | Name | Description
Public property | Dns | Gets the DNS entry for the URL.
Public property | Domain | Gets the domain.
Public property | Geo | Gets the geographical data that belong to the URL used to generate this report.
Public property | Hostname | Gets the host name top level domain name compliant host name.
Public property | IPAddress | The IP address of the server hosting the URL
Public property | IsValid | Gets a value indicating whether this IDomainStatusReport is generated from a valid URL.
Public property | PingStatus | Gets the ping status.
Public property | RegistrableDomain | indicate if the domain name is a registrable domain.
Public property | SubDomain | Gets the sub domain.
Public property | TopLevelDomain | Gets the top level domain.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


Dns Property

IDomainStatusReport..::..Dns Property

Gets the DNS entry for the URL.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IPHostEntry> Dns { get; }

Field Value

The DNS.

Remarks

Data is only populated if extended information was requested

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


Domain Property

IDomainStatusReport..::..Domain Property

Gets the domain.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string Domain { get; }

Field Value

The domain.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


Geo Property

IDomainStatusReport..::..Geo Property

Gets the geographical data that belong to the URL used to generate this report.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IIPAddressGeo Geo { get; }

Field Value

The address geography.

Remarks

Data is only populated if extended information was requested

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


Hostname Property

IDomainStatusReport..::..Hostname Property

Gets the host name top level domain name compliant host name.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string Hostname { get; }

Field Value

The host name.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


IPAddress Property

IDomainStatusReport..::..IPAddress Property

The IP address of the server hosting the URL

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<IPAddress> IPAddress { get; }

Remarks

Data is only populated if extended information was requested

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


IsValid Property

IDomainStatusReport..::..IsValid Property

Gets a value indicating whether this IDomainStatusReport is generated from a valid URL.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
DomainStatusValidityTests IsValid { get; }

Field Value

true if valid; otherwise, false.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


PingStatus Property

IDomainStatusReport..::..PingStatus Property

Gets the ping status.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
IPStatus PingStatus { get; }

Field Value

The ping status.

Remarks

Data is only populated if extended information was requested

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


RegistrableDomain Property

IDomainStatusReport..::..RegistrableDomain Property

indicate if the domain name is a registrable domain.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string RegistrableDomain { get; }

Field Value

The registrable domain.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


SubDomain Property

IDomainStatusReport..::..SubDomain Property

Gets the sub domain.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
Nullable<string> SubDomain { get; }

Field Value

The sub domain.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


TopLevelDomain Property

IDomainStatusReport..::..TopLevelDomain Property

Gets the top level domain.

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
string TopLevelDomain { get; }

Field Value

The top level domain.

See Also

IDomainStatusReport Interface
Walter.Net.Networking.TopLevelDomainQuery Namespace


Walter.Net.Networking.Tracert Namespace

Classes

 | Class | Description
Public class | TraceEngine | Class TraceEngine allows for the tracing of data from your location to an specific endpoint.
Public class | TraceEntryArgs | Class TraceEntryArgs. Implements the [System.EventArgs]
Public class | TracertEntry | Class TracertEntry.


TraceEngine Class

Class TraceEngine allows for the tracing of data from your location to an specific endpoint.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public sealed class TraceEngine

See Also

TraceEngine Members
Walter.Net.Networking.Tracert Namespace


TraceEngine Members

The TraceEngine type exposes the following members.

Methods

 | Name | Description
Public method | Trace(String, Int32, Int32, Boolean) | Traces the route which data have to travel through in order to reach an IP address.
Public method | Trace(IPAddress, Int32, Int32, Boolean) | Traces the route which data have to travel through in order to reach an IP address.
Public method | TraceAsync | provides a async enumerable allowing you to await foreach( var item in TryceAsync(ip)) the data
 | TraceThis | Traces the route which data have to travel through in order to reach an IP address.

Events

 | Name | Description
Public event | OnTraceEntry | Occurs when trace entry was processed.

See Also

TraceEngine Class
Walter.Net.Networking.Tracert Namespace


TraceEngine Methods

The TraceEngine type exposes the following members.

Methods

 | Name | Description
Public method | Trace(String, Int32, Int32, Boolean) | Traces the route which data have to travel through in order to reach an IP address.
Public method | Trace(IPAddress, Int32, Int32, Boolean) | Traces the route which data have to travel through in order to reach an IP address.
Public method | TraceAsync | provides a async enumerable allowing you to await foreach( var item in TryceAsync(ip)) the data
 | TraceThis | Traces the route which data have to travel through in order to reach an IP address.

See Also

TraceEngine Class
Walter.Net.Networking.Tracert Namespace


Trace Method

TraceEngine..::..Trace Method

Overload List

 | Name | Description
Public method | Trace(String, Int32, Int32, Boolean) | Traces the route which data have to travel through in order to reach an IP address.
Public method | Trace(IPAddress, Int32, Int32, Boolean) | Traces the route which data have to travel through in order to reach an IP address.

See Also

TraceEngine Class
TraceEngine Members
Walter.Net.Networking.Tracert Namespace


Trace Method (String, Int32, Int32, Boolean)

TraceEngine..::..Trace Method (String, Int32, Int32, Boolean)

Traces the route which data have to travel through in order to reach an IP address.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IReadOnlyList<TracertEntry> Trace(
    string ipAddress,
    int maxHops,
    int timeout,
    bool useNs
)

Parameters

ipAddress
Type: String
The IP address of the destination.
maxHops
Type: Int32
Max hops to be returned.
timeout
Type: Int32
The timeout in ms for the ping to reply.
useNs
Type: Boolean
if set to true it will use name servers and GEO providers to locate IP address owner.

Return Value

IReadOnlyList<TracertEntry>.

Exceptions

Exception | Condition
[ArgumentException] | IP address is not valid
[ArgumentException] | Max hops can't be lower than 1.
[ArgumentException] | Timeout value must be higher than 0.

See Also

TraceEngine Class
Trace Overload
Walter.Net.Networking.Tracert Namespace


Trace Method (IPAddress, Int32, Int32, Boolean)

TraceEngine..::..Trace Method (IPAddress, Int32, Int32, Boolean)

Traces the route which data have to travel through in order to reach an IP address.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IReadOnlyList<TracertEntry> Trace(
    IPAddress address,
    int maxHops,
    int timeout,
    bool useNs
)

Parameters

address
Type: IPAddress
The address.
maxHops
Type: Int32
The maximum hops.
timeout
Type: Int32
The timeout.
useNs
Type: Boolean
if set to true [use ns].

Return Value

IReadOnlyList<TracertEntry>.

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

TraceEngine Class
Trace Overload
Walter.Net.Networking.Tracert Namespace


TraceAsync Method

TraceEngine..::..TraceAsync Method

provides a async enumerable allowing you to await foreach( var item in TryceAsync(ip)) the data

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IAsyncEnumerable<TracertEntry> TraceAsync(
    IPAddress address,
    int maxHops,
    int timeout,
    bool useNs,
    CancellationToken cancellationToken
)

Parameters

address
Type: IPAddress
maxHops
Type: Int32
maximum hubs you are willing to trace over
timeout
Type: Int32
Maximum time you are willing to wait for the hub to respond
useNs
Type: Boolean
Use Firewall WHOIS system to resolve location and owner of a IP address
cancellationToken
Type: CancellationToken
Cancellation token if you wish to cancel the operation

Return Value

See Also

TraceEngine Class
Walter.Net.Networking.Tracert Namespace


TraceThis Method

TraceEngine..::..TraceThis Method

Traces the route which data have to travel through in order to reach an IP address.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public static IReadOnlyList<TracertEntry> TraceThis(
    IPAddress address,
    int maxHops,
    int timeout,
    bool useNs
)

Parameters

address
Type: IPAddress
The address.
maxHops
Type: Int32
The maximum hops.
timeout
Type: Int32
The timeout.
useNs
Type: Boolean
if set to true [use ns].

Return Value

IReadOnlyList<TracertEntry>.

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

TraceEngine Class
Walter.Net.Networking.Tracert Namespace


TraceEngine Events

The TraceEngine type exposes the following members.

Events

 | Name | Description
Public event | OnTraceEntry | Occurs when trace entry was processed.

See Also

TraceEngine Class
Walter.Net.Networking.Tracert Namespace


OnTraceEntry Event

TraceEngine..::..OnTraceEntry Event

Occurs when trace entry was processed.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public event Nullable<EventHandler<TraceEntryArgs>> OnTraceEntry

See Also

TraceEngine Class
Walter.Net.Networking.Tracert Namespace


TraceEntryArgs Class

Class TraceEntryArgs. Implements the [System.EventArgs]

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public sealed class TraceEntryArgs

See Also

TraceEntryArgs Members
Walter.Net.Networking.Tracert Namespace
[System.EventArgs]


TraceEntryArgs Members

The TraceEntryArgs type exposes the following members.

Properties

 | Name | Description
Public property | Entry | Gets the entry.

See Also

TraceEntryArgs Class
Walter.Net.Networking.Tracert Namespace


TraceEntryArgs Properties

The TraceEntryArgs type exposes the following members.

Properties

 | Name | Description
Public property | Entry | Gets the entry.

See Also

TraceEntryArgs Class
Walter.Net.Networking.Tracert Namespace


Entry Property

TraceEntryArgs..::..Entry Property

Gets the entry.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public TracertEntry Entry { get; }

Field Value

The entry.

See Also

TraceEntryArgs Class
Walter.Net.Networking.Tracert Namespace


TracertEntry Class

Class TracertEntry.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public sealed class TracertEntry

See Also

TracertEntry Members
Walter.Net.Networking.Tracert Namespace


TracertEntry Members

The TracertEntry type exposes the following members.

Methods

 | Name | Description
Public method | TryGetWhois | Tries the get whois.

Properties

 | Name | Description
Public property | Address | The IP address.
Public property | City | Gets or sets the city.
Public property | Continent | Gets or sets the continent.
Public property | Country | Gets or sets the country.
Public property | DnsName | The DNS name of the ip address returned by the DNS system
Public property | HopID | The hop id. Represents the number of the hop.
Public property | HostName | The hostName
Public property | ISP | Gets or sets the isp.
Public property | Lat | Gets or sets the latitude.
Public property | Latitude | Gets or sets the latitude.
Public property | Lng | Gets or sets the longitude.
Public property | Location | Gets the location.
Public property | Longitude | Gets or sets the longitude.
Public property | ReplyStatus | The reply status of the request.
Public property | ReplyTime | The reply time it took for the host to receive and reply to the request in milliseconds.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


TracertEntry Methods

The TracertEntry type exposes the following members.

Methods

 | Name | Description
Public method | TryGetWhois | Tries the get whois.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


TryGetWhois Method

TracertEntry..::..TryGetWhois Method

Tries the get whois.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public bool TryGetWhois(
    out Nullable<IWhois> whois
)

Parameters

whois
Type: Nullable <(Of <(<' IWhois >)>)>%
The whois.

Return Value

true if XXXX, false otherwise.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


TracertEntry Properties

The TracertEntry type exposes the following members.

Properties

 | Name | Description
Public property | Address | The IP address.
Public property | City | Gets or sets the city.
Public property | Continent | Gets or sets the continent.
Public property | Country | Gets or sets the country.
Public property | DnsName | The DNS name of the ip address returned by the DNS system
Public property | HopID | The hop id. Represents the number of the hop.
Public property | HostName | The hostName
Public property | ISP | Gets or sets the isp.
Public property | Lat | Gets or sets the latitude.
Public property | Latitude | Gets or sets the latitude.
Public property | Lng | Gets or sets the longitude.
Public property | Location | Gets the location.
Public property | Longitude | Gets or sets the longitude.
Public property | ReplyStatus | The reply status of the request.
Public property | ReplyTime | The reply time it took for the host to receive and reply to the request in milliseconds.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Address Property

TracertEntry..::..Address Property

The IP address.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Address { get; set; }

Field Value

The address.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


City Property

TracertEntry..::..City Property

Gets or sets the city.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string City { get; set; }

Field Value

The city.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Continent Property

TracertEntry..::..Continent Property

Gets or sets the continent.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Continent { get; set; }

Field Value

The continent.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Country Property

TracertEntry..::..Country Property

Gets or sets the country.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Country { get; set; }

Field Value

The country.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


DnsName Property

TracertEntry..::..DnsName Property

The DNS name of the ip address returned by the DNS system

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string DnsName { get; set; }

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


HopID Property

TracertEntry..::..HopID Property

The hop id. Represents the number of the hop.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public int HopID { get; set; }

Field Value

The hop identifier.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


HostName Property

TracertEntry..::..HostName Property

The hostName

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string HostName { get; set; }

Field Value

The hostName.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


ISP Property

TracertEntry..::..ISP Property

Gets or sets the isp.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string ISP { get; set; }

Field Value

The isp.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Lat Property

TracertEntry..::..Lat Property

Gets or sets the latitude.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public double Lat { get; set; }

Field Value

The latitude.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Latitude Property

TracertEntry..::..Latitude Property

Gets or sets the latitude.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Latitude { get; }

Field Value

The latitude.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Lng Property

TracertEntry..::..Lng Property

Gets or sets the longitude.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public double Lng { get; set; }

Field Value

The longitude.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Location Property

TracertEntry..::..Location Property

Gets the location.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public GeoLocation Location { get; set; }

Field Value

The location.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Longitude Property

TracertEntry..::..Longitude Property

Gets or sets the longitude.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public string Longitude { get; }

Field Value

The longitude.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


ReplyStatus Property

TracertEntry..::..ReplyStatus Property

The reply status of the request.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public IPStatus ReplyStatus { get; set; }

Field Value

The reply status.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


ReplyTime Property

TracertEntry..::..ReplyTime Property

The reply time it took for the host to receive and reply to the request in milliseconds.

Namespace: Walter.Net.Networking.Tracert
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public long ReplyTime { get; set; }

Field Value

The reply time.

See Also

TracertEntry Class
Walter.Net.Networking.Tracert Namespace


Walter.Web Namespace

Classes

 | Class | Description
Public class | DomainProfile | this class is used as an adapter class to personalize the cookie and header names per user for your application


DomainProfile Class

this class is used as an adapter class to personalize the cookie and header names per user for your application

Namespace: Walter.Web
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class DomainProfile

Remarks

when used you can generate random names between users and the cookies the application uses masking the application as each user will be given different set.

See Also

DomainProfile Members
Walter.Web Namespace


DomainProfile Members

The DomainProfile type exposes the following members.

Constructors

 | Name | Description
Public method | DomainProfile | Initializes a new instance of the DomainProfile class.

Properties

 | Name | Description
Public property | CookieNames | Gets or sets the cookie names for this profile user.
Public property | HeaderNames | Gets or sets the header names for this profile user.
Public property | IsUserApi | Gets or sets the is user API.
Public property | SiteMapApi | Gets or sets the site map API.

See Also

DomainProfile Class
Walter.Web Namespace


DomainProfile Constructor

Initializes a new instance of the DomainProfile class.

Namespace: Walter.Web
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DomainProfile()

See Also

DomainProfile Class
Walter.Web Namespace


DomainProfile Properties

The DomainProfile type exposes the following members.

Properties

 | Name | Description
Public property | CookieNames | Gets or sets the cookie names for this profile user.
Public property | HeaderNames | Gets or sets the header names for this profile user.
Public property | IsUserApi | Gets or sets the is user API.
Public property | SiteMapApi | Gets or sets the site map API.

See Also

DomainProfile Class
Walter.Web Namespace


CookieNames Property

DomainProfile..::..CookieNames Property

Gets or sets the cookie names for this profile user.

Namespace: Walter.Web
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Dictionary<CookieName, string> CookieNames { get; }

Field Value

The cookie names.

See Also

DomainProfile Class
Walter.Web Namespace


HeaderNames Property

DomainProfile..::..HeaderNames Property

Gets or sets the header names for this profile user.

Namespace: Walter.Web
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Dictionary<HeaderName, string> HeaderNames { get; }

Field Value

The header names.

See Also

DomainProfile Class
Walter.Web Namespace


IsUserApi Property

DomainProfile..::..IsUserApi Property

Gets or sets the is user API.

Namespace: Walter.Web
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string IsUserApi { get; set; }

Field Value

The is user API.

See Also

DomainProfile Class
Walter.Web Namespace


SiteMapApi Property

DomainProfile..::..SiteMapApi Property

Gets or sets the site map API.

Namespace: Walter.Web
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SiteMapApi { get; set; }

Field Value

The site map API.

See Also

DomainProfile Class
Walter.Web Namespace


Walter.Web.FireWall Namespace

Classes

 | Class | Description
Public class | ConcreteTypeConverter<(Of <(<'TConcrete>)>)> | Type converter specific types
Public class | ContentSecurityPolicyViolation | Class ContentSecurityPolicyViolation. Implements the [IContentSecurityPolicyViolation]
Public class | ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport | Content security policy violations report data
Public class | Cookie | Cookies as found in the response of the request
Public class | DesignTimeVulnerabilityDetectedException | Class DesignTimeVulnerabilityDetectedException is triggered when exploit is detected and you're debugging the firewall. Implements the [Exception]
Public class | FireWallBase | Class FireWallBase is the base class to use when creating your own instance of IFireWall by using this class as it's base class.
Public class | FireWallDashboardUser | Class FireWallDashboardUser. This class cannot be inherited.
Public class | ISPIncident | Incidents associated to a CIDR
Public class | LicenseEventArgs | Class LicenseEventArgs is used when a license event is triggered by the firewall. Implements the [System.EventArgs]
Public class | LicenseLevelChangedEventArgs | Class LicenseLevelChangedArgs occurs when a license lever change has been detected.
Public class | LicenseViolation | Class LicenseViolation is used to count firewall license violations.
Public class | PoisonedCookie | Class PoisonedCookie contains cookies that have been poisoned as well as the method of poisoning used.
Public class | SecurityViolationException | Security violations exceptions are raised to communicate violations to the consumer and contain information on the violation
Public class | SiteMapDiscovery | Class used for the site-map discovery firewall Url validation.

Structures

 | Structure | Description
Public structure | Interactions | Interactions that the user had with a rendered page (only applicable when you use UserDiscovery)
Public structure | ModelValidationErrors | Model violation errors and score

Interfaces

 | Interface | Description
Public interface | IDiscoveryLogger | Interface IDiscoveryLogger allows you to log discovery data made by the users javascript executions
Public interface | IFireWall | Interface IFireWall provides access to the FireWall management framework.
Public interface | IFireWallConfig | Interface IFireWallConfig provides access to the configuration options for the firewall's runtime options.
Public interface | IFireWallDashboardUser | user for the internal firewall authentication system
Public interface | IFireWallDiskGuard | Disk related guard for activity of the IFireWall
Public interface | IFireWallRuleTrigger | Interface IFireWallRuleTrigger
Public interface | IGeoProvider | Geo-provider implementation interface allows you to register your own GEO provider with the firewall, Use IFireWall.Set() method to register your own
Public interface | IInstrumented | Interface IInstrumented allows those that consume the firewall a way to extract the activities as well as the duration of a given activity.
Public interface | ILicenseManager | access to the license manager
Public interface | IModelValidationContext | Interface used for validating data models returned by the user to a public endpoint
Public interface | IPageRequest | Interface IPageRequest contains the meta data in as the firewall managed this page and it's access to it, a custom implementation of this Interface will be rejected by the firewall
Public interface | IPageRequestGroupIdValidation | Indicates that the model contains a PageRequestGroupId or PageRequestId value
Public interface | IPageRequestsReposiory | Interface IPageRequestsReposiory stores page requests, the request as well as the fulfillment
Public interface | IProxyProvider | Proxy provider allows you to implement your own proxy provider for the firewall, Use IFireWall.Set() method to register your own
Public interface | IRequester | Interface IRequester
Public interface | ISessionIdValidation | Indicates that the model contains a SessionId with the value containing the IPageRequest.SessionId
Public interface | ISiteMapLogger | logger for site map model on the source page
Public interface | IUnblock | Interface IUnblock interface carries information about the IP address and user combination that can be allowed to access a system
Public interface | IUriResolverDictionary | Interface IUriResolver
Public interface | IUserIdentity | Interface IUserIdentity allows interaction with the user of a given request

Enumerations

 | Enumeration | Description
Public enumeration | BlockingReason | Blocking reason error codes
Public enumeration | BlokingScopes | Enum BlokingScope
Public enumeration | ClearOptions | Use clearing of firewall data sporadically as the data is important when operating the firewall
Public enumeration | CookiePoisoningMethod | Enum CookiePoisoningMethod
Public enumeration | EndPointCompairs | how match of the endpoint has to match
Public enumeration | FireWallGuards | Enumeration controlling the guards that are used by the firewall
Public enumeration | FireWallModules | The Enum FireWallModules lists those modules that the firewall is made up of. The Enum is used instrumenting performance and indicates the steps being executed.
Public enumeration | FireWallProtectionModes | Defines the FireWall protection mode that is going to be used
Public enumeration | FireWallState | The state of the firewall
Public enumeration | FramesPolicy | IFrame policy
Public enumeration | ItemCompairs | Enum ItemCompairs tests how an item compares to it's dictionary value
Public enumeration | JavaScriptUpdatesIsUserDiscoveries | maintains the value of the User Discovery framework JavaScript Updates that have been executed by the Page
Public enumeration | LicenseSource | Enum LicenseSource
Public enumeration | NetworkInformationType | the type of connection a device is using to communicate with the network. It will be one of the following values
Public enumeration | RecordedInteractions | Enum Recorded Interactions
Public enumeration | RequestersAssociations | describes association between a resource and a requester
Public enumeration | RoutingEndpoint | Enum RoutingEndpoints
Public enumeration | RuleNumber | A static class used to map rule numbers to rule names (reference only)
Public enumeration | TrustingSites | Sites that are trusted by the firewall a allowed site will not raise as violation for cross site scripting. Please note that you have no control over 3rd party sites and a compromised 3rd party site will be able to inject malicious content in your page without you knowing,
Public enumeration | UserTypes | Types of users that are discovered and that can be filtered on. ///
Public enumeration | ViolationStatusCode | configurable status codes used by Denial of Service Status Codes used by Firewall rather then returning a regular status codes masking the fact that we have discovered the intend.


BlockingReason Enumeration

Blocking reason error codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum BlockingReason

Members

Member name | Description
ToManyRequests | Converts to many requests.
WrongConsumerType | The wrong consumer type for the endpoint
ServiceNotOfferedInLocation | The service not offered in location

See Also

Walter.Web.FireWall Namespace


BlokingScopes Enumeration

Enum BlokingScope

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum BlokingScopes

Members

Member name | Description
None | none
IpAddress | The ip address
DeviceOnIp | The device on ip
DeviceAnywhere | The device anywhere
ISP | The isp

See Also

Walter.Web.FireWall Namespace


ClearOptions Enumeration

Use clearing of firewall data sporadically as the data is important when operating the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ClearOptions

Members

Member name | Description
None | The none
FireWallState | The remove firewall state contains counters and KPI data
FireWallIncidents | Removing the fire wall incidents history will cause malicious users to revisit the application without use being able to inform the application that the user is up to no good
ResetState | The reset state maintains a rule database informing visiting users that they are no-longer considered malicious if a blocking cookie was set.
Subscription | The subscription data can safely be removed as it will update when re-connecting with the firewall license server
WhoisState | The who-is and DNS state can be removed.
ResetToFactoryDefault | Reset the firewall to factory default

Remarks

When changing application password, or license keys data will become unreadable as the application password and license key is used to protect the data

See Also

Walter.Web.FireWall Namespace


ConcreteTypeConverter(TConcrete) Class

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Class

Type converter specific types

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ConcreteTypeConverter<TConcrete>

Type Parameters

TConcrete
The type of the concrete.

See Also

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Members
Walter.Web.FireWall Namespace
[Newtonsoft.Json.JsonConverter]


ConcreteTypeConverter(TConcrete) Members

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Members

The ConcreteTypeConverter<(Of <(<'TConcrete>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | CanConvert | Determines whether this instance can convert the specified object type.
Public method | ReadJson | Reads the JSON representation of the object.
Public method | WriteJson | Writes the JSON representation of the object.

See Also

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Class
Walter.Web.FireWall Namespace


ConcreteTypeConverter(TConcrete) Methods

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Methods

The ConcreteTypeConverter<(Of <(<'TConcrete>)>)> type exposes the following members.

Methods

 | Name | Description
Public method | CanConvert | Determines whether this instance can convert the specified object type.
Public method | ReadJson | Reads the JSON representation of the object.
Public method | WriteJson | Writes the JSON representation of the object.

See Also

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Class
Walter.Web.FireWall Namespace


CanConvert Method

ConcreteTypeConverter<(Of <(<'TConcrete>)>)>..::..CanConvert Method

Determines whether this instance can convert the specified object type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool CanConvert(
    Type objectType
)

Parameters

objectType
Type: Type
Type of the object.

Return Value

true if this instance can convert the specified object type; otherwise, false.

See Also

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Class
Walter.Web.FireWall Namespace


ReadJson Method

ConcreteTypeConverter<(Of <(<'TConcrete>)>)>..::..ReadJson Method

Reads the JSON representation of the object.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Object ReadJson(
    JsonReader reader,
    Type objectType,
    Nullable<Object> existingValue,
    JsonSerializer serializer
)

Parameters

reader
Type: JsonReader
The [Newtonsoft.Json.JsonReader] to read from.
objectType
Type: Type
Type of the object.
existingValue
Type: Nullable <(Of <(<' Object >)>)>
The existing value of object being read.
serializer
Type: JsonSerializer
The calling serializer.

Return Value

The object value.

See Also

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Class
Walter.Web.FireWall Namespace


WriteJson Method

ConcreteTypeConverter<(Of <(<'TConcrete>)>)>..::..WriteJson Method

Writes the JSON representation of the object.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void WriteJson(
    JsonWriter writer,
    Nullable<Object> value,
    JsonSerializer serializer
)

Parameters

writer
Type: JsonWriter
The [Newtonsoft.Json.JsonWriter] to write to.
value
Type: Nullable <(Of <(<' Object >)>)>
The value.
serializer
Type: JsonSerializer
The calling serialize.

See Also

ConcreteTypeConverter<(Of <(<'TConcrete>)>)> Class
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation Class

Class ContentSecurityPolicyViolation. Implements the [IContentSecurityPolicyViolation]

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ContentSecurityPolicyViolation

See Also

ContentSecurityPolicyViolation Members
Walter.Web.FireWall Namespace
[IContentSecurityPolicyViolation]


ContentSecurityPolicyViolation Members

The ContentSecurityPolicyViolation type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(ContentSecurityPolicyViolation>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IContentSecurityPolicyViolation>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a string representation of this instance

Properties

 | Name | Description
Public property | CIDR | the integer representation of the ip address
Public property | Country | country of the person or bot creating the violation
Public property | CreatedUtc | when the violation occurred
Public property | Details | the details of the violation
Public property | DnsHostName | Gets the name of the DNS host.
Public property | DnsName | The dns name of the owner of the IP address
Public property | IncidentId | Gets the incident identifier for the policy violation.
Public property | IPAddress | the IP address used by the person or bot that triggered the violation
Public property | ProviderGeoLocation | The geo location of the provider
Public property | Proxy | the location of the proxy if proxy resolver is used

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation Methods

The ContentSecurityPolicyViolation type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(ContentSecurityPolicyViolation>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IContentSecurityPolicyViolation>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a string representation of this instance

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


Equals Method

ContentSecurityPolicyViolation..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(ContentSecurityPolicyViolation>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IContentSecurityPolicyViolation>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

ContentSecurityPolicyViolation Class
ContentSecurityPolicyViolation Members
Walter.Web.FireWall Namespace


Equals Method (Nullable(Object))

ContentSecurityPolicyViolation..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

ContentSecurityPolicyViolation Class
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (Nullable(ContentSecurityPolicyViolation))

ContentSecurityPolicyViolation..::..Equals Method (Nullable<(Of <(<'ContentSecurityPolicyViolation>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<ContentSecurityPolicyViolation> other
)

Parameters

other
Type: Nullable <(Of <(<' ContentSecurityPolicyViolation >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

ContentSecurityPolicyViolation Class
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (Nullable(IContentSecurityPolicyViolation))

ContentSecurityPolicyViolation..::..Equals Method (Nullable<(Of <(<'IContentSecurityPolicyViolation>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<IContentSecurityPolicyViolation> other
)

Parameters

other
Type: Nullable <(Of <(<'IContentSecurityPolicyViolation>)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

ContentSecurityPolicyViolation Class
Equals Overload
Walter.Web.FireWall Namespace


GetHashCode Method

ContentSecurityPolicyViolation..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


ToString Method

ContentSecurityPolicyViolation..::..ToString Method

Returns a string representation of this instance

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

returns a string formated "IP {IPAddress} likely from {Country} violated CSP {Details.ViolatedDirective} directive in {Details.DocumentUri}:{Details.LineNumber}"

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation Properties

The ContentSecurityPolicyViolation type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | the integer representation of the ip address
Public property | Country | country of the person or bot creating the violation
Public property | CreatedUtc | when the violation occurred
Public property | Details | the details of the violation
Public property | DnsHostName | Gets the name of the DNS host.
Public property | DnsName | The dns name of the owner of the IP address
Public property | IncidentId | Gets the incident identifier for the policy violation.
Public property | IPAddress | the IP address used by the person or bot that triggered the violation
Public property | ProviderGeoLocation | The geo location of the provider
Public property | Proxy | the location of the proxy if proxy resolver is used

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


CIDR Property

ContentSecurityPolicyViolation..::..CIDR Property

the integer representation of the ip address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; }

Field Value

The cidr.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


Country Property

ContentSecurityPolicyViolation..::..Country Property

country of the person or bot creating the violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation Country { get; set; }

Field Value

The country.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


CreatedUtc Property

ContentSecurityPolicyViolation..::..CreatedUtc Property

when the violation occurred

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime CreatedUtc { get; }

Field Value

The created UTC.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


Details Property

ContentSecurityPolicyViolation..::..Details Property

the details of the violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IContentSecurityPolicyViolationsReport Details { get; }

Field Value

The details.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


DnsHostName Property

ContentSecurityPolicyViolation..::..DnsHostName Property

Gets the name of the DNS host.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DnsHostName { get; }

Field Value

The name of the DNS host.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


DnsName Property

ContentSecurityPolicyViolation..::..DnsName Property

The dns name of the owner of the IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DnsName { get; }

Field Value

The name of the DNS.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


IncidentId Property

ContentSecurityPolicyViolation..::..IncidentId Property

Gets the incident identifier for the policy violation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Guid IncidentId { get; }

Field Value

The incident identifier.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


IPAddress Property

ContentSecurityPolicyViolation..::..IPAddress Property

the IP address used by the person or bot that triggered the violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress IPAddress { get; }

Field Value

The ip address.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


ProviderGeoLocation Property

ContentSecurityPolicyViolation..::..ProviderGeoLocation Property

The geo location of the provider

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation ProviderGeoLocation { get; set; }

Field Value

The provider geo location.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


Proxy Property

ContentSecurityPolicyViolation..::..Proxy Property

the location of the proxy if proxy resolver is used

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation Proxy { get; set; }

Field Value

The proxy.

See Also

ContentSecurityPolicyViolation Class
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation.ContentSecurityPolicyViolationsReport Class

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class

Content security policy violations report data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ContentSecurityPolicyViolationsReport

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Members
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation.ContentSecurityPolicyViolationsReport Members

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Members

The ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IContentSecurityPolicyViolationsReport>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Properties

 | Name | Description
Public property | BlockedUri | The URI of the resource that was blocked from loading by the Content Security Policy. If the blocked URI is from a different origin than the document-uri, then the blocked URI is truncated to contain just the scheme, host, and port.
Public property | Disposition | Either "enforce" or "report" depending on whether the Content-Security-Policy-Report-Only header or the Content-Security-Policy header is used.
Public property | DocumentUri | The URI of the document in which the violation occurred.
Public property | EffectiveDirective | The directive whose enforcement caused the violation.
Public property | LineNumber | the line number in the document that caused the violation
Public property | OriginalPolicy | The original policy as specified by the Content-Security-Policy HTTP header.
Public property | Referrer | The referrer of the document in which the violation occurred.
Public property | ScriptSample | The first 40 characters of the inline script, event handler, or style that caused the violation.
Public property | SourceFile | the file name
Public property | StatusCode | The HTTP status code of the resource on which the global object was instantiated.
Public property | ViolatedDirective | The name of the policy section that was violated.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation.ContentSecurityPolicyViolationsReport Methods

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Methods

The ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IContentSecurityPolicyViolationsReport>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


Equals Method

ContentSecurityPolicyViolationsReport..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IContentSecurityPolicyViolationsReport>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Members
Walter.Web.FireWall Namespace


Equals Method (Nullable(Object))

ContentSecurityPolicyViolationsReport..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (Nullable(ContentSecurityPolicyViolationsReport))

ContentSecurityPolicyViolationsReport..::..Equals Method (Nullable<(Of <(<'ContentSecurityPolicyViolationsReport>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport> other
)

Parameters

other
Type: Nullable <(Of <(<' ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (Nullable(IContentSecurityPolicyViolationsReport))

ContentSecurityPolicyViolationsReport..::..Equals Method (Nullable<(Of <(<'IContentSecurityPolicyViolationsReport>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<IContentSecurityPolicyViolationsReport> other
)

Parameters

other
Type: Nullable <(Of <(<'IContentSecurityPolicyViolationsReport>)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Equals Overload
Walter.Web.FireWall Namespace


GetHashCode Method

ContentSecurityPolicyViolationsReport..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


ContentSecurityPolicyViolation.ContentSecurityPolicyViolationsReport Properties

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Properties

The ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport type exposes the following members.

Properties

 | Name | Description
Public property | BlockedUri | The URI of the resource that was blocked from loading by the Content Security Policy. If the blocked URI is from a different origin than the document-uri, then the blocked URI is truncated to contain just the scheme, host, and port.
Public property | Disposition | Either "enforce" or "report" depending on whether the Content-Security-Policy-Report-Only header or the Content-Security-Policy header is used.
Public property | DocumentUri | The URI of the document in which the violation occurred.
Public property | EffectiveDirective | The directive whose enforcement caused the violation.
Public property | LineNumber | the line number in the document that caused the violation
Public property | OriginalPolicy | The original policy as specified by the Content-Security-Policy HTTP header.
Public property | Referrer | The referrer of the document in which the violation occurred.
Public property | ScriptSample | The first 40 characters of the inline script, event handler, or style that caused the violation.
Public property | SourceFile | the file name
Public property | StatusCode | The HTTP status code of the resource on which the global object was instantiated.
Public property | ViolatedDirective | The name of the policy section that was violated.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


BlockedUri Property

ContentSecurityPolicyViolationsReport..::..BlockedUri Property

The URI of the resource that was blocked from loading by the Content Security Policy. If the blocked URI is from a different origin than the document-uri, then the blocked URI is truncated to contain just the scheme, host, and port.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string BlockedUri { get; set; }

Field Value

The blocked URI.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


Disposition Property

ContentSecurityPolicyViolationsReport..::..Disposition Property

Either "enforce" or "report" depending on whether the Content-Security-Policy-Report-Only header or the Content-Security-Policy header is used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Disposition { get; set; }

Field Value

The disposition.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


DocumentUri Property

ContentSecurityPolicyViolationsReport..::..DocumentUri Property

The URI of the document in which the violation occurred.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DocumentUri { get; set; }

Field Value

The document URI.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


EffectiveDirective Property

ContentSecurityPolicyViolationsReport..::..EffectiveDirective Property

The directive whose enforcement caused the violation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string EffectiveDirective { get; set; }

Field Value

The effective directive.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


LineNumber Property

ContentSecurityPolicyViolationsReport..::..LineNumber Property

the line number in the document that caused the violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int LineNumber { get; set; }

Field Value

The line number.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


OriginalPolicy Property

ContentSecurityPolicyViolationsReport..::..OriginalPolicy Property

The original policy as specified by the Content-Security-Policy HTTP header.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string OriginalPolicy { get; set; }

Field Value

The original policy.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


Referrer Property

ContentSecurityPolicyViolationsReport..::..Referrer Property

The referrer of the document in which the violation occurred.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Referrer { get; set; }

Field Value

The referrer.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


ScriptSample Property

ContentSecurityPolicyViolationsReport..::..ScriptSample Property

The first 40 characters of the inline script, event handler, or style that caused the violation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ScriptSample { get; set; }

Field Value

The script sample.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


SourceFile Property

ContentSecurityPolicyViolationsReport..::..SourceFile Property

the file name

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SourceFile { get; set; }

Field Value

The source file.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


StatusCode Property

ContentSecurityPolicyViolationsReport..::..StatusCode Property

The HTTP status code of the resource on which the global object was instantiated.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int StatusCode { get; set; }

Field Value

The status code.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


ViolatedDirective Property

ContentSecurityPolicyViolationsReport..::..ViolatedDirective Property

The name of the policy section that was violated.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ViolatedDirective { get; set; }

Field Value

The violated directive.

See Also

ContentSecurityPolicyViolation..::..ContentSecurityPolicyViolationsReport Class
Walter.Web.FireWall Namespace


Cookie Class

Cookies as found in the response of the request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class Cookie

See Also

Cookie Members
Walter.Web.FireWall Namespace


Cookie Members

The Cookie type exposes the following members.

Properties

 | Name | Description
Public property | Name | name of the cookie
Public property | Options | The current set of cookie options (only set the cookie is a response cookie)
Public property | Value | value of the cookie

See Also

Cookie Class
Walter.Web.FireWall Namespace


Cookie Properties

The Cookie type exposes the following members.

Properties

 | Name | Description
Public property | Name | name of the cookie
Public property | Options | The current set of cookie options (only set the cookie is a response cookie)
Public property | Value | value of the cookie

See Also

Cookie Class
Walter.Web.FireWall Namespace


Name Property

Cookie..::..Name Property

name of the cookie

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Name { get; }

See Also

Cookie Class
Walter.Web.FireWall Namespace


Options Property

Cookie..::..Options Property

The current set of cookie options (only set the cookie is a response cookie)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<CookieOptions> Options { get; }

See Also

Cookie Class
Walter.Web.FireWall Namespace


Value Property

Cookie..::..Value Property

value of the cookie

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Value { get; }

See Also

Cookie Class
Walter.Web.FireWall Namespace


CookiePoisoningMethod Enumeration

Enum CookiePoisoningMethod

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum CookiePoisoningMethod

Members

Member name | Description
NoPoisoning | There was no poisoning
CookieNotSend | The cookie not send to the user
CookieValueNotSend | The cookie value not was not send to the user

See Also

Walter.Web.FireWall Namespace


DesignTimeVulnerabilityDetectedException Class

Class DesignTimeVulnerabilityDetectedException is triggered when exploit is detected and you're debugging the firewall. Implements the [Exception]

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class DesignTimeVulnerabilityDetectedException

See Also

DesignTimeVulnerabilityDetectedException Members
Walter.Web.FireWall Namespace
[Exception]


DesignTimeVulnerabilityDetectedException Members

The DesignTimeVulnerabilityDetectedException type exposes the following members.

Properties

 | Name | Description
Public property | Page | Gets the page that caused the exception.

See Also

DesignTimeVulnerabilityDetectedException Class
Walter.Web.FireWall Namespace


DesignTimeVulnerabilityDetectedException Properties

The DesignTimeVulnerabilityDetectedException type exposes the following members.

Properties

 | Name | Description
Public property | Page | Gets the page that caused the exception.

See Also

DesignTimeVulnerabilityDetectedException Class
Walter.Web.FireWall Namespace


Page Property

DesignTimeVulnerabilityDetectedException..::..Page Property

Gets the page that caused the exception.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Page { get; }

Field Value

The page.

See Also

DesignTimeVulnerabilityDetectedException Class
Walter.Web.FireWall Namespace


EndPointCompairs Enumeration

how match of the endpoint has to match

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum EndPointCompairs

Members

Member name | Description
Default | use the default rule from the rule engine for a given context
Path | compare on only the path, ignore any parameters provided
PathAndMethod | compare on only the HTTP Method and path, ignore any parameters provided
PathAndQuery | compare with path and query
PathAndMethodAndQuery | compare the HTTP Method and path, and all parameters provided

See Also

Walter.Web.FireWall Namespace


FireWallBase Class

Class FireWallBase is the base class to use when creating your own instance of IFireWall by using this class as it's base class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[DebuggerStepThroughAttribute]
[DebuggerNonUserCodeAttribute]
[DebuggerTypeProxyAttribute]
[DebuggerDisplayAttribute]
public abstract class FireWallBase : IFireWall,
    IDisposable, IWhoisProvider

Remarks

If you create your own firewall class then you need to use this base class when configuring the services. You can't create your own implementation of the IFireWall interface and the register that with the dependency injection system.

You will find a more complete code sample on the constructor

Examples

The following sample assumes you created a custom instance named MyFireWall
C#
services.AddFireWall<MyFireWall>("Token", "Key", new Uri("https://www.site.com", UriKind.Absolute), options =>{
//add your options here
});

Inheritance Hierarchy

Object
Walter.Web.FireWall..::..FireWallBase

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Members
Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..IFireWall


FireWallBase Members

The FireWallBase type exposes the following members.

Constructors

 | Name | Description
Protected method | FireWallBase(IServiceProvider, IExceptionConsole, IDiskGuard, IWhosTalking, ITalkingProcessesRepository, ILoggerFactory, IMemoryCache, IIncidentDatabase, IWhoisRepository, ISubscriptionsRepository, IEmailReportDesination, IDatabaseReportDestination, ILoggerReportDesination, IFireWallDiskLoggerDestination, IEventLogReporting, IGeoFactory, ILatLongRepository, IResetRepository, IUserAgentsRepository, ISearchEngineRepository) | Initializes a new instance of the FireWallBase class used in your concrete implementation.

Methods

 | Name | Description
Public method | AddRecovery | Recovery information for local encrypted data
Public method | AddRuntimeFilter | Add a runtime filter blocking incident related user for a given duration from accessing service
Public method | Allow(FireWallContexts, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Allow(FireWallContexts, FirewallAllowReasons, IPAddress) | Allow raise incident to a context to pass through the firewall
Public method | AppendFile | instruct the firewall to allow and to append text to a given file
Public method | AppendLineFile | Appends the line file.
Public method | AppendLineFileAsync | instruct the firewall to allow and to append text to a given file asynchronous.
Public method | Block(IPageRequest, IFireWallRuleTrigger, String, IIncident%) | Blocks the request using the specified rule.
Public method | ChangeStateTo | You can change the state of the firewall at runtime by calling this method in your code.
Public method | Clear | Clear all backing storage for the firewall, resetting the state to it's default
Public method | DeleteFile | Deletes the file and removes the directory if empty.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Protected method | Dispose(Boolean) | Disposes the firewall base as well as the memory objects it needs to save before releasing memory.
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Content Security Policy Violation.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations for processing.
Protected method | Finalize | Finalizes an instance of the FireWallBase class.
Public method | GetGeoLocation | get the firewall's hosted geographical location
Public method | GetHistory | Gets the history of pages being requested.
Public method | GetIspReport | return the ISP providers ordered by the ISP with the most incidents
Public method | GetMapLocation | get the firewall's hosted geographical map location
Public method | GetPhishyVisitStats(TimeSpan) | Gets the phishy request for a given timespan.
Public method | GetPhishyVisitStats(IFirewallUser, TimeSpan) | Gets the phishy request for a given user and timespan.
Public method | GetPhishyVisitStats(IPAddress, TimeSpan) | Gets the phishy request for a given IPAddress and timespan.
Public method | GetProcessedPagesInRequest | Gets all the processed pages URL's in request.
Public method | GetReport | Access the runtime reporting interface allows for access to the simple reporting data that can be used in health type reports scenarios.
Public method | GetUserHistory | Gets the user history between 2 date times.
Public method | GetUserVisits | Get the user visits information from firewall storage
Public method | GetVisitStats(TimeSpan) | Gets the visit stats for all user in a given timespan.
Public method | GetVisitStats(TimeSpan, Boolean) | Gets the visit stats.
Public method | GetVisitStats(IFirewallUser, TimeSpan) | Gets the visit stats.
Public method | GetVisitStats(IPAddress, TimeSpan) | Get the visit stats for a given IP address ad timespan
Public method | HelpLink | Helps the link for a registered enumerator with ToDo as well as Error enumerators.
Public method | IsBlocked | Get a recommendation whether the specified context is blocked.
Public method | IsKnownUrl | Determines whether the URL is a known and configured endpoint.
Public method | IsLocalIpAddress | Indicates if a IP Address is local to the server as local addresses are buffered in the firewall
Public method | IsSearchEngine | Test if the IP address resolves to the DNS entry of a supported Search engine
Public method | LicenseStack | Usage stack for the firewall so you can see if the firewall is embedded in a external DLL
Public method | LogException<(Of <<'(T>)>>) | Logs the runtime exception.
Public method | LogTodo<(Of <<'(T>)>>) | Logs the ToDo item with the firewall.
Public method | ModelIsValid | Tests to see if the models provided is valid and makes sense for the current user.
Public method | NextFireWallUserId | Returns a user id for a given user and user device
Public method | PageWasServedToUser | tests if a given page trace id was send to a given user.
Public method | PhishyVisits(TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IFirewallUser, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IPAddress, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | RebuildWhois | Rebuilds the whole who-is database.
Public method | Remember(IPAddress, IMapLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IPAddress, GeoLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IFirewallUser, ClaimsPrincipal) | remember firewall user claim
Public method | Remember(IFirewallUser) | Remembers the specified firewall users for multy-threaded requests.
Public method | RenderView<(Of <<'(TModel>)>>) | Render a razor view using a firewall reporting model
Public method | Report(ReportTypes) | Simple runtime reporting interface allows for text based reports that can be used in health type reports.
Public method | Report(ReportTypes, ReportFormat) | Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.
Public method | RequestsPerMinute | A counter for requests per minute on each minute that there was activity for the duration the wen application was active
Public method | ResetFireWallBlocking()()()() | Reset the firewall release all blocked connections
Public method | ResetFireWallBlocking(array<GeoLocation>[]()[][]) | Reset the firewall release all blocked connections for a given region
Public method | ResetFireWallBlocking(IPAddress, IPAddress) | Reset the firewall release all blocked connections for a given IP address range
Public method | ResetFireWallBlocking(IFirewallUser) | Reset the firewall for a given user and allow access
Public method | ResetFireWallBlocking(UserTypes) | Reset the firewall for a given user types and allow access
Public method | ResetFireWallBlocking(DateTime, DateTime) | Reset the firewall for a given and allow access for any one blocked in date range.
Public method | ResetFireWallBlockingIP | Reset the firewall release all blocked connections for a given IP address
Public method | SetItem | Sets the specified geography factory that is to be used by the firewall.
Protected method | Trigger_OnFireWallCreated | Triggers the on fire wall created.
Public method | TryGetAgentReputation | Try and get a user-agent reputation
Public method | TryGetIncidentStats(IPageRequest, IUserIncidentStats%) | Logs the visit of a given page and returns any known incident statistics.
Public method | TryGetIPMissingWhois(Queue<(Of <<'(IPAddress>)>>)%) | Tries the get IP addresses missing WHOIS.
Public method | TryGetIPMissingWhois(Int32, Queue<(Of <<'(IPAddress>)>>)%) | Tries the get IP addresses missing WHOIS.
Public method | TryGetUser(Int64, Int64, IFirewallUser%) | Tries the get user.
Public method | TryGetUsers(Int64, IReadOnlyList<(Of <<'(IFirewallUser>)>>)%) | Tries the get users.
Public method | TryGetUsers(IPAddress, IReadOnlyList<(Of <<'(IFirewallUser>)>>)%) | Tries to get the get users.
Public method | TryGetValidateUserJavaScript | Tries to get User validation script from the compiled resources. may fail if not licensed and application name is not set to the domain url
Public method | TryRemoveToDo<(Of <<'(T>)>>) | Try and remove a ToDo item from the firewall
Public method | TryWriteFile | Tries to writes the file to disk, will create the directory if needed and will replace any data in file exists
Public method | UpdateInterceptLocation(Guid, InterceptLocations, String) | Updates the intercept location.
Public method | UpdateInterceptLocation(BlockedUserRequest, InterceptLocations, String) | Updates the intercept location.
Public method | UpdatePageRequest | Updates the page request and mark the incident.
Public method | UpdateWhois(PhishyVisitStats, IWhois) | Update the WHOIS record on the PhishyVisit data object
Public method | UpdateWhois(VisitStats, IWhois) | Update the WHOIS record on the Visit data object
Public method | UpdateWhois(IWhois) | update the WHOIS records
Public method | Whois(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(IPAddress) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WhoisAsync(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | WhoisAsync(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WriteFile(FileInfo, String) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFile(FileInfo, array<Byte>[]()[][]) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFileAsync(FileInfo, String, CancellationToken) | Write the content to disk
Public method | WriteFileAsync(FileInfo, array<Byte>[]()[][], CancellationToken) | Write the content to disk

Properties

 | Name | Description
Public property | BaseUrl | Gets the base URL of the firewall, this value may be null if no communication has taken place or the firewall is not licensed.
Public property | ConcurrentUsers | The number of HttpRequests currently active in the application that are being monitored and or processed by the firewall
Public property | Configuration | provides access to the FireWall configuration.
Public property | DiskAudit | Gets the audit log of disk changes detected.
Public property | DiskChangesDetected | Gets the disk changes detected.
Public property | DiskChangesMade | Gets the disk changes made.
Public property | DiskChangesPending | Gets the disk changes pending.
Public property | DnsManager | Gets the DNS manager and access the methods as well as retrieve WhoIs data (if licensed).
 | Engine | Firewall Guard Engine version
Public property | Exceptions | Gets the exceptions that have been recorded during the operation of the firewall.
Public property | FileChangeHistory | Get the change statistics on the file changes detected on disk.
Public property | FileChanges | List of controlled file changes
Public property | FirewallModuleVersion | Gets the firewall module version.
Public property | Geography | Gets the geography provider (plug-in) if one is used.
Public property | Incidents | Provides access to the incidents database.
Public property | Initialization | Duration it took to initialize the firewall.
Public property | IrregularNetworkCommunications | Get recorded communications not released by Configuration.Rules.MonitorCommunicationsNotInPorts
Public property | KnownLinks | Gets the known links to this firewall.
Public property | KPI | KPI Entries as collected by the IInstrumented interface
Public property | LastKnownAgent | The last known agent used by any client
Public property | LastKnowPageId | Gets the last know page identifier.
Public property | MalicoisFileChanges | List of uncontrolled file changes, most likely not intended
Public property | ManipulationState | If set, it contains the detected manipulation state of your files of your application
Public property | MaxConcurrentUsers | Maximum concurrent users recorded
Public property | NuGetPackages | NuGet Packages used by the firewall
Public property | PageKPI | list of KPI's for a page of the last 10 requests processed.
Public property | Requests | Query the firewall database for all requests for reporting purposes
Public property | RuleEngine | Access the runtime rule engine
Public property | SessionId | firewall session id
Public property | SessionRequests | The requests received during the last 20 minutes
Public property | State | Gets the state of the firewall.
Public property | Subscriptions | access the data subscriptions for the license.
Public property | ToDo | Access the item's that have been found to be configured incorrectly during the operation of the firewall
Public property | WebServices | Access the URL's that are integrated in the firewall used for external API access
Public property | WhoisTalking | Provides access to the communications snapshot of the server and web application with resources outside of the local machine and Local area network.

Events

 | Name | Description
Public event | OnCaughtExceptiont | Event triggered when the Firewall caught an exception during the execution of a IPageRequest
Public event | OnCookiePoisoningIncident | Triggered when cookie poisoning is detected
Public event | OnDiskManipulation | This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party
Public event | OnFireWallReset | is raised by the firewall when a firewall reset event has completed.
Public event | OnGuardAction | Event triggered when an guard action is invoked by the firewall (only with licensed instances)
Public event | OnIncident | Event triggered when an guard creates a incident (only with licensed instances)
Public event | OnPhishyRequest | The event allows you to respond on what the firewall considers a request that's served but does not contain a protected definition and is therefore a request that should not have happened.
Public event | OnPortCommunicationDetected | Triggered when a port or a way to access a port is accessed that is not supposed to be accessed in a way it was accessed
Public event | OnResourceRequested | Event triggered whenever a resource is requested by the web application using a HTTP or HTTPS request (only with licensed instances)
Public event | OnResourceSend | Occurs after a resource was send to the requester and the connection has closed
Public event | OnRootPageRequestDisposed | This event is fired when a root page is released from memory. This method is like OnResourceSend however triggers just before being garbage collected by dot net.
Public event | OnUserTypeChange | Event triggered whenever a user type is about to be assigned (only with licensed instances)

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


FireWallBase Constructor (IServiceProvider, IExceptionConsole, IDiskGuard, IWhosTalking, ITalkingProcessesRepository, ILoggerFactory, IMemoryCache, IIncidentDatabase, IWhoisRepository, ISubscriptionsRepository, IEmailReportDesination, IDatabaseReportDestination, ILoggerReportDesination, IFireWallDis

FireWallBase Constructor (IServiceProvider, IExceptionConsole, IDiskGuard, IWhosTalking, ITalkingProcessesRepository, ILoggerFactory, IMemoryCache, IIncidentDatabase, IWhoisRepository, ISubscriptionsRepository, IEmailReportDesination, IDatabaseReportDestination, ILoggerReportDesination, IFireWallDiskLoggerDestination, IEventLogReporting, IGeoFactory, ILatLongRepository, IResetRepository, IUserAgentsRepository, ISearchEngineRepository)

Initializes a new instance of the FireWallBase class used in your concrete implementation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[CLSCompliantAttribute]
protected FireWallBase(
    IServiceProvider serviceProvider,
    IExceptionConsole exceptionConsole,
    IDiskGuard diskGuard,
    IWhosTalking whosTalking,
    ITalkingProcessesRepository whoisTalkingRepository,
    ILoggerFactory loggerFactory,
    IMemoryCache memoryCache,
    IIncidentDatabase incidentDatabase,
    IWhoisRepository whoisRepository,
    ISubscriptionsRepository subscriptions,
    IEmailReportDesination emailReportDestination,
    IDatabaseReportDestination databaseReportDestination,
    ILoggerReportDesination loggerReportDestination,
    IFireWallDiskLoggerDestination diskLoggerDestination,
    IEventLogReporting eventLogReporting,
    IGeoFactory geoFactory,
    ILatLongRepository latLongRepository,
    IResetRepository resetRepository,
    IUserAgentsRepository agentRepository,
    ISearchEngineRepository searchEngineRepository
)

Parameters

serviceProvider
Type: IServiceProvider
exceptionConsole
Type: Walter.BOM..::..IExceptionConsole
Injected class used to log exceptions that need to be resolved and ToDo tasks
diskGuard
Type: Walter.IO..::..IDiskGuard
Injected class used to guard disk manipulations
whosTalking
Type: Walter.Net.LookWhosTalking..::..IWhosTalking
Injected class used find communications what processes are talking on the network
whoisTalkingRepository
Type: Walter.Net.LookWhosTalking.Repository..::..ITalkingProcessesRepository
repository interface for maintaining a historical view on what processes are talking on the network
loggerFactory
Type: ILoggerFactory
The logger factory used to generate login items from (optional).
memoryCache
Type: IMemoryCache
The Memory Cache used to store frequent items (optional).
incidentDatabase
Type: Walter.Web.FireWall.RuleEngine..::..IIncidentDatabase
The incident database, if not provided a disk based version is generated.
whoisRepository
Type: Walter.Web.FireWall.Infrastructure..::..IWhoisRepository
The who-is repository, if not provided a disk based version is generated.
subscriptions
Type: Walter.Web.FireWall.Infrastructure..::..ISubscriptionsRepository
The subscriptions, if not provided a disk based version is generated.
emailReportDestination
Type: Walter.Web.FireWall.Destinations.Email..::..IEmailReportDesination
The email report destination, created via extension method in NuGet Package, if not provided email reporting is not used.
databaseReportDestination
Type: Walter.Web.FireWall.Destinations..::..IDatabaseReportDestination
The database report destination, created via extension method in NuGet Package, if not provided database reporting is not used.
loggerReportDestination
Type: Walter.Web.FireWall.Destinations..::..ILoggerReportDesination
The logger report destination, created via extension method if not provided ILogger reporting is not used.
diskLoggerDestination
Type: Walter.Web.FireWall.Destinations..::..IFireWallDiskLoggerDestination
The disk logger destination, created via extension method in NuGet Package, if not provided disk reporting is not used.
eventLogReporting
Type: Walter.Web.FireWall.Destinations..::..IEventLogReporting
The event log reporting, created via extension method in NuGet Package, if not provided EventLog reporting is not used..
geoFactory
Type: Walter.Web.FireWall.Geo..::..IGeoFactory
The geography factory, created via extension method in NuGet Package, if not provided country level Geography is used via LatLong Repository is not used.
latLongRepository
Type: Walter.Web.FireWall.Geo..::..ILatLongRepository
The lat long repository,created via extension method in NuGet Package, if not provided city level Geography is not used available.
resetRepository
Type: Walter.Web.FireWall.Infrastructure.Repositories..::..IResetRepository
resetRepository manages reset capabilities for the firewall, is generated by the framework based on configuration options of the other repositories
agentRepository
Type: Walter.Web.FireWall.Infrastructure.Factory..::..IUserAgentsRepository
Agent repository manages meta data that the FireWall Guard collects with the page requests.
searchEngineRepository
Type: Walter.Web.FireWall.SearchEngines..::..ISearchEngineRepository

See Also

FireWallBase Class
#ctor Overload
Walter.Web.FireWall Namespace


FireWallBase Methods

The FireWallBase type exposes the following members.

Methods

 | Name | Description
Public method | AddRecovery | Recovery information for local encrypted data
Public method | AddRuntimeFilter | Add a runtime filter blocking incident related user for a given duration from accessing service
Public method | Allow(FireWallContexts, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Allow(FireWallContexts, FirewallAllowReasons, IPAddress) | Allow raise incident to a context to pass through the firewall
Public method | AppendFile | instruct the firewall to allow and to append text to a given file
Public method | AppendLineFile | Appends the line file.
Public method | AppendLineFileAsync | instruct the firewall to allow and to append text to a given file asynchronous.
Public method | Block(IPageRequest, IFireWallRuleTrigger, String, IIncident%) | Blocks the request using the specified rule.
Public method | ChangeStateTo | You can change the state of the firewall at runtime by calling this method in your code.
Public method | Clear | Clear all backing storage for the firewall, resetting the state to it's default
Public method | DeleteFile | Deletes the file and removes the directory if empty.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Protected method | Dispose(Boolean) | Disposes the firewall base as well as the memory objects it needs to save before releasing memory.
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Content Security Policy Violation.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations for processing.
Public method | GetGeoLocation | get the firewall's hosted geographical location
Public method | GetHistory | Gets the history of pages being requested.
Public method | GetIspReport | return the ISP providers ordered by the ISP with the most incidents
Public method | GetMapLocation | get the firewall's hosted geographical map location
Public method | GetPhishyVisitStats(TimeSpan) | Gets the phishy request for a given timespan.
Public method | GetPhishyVisitStats(IFirewallUser, TimeSpan) | Gets the phishy request for a given user and timespan.
Public method | GetPhishyVisitStats(IPAddress, TimeSpan) | Gets the phishy request for a given IPAddress and timespan.
Public method | GetProcessedPagesInRequest | Gets all the processed pages URL's in request.
Public method | GetReport | Access the runtime reporting interface allows for access to the simple reporting data that can be used in health type reports scenarios.
Public method | GetUserHistory | Gets the user history between 2 date times.
Public method | GetUserVisits | Get the user visits information from firewall storage
Public method | GetVisitStats(TimeSpan) | Gets the visit stats for all user in a given timespan.
Public method | GetVisitStats(TimeSpan, Boolean) | Gets the visit stats.
Public method | GetVisitStats(IFirewallUser, TimeSpan) | Gets the visit stats.
Public method | GetVisitStats(IPAddress, TimeSpan) | Get the visit stats for a given IP address ad timespan
Public method | HelpLink | Helps the link for a registered enumerator with ToDo as well as Error enumerators.
Public method | IsBlocked | Get a recommendation whether the specified context is blocked.
Public method | IsKnownUrl | Determines whether the URL is a known and configured endpoint.
Public method | IsLocalIpAddress | Indicates if a IP Address is local to the server as local addresses are buffered in the firewall
Public method | IsSearchEngine | Test if the IP address resolves to the DNS entry of a supported Search engine
Public method | LicenseStack | Usage stack for the firewall so you can see if the firewall is embedded in a external DLL
Public method | LogException<(Of <<'(T>)>>) | Logs the runtime exception.
Public method | LogTodo<(Of <<'(T>)>>) | Logs the ToDo item with the firewall.
Public method | ModelIsValid | Tests to see if the models provided is valid and makes sense for the current user.
Public method | NextFireWallUserId | Returns a user id for a given user and user device
Public method | PageWasServedToUser | tests if a given page trace id was send to a given user.
Public method | PhishyVisits(TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IFirewallUser, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IPAddress, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | RebuildWhois | Rebuilds the whole who-is database.
Public method | Remember(IPAddress, IMapLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IPAddress, GeoLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IFirewallUser, ClaimsPrincipal) | remember firewall user claim
Public method | Remember(IFirewallUser) | Remembers the specified firewall users for multy-threaded requests.
Public method | RenderView<(Of <<'(TModel>)>>) | Render a razor view using a firewall reporting model
Public method | Report(ReportTypes) | Simple runtime reporting interface allows for text based reports that can be used in health type reports.
Public method | Report(ReportTypes, ReportFormat) | Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.
Public method | RequestsPerMinute | A counter for requests per minute on each minute that there was activity for the duration the wen application was active
Public method | ResetFireWallBlocking()()()() | Reset the firewall release all blocked connections
Public method | ResetFireWallBlocking(array<GeoLocation>[]()[][]) | Reset the firewall release all blocked connections for a given region
Public method | ResetFireWallBlocking(IPAddress, IPAddress) | Reset the firewall release all blocked connections for a given IP address range
Public method | ResetFireWallBlocking(IFirewallUser) | Reset the firewall for a given user and allow access
Public method | ResetFireWallBlocking(UserTypes) | Reset the firewall for a given user types and allow access
Public method | ResetFireWallBlocking(DateTime, DateTime) | Reset the firewall for a given and allow access for any one blocked in date range.
Public method | ResetFireWallBlockingIP | Reset the firewall release all blocked connections for a given IP address
Public method | SetItem | Sets the specified geography factory that is to be used by the firewall.
Protected method | Trigger_OnFireWallCreated | Triggers the on fire wall created.
Public method | TryGetAgentReputation | Try and get a user-agent reputation
Public method | TryGetIncidentStats(IPageRequest, IUserIncidentStats%) | Logs the visit of a given page and returns any known incident statistics.
Public method | TryGetIPMissingWhois(Queue<(Of <<'(IPAddress>)>>)%) | Tries the get IP addresses missing WHOIS.
Public method | TryGetIPMissingWhois(Int32, Queue<(Of <<'(IPAddress>)>>)%) | Tries the get IP addresses missing WHOIS.
Public method | TryGetUser(Int64, Int64, IFirewallUser%) | Tries the get user.
Public method | TryGetUsers(Int64, IReadOnlyList<(Of <<'(IFirewallUser>)>>)%) | Tries the get users.
Public method | TryGetUsers(IPAddress, IReadOnlyList<(Of <<'(IFirewallUser>)>>)%) | Tries to get the get users.
Public method | TryGetValidateUserJavaScript | Tries to get User validation script from the compiled resources. may fail if not licensed and application name is not set to the domain url
Public method | TryRemoveToDo<(Of <<'(T>)>>) | Try and remove a ToDo item from the firewall
Public method | TryWriteFile | Tries to writes the file to disk, will create the directory if needed and will replace any data in file exists
Public method | UpdateInterceptLocation(Guid, InterceptLocations, String) | Updates the intercept location.
Public method | UpdateInterceptLocation(BlockedUserRequest, InterceptLocations, String) | Updates the intercept location.
Public method | UpdatePageRequest | Updates the page request and mark the incident.
Public method | UpdateWhois(PhishyVisitStats, IWhois) | Update the WHOIS record on the PhishyVisit data object
Public method | UpdateWhois(VisitStats, IWhois) | Update the WHOIS record on the Visit data object
Public method | UpdateWhois(IWhois) | update the WHOIS records
Public method | Whois(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(IPAddress) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WhoisAsync(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | WhoisAsync(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WriteFile(FileInfo, String) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFile(FileInfo, array<Byte>[]()[][]) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFileAsync(FileInfo, String, CancellationToken) | Write the content to disk
Public method | WriteFileAsync(FileInfo, array<Byte>[]()[][], CancellationToken) | Write the content to disk

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


AddRecovery Method

FireWallBase..::..AddRecovery Method

Recovery information for local encrypted data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AddRecovery(
    RecoveryType recoveryType,
    string name,
    string protectedKey
)

Parameters

recoveryType
Type: Walter.BOM..::..RecoveryType
Type of the recovery.
name
Type: String
The name of the item to recover
protectedKey
Type: String
the key used to protect a runtime password

Exceptions

Exception | Condition
ObjectDisposedException | The firewall has already be disposed and managed resources can no longer be accessed

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


AddRuntimeFilter Method

FireWallBase..::..AddRuntimeFilter Method

Add a runtime filter blocking incident related user for a given duration from accessing service

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AddRuntimeFilter(
    IFireWallRuleTrigger rule,
    IIncident incident,
    TimeSpan duration,
    Uri redirect
)

Parameters

rule
Type: Walter.Web.FireWall..::..IFireWallRuleTrigger
The rule on the user
incident
Type: Walter.Web.FireWall.Models..::..IIncident
the incident collecting blocking requests
duration
Type: TimeSpan
the duration for the block
redirect
Type: Uri
redirect url

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Allow Method

FireWallBase..::..Allow Method

Overload List

 | Name | Description
Public method | Allow(FireWallContexts, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Allow(FireWallContexts, FirewallAllowReasons, IPAddress) | Allow raise incident to a context to pass through the firewall

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


Allow Method (FireWallContexts, IPAddress)

FireWallBase..::..Allow Method (FireWallContexts, IPAddress)

AllowRaiseIncident a context to pass through the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Allow(
    FireWallContexts context,
    IPAddress address
)

Parameters

context
Type: Walter.BOM..::..FireWallContexts
the context to allow
address
Type: IPAddress
the IP address to allow

See Also

FireWallBase Class
Allow Overload
Walter.Web.FireWall Namespace


Allow Method (FireWallContexts, FirewallAllowReasons, IPAddress)

FireWallBase..::..Allow Method (FireWallContexts, FirewallAllowReasons, IPAddress)

Allow raise incident to a context to pass through the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Allow(
    FireWallContexts context,
    FirewallAllowReasons reason,
    IPAddress address
)

Parameters

context
Type: Walter.BOM..::..FireWallContexts
the context to allow
reason
Type: Walter.BOM..::..FirewallAllowReasons
The reason why the IP is released
address
Type: IPAddress
the IP address to allow

See Also

FireWallBase Class
Allow Overload
Walter.Web.FireWall Namespace


AppendFile Method

FireWallBase..::..AppendFile Method

instruct the firewall to allow and to append text to a given file

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AppendFile(
    FileInfo file,
    string text
)

Parameters

file
Type: FileInfo
file that will be allowed to be updated
text
Type: String
the text to append

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


AppendLineFile Method

FireWallBase..::..AppendLineFile Method

Appends the line file.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AppendLineFile(
    FileInfo file,
    string text
)

Parameters

file
Type: FileInfo
file that will be allowed to be updated
text
Type: String
The text.

Return Value

Task.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


AppendLineFileAsync Method

FireWallBase..::..AppendLineFileAsync Method

instruct the firewall to allow and to append text to a given file asynchronous.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task AppendLineFileAsync(
    FileInfo file,
    string text,
    CancellationToken cancellationToken
)

Parameters

file
Type: FileInfo
file that will be allowed to be updated
text
Type: String
The text.
cancellationToken
Type: CancellationToken
Propagates notification if a operations should be canceled.

Return Value

Task.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Block Method (IPageRequest, IFireWallRuleTrigger, String, IIncident)

FireWallBase..::..Block Method (IPageRequest, IFireWallRuleTrigger, String, IIncident%)

Blocks the request using the specified rule.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[ObfuscationAttribute]
public void Block(
    IPageRequest page,
    IFireWallRuleTrigger rule,
    string description,
    out IIncident incident
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
Page context being blocked
rule
Type: Walter.Web.FireWall..::..IFireWallRuleTrigger
The rule to execute.
description
Type: String
Document the reason why bocking was invoked on this page for this user
incident
Type: Walter.Web.FireWall.Models..::..IIncident %
The incident generated

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Block Overload
Walter.Web.FireWall Namespace


ChangeStateTo Method

FireWallBase..::..ChangeStateTo Method

You can change the state of the firewall at runtime by calling this method in your code.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ChangeStateTo(
    FireWallState fireWallState
)

Parameters

fireWallState
Type: Walter.Web.FireWall..::..FireWallState
State of the fire wall.

Remarks

you need to have a licensed version to be able to use this feature

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Clear Method

FireWallBase..::..Clear Method

Clear all backing storage for the firewall, resetting the state to it's default

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Clear(
    ClearOptions options
)

Parameters

options
Type: Walter.Web.FireWall..::..ClearOptions
The options.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


DeleteFile Method

FireWallBase..::..DeleteFile Method

Deletes the file and removes the directory if empty.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void DeleteFile(
    FileInfo file
)

Parameters

file
Type: FileInfo
file that will be allowed to be deleted

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Dispose Method

FireWallBase..::..Dispose Method

Overload List

 | Name | Description
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Protected method | Dispose(Boolean) | Disposes the firewall base as well as the memory objects it needs to save before releasing memory.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


Dispose Method

FireWallBase..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.

See Also

FireWallBase Class
Dispose Overload
Walter.Web.FireWall Namespace


Dispose Method (Boolean)

FireWallBase..::..Dispose Method (Boolean)

Disposes the firewall base as well as the memory objects it needs to save before releasing memory.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true if disposing.

Remarks

Call this method to release memory and save firewall state

See Also

FireWallBase Class
Dispose Overload
Walter.Web.FireWall Namespace


Enqueue Method

FireWallBase..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Content Security Policy Violation.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations for processing.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


Enqueue Method (IContentSecurityPolicyViolation)

FireWallBase..::..Enqueue Method (IContentSecurityPolicyViolation)

Enqueues the specified Content Security Policy Violation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IContentSecurityPolicyViolation report
)

Parameters

report
Type: Walter.BOM.Violations..::..IContentSecurityPolicyViolation
The report to process.

Remarks

Provides a non blocking processing of incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Enqueue Overload
Walter.Web.FireWall Namespace


Enqueue Method (IFireWallViolations)

FireWallBase..::..Enqueue Method (IFireWallViolations)

Enqueues the specified FireWall Violations for processing.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IFireWallViolations report
)

Parameters

report
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The report.

Remarks

Provides a non blocking processing of incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Enqueue Overload
Walter.Web.FireWall Namespace


GetGeoLocation Method

FireWallBase..::..GetGeoLocation Method

get the firewall's hosted geographical location

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation GetGeoLocation()

Return Value

GeoLocation.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetHistory Method

FireWallBase..::..GetHistory Method

Gets the history of pages being requested.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IVisitStats> GetHistory(
    UserTypes userType,
    DateTime from,
    DateTime till
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
The type or types of users that the history is being requested
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IList<VisitStats>.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetIspReport Method

FireWallBase..::..GetIspReport Method

return the ISP providers ordered by the ISP with the most incidents

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<ISimpleISP> GetIspReport(
    TimeSpan timeSpan,
    int rows
)

Parameters

timeSpan
Type: TimeSpan
the duration
rows
Type: Int32
the number of rows to return

Return Value

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetMapLocation Method

FireWallBase..::..GetMapLocation Method

get the firewall's hosted geographical map location

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IMapLocation GetMapLocation()

Return Value

IMapLocation.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method

FireWallBase..::..GetPhishyVisitStats Method

Overload List

 | Name | Description
Public method | GetPhishyVisitStats(TimeSpan) | Gets the phishy request for a given timespan.
Public method | GetPhishyVisitStats(IFirewallUser, TimeSpan) | Gets the phishy request for a given user and timespan.
Public method | GetPhishyVisitStats(IPAddress, TimeSpan) | Gets the phishy request for a given IPAddress and timespan.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method (TimeSpan)

FireWallBase..::..GetPhishyVisitStats Method (TimeSpan)

Gets the phishy request for a given timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PhishyVisitStats> GetPhishyVisitStats(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

See Also

FireWallBase Class
GetPhishyVisitStats Overload
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method (IFirewallUser, TimeSpan)

FireWallBase..::..GetPhishyVisitStats Method (IFirewallUser, TimeSpan)

Gets the phishy request for a given user and timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PhishyVisitStats> GetPhishyVisitStats(
    IFirewallUser user,
    TimeSpan timeSpan
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The firewall user.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

Exceptions

Exception | Condition
ArgumentNullException | user

See Also

FireWallBase Class
GetPhishyVisitStats Overload
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method (IPAddress, TimeSpan)

FireWallBase..::..GetPhishyVisitStats Method (IPAddress, TimeSpan)

Gets the phishy request for a given IPAddress and timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PhishyVisitStats> GetPhishyVisitStats(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
The address.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

Exceptions

Exception | Condition
ArgumentNullException | address

See Also

FireWallBase Class
GetPhishyVisitStats Overload
Walter.Web.FireWall Namespace


GetProcessedPagesInRequest Method

FireWallBase..::..GetProcessedPagesInRequest Method

Gets all the processed pages URL's in request.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerable<string> GetProcessedPagesInRequest(
    int pageRequestId
)

Parameters

pageRequestId
Type: Int32
The page request identifier.

Return Value

IEnumerable<System.String>.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetReport Method

FireWallBase..::..GetReport Method

Access the runtime reporting interface allows for access to the simple reporting data that can be used in health type reports scenarios.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HealthReportingData GetReport(
    ReportTypes details
)

Parameters

details
Type: Walter.Web.FireWall.Reporting..::..ReportTypes
Details to report

Return Value

runtime reporting values

Remarks

this feature is only available in paid licenses. please note that Microsoft's json implementation can't render the complex type.

Examples

tell the framework to use Newtonsoft
services.AddControllersWithViews()
.AddNewtonsoftJson(options=> {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
options.SerializerSettings.Formatting = Formatting.Indented;
});
call the reports
public class HealthController : Controller
{
private readonly IFireWall _fireWall;
public HealthController(IFireWall fireWall)
{
_fireWall = fireWall;
}
[HttpGet]
[Produces("text/plain")]
public string Index()
{
//get all but missing security alerts and missing data subscriptions
return _fireWall.Report(ReportTypes.DEFAULT);
}
[HttpGet]
public JsonResult Json()
{
var items = ReportTypes.ALL &~ ReportTypes.EndPoints;
var data = _fireWall.GetReport(items);
return Json(data);
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetUserHistory Method

FireWallBase..::..GetUserHistory Method

Gets the user history between 2 date times.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<VisitStats> GetUserHistory(
    IFirewallUser user,
    DateTime from,
    DateTime till
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.
from
Type: DateTime
The from date.
till
Type: DateTime
The till date.

Return Value

IReadOnlyList<VisitStats>.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetUserVisits Method

FireWallBase..::..GetUserVisits Method

Get the user visits information from firewall storage

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<VisitStats> GetUserVisits(
    IFirewallUser user,
    TimeSpan timeSpan,
    params HttpStatusCode[] statusCodes
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user
timeSpan
Type: TimeSpan
the duration
statusCodes
Type: array< HttpStatusCode >[]()[][]
Results with status codes

Return Value

List of visiting stats with the HTTP status codes

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


GetVisitStats Method

FireWallBase..::..GetVisitStats Method

Overload List

 | Name | Description
Public method | GetVisitStats(TimeSpan) | Gets the visit stats for all user in a given timespan.
Public method | GetVisitStats(TimeSpan, Boolean) | Gets the visit stats.
Public method | GetVisitStats(IFirewallUser, TimeSpan) | Gets the visit stats.
Public method | GetVisitStats(IPAddress, TimeSpan) | Get the visit stats for a given IP address ad timespan

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


GetVisitStats Method (TimeSpan)

FireWallBase..::..GetVisitStats Method (TimeSpan)

Gets the visit stats for all user in a given timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<VisitStats> GetVisitStats(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<VisitStats>.

See Also

FireWallBase Class
GetVisitStats Overload
Walter.Web.FireWall Namespace


GetVisitStats Method (TimeSpan, Boolean)

FireWallBase..::..GetVisitStats Method (TimeSpan, Boolean)

Gets the visit stats.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<VisitStats> GetVisitStats(
    TimeSpan timeSpan,
    bool missingWhois
)

Parameters

timeSpan
Type: TimeSpan
The time span.
missingWhois
Type: Boolean
if set to true [missing whois].

Return Value

IReadOnlyList<VisitStats>.

See Also

FireWallBase Class
GetVisitStats Overload
Walter.Web.FireWall Namespace


GetVisitStats Method (IFirewallUser, TimeSpan)

FireWallBase..::..GetVisitStats Method (IFirewallUser, TimeSpan)

Gets the visit stats.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<VisitStats> GetVisitStats(
    IFirewallUser user,
    TimeSpan timeSpan
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<VisitStats>.

See Also

FireWallBase Class
GetVisitStats Overload
Walter.Web.FireWall Namespace


GetVisitStats Method (IPAddress, TimeSpan)

FireWallBase..::..GetVisitStats Method (IPAddress, TimeSpan)

Get the visit stats for a given IP address ad timespan

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<VisitStats> GetVisitStats(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
the address to query
timeSpan
Type: TimeSpan
the duration to consider

Return Value

IReadOnlyList<VisitStats>

See Also

FireWallBase Class
GetVisitStats Overload
Walter.Web.FireWall Namespace


HelpLink Method

FireWallBase..::..HelpLink Method

Helps the link for a registered enumerator with ToDo as well as Error enumerators.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string HelpLink(
    IToDoItem value
)

Parameters

value
Type: Walter.BOM..::..IToDoItem
The value.

Return Value

Link to a help URL

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


IsBlocked Method

FireWallBase..::..IsBlocked Method

Get a recommendation whether the specified context is blocked.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsBlocked(
    IPageRequest request,
    out IIncidentAction action
)

Parameters

request
Type: Walter.Web.FireWall..::..IPageRequest
The context.
action
Type: Walter.Web.FireWall.Models..::..IIncidentAction %
The incident that would consider to be the action executed

Return Value

True if the request contains a incident

Remarks

Tests the runtime rules as well as the incident database to determine if the firewall recommends blocking the request

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


IsKnownUrl Method

FireWallBase..::..IsKnownUrl Method

Determines whether the URL is a known and configured endpoint.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsKnownUrl(
    Uri uri,
    ProtocolMethod method
)

Parameters

uri
Type: Uri
The URI.
method
Type: ProtocolMethod
The method that would be invoked

Return Value

true if it's a known URL; otherwise, false.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


IsLocalIpAddress Method

FireWallBase..::..IsLocalIpAddress Method

Indicates if a IP Address is local to the server as local addresses are buffered in the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsLocalIpAddress(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to investigate

Return Value

true if mapped to a local IP address

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


IsSearchEngine Method

FireWallBase..::..IsSearchEngine Method

Test if the IP address resolves to the DNS entry of a supported Search engine

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SearchEngine IsSearchEngine(
    IPAddress ipAddress,
    bool waitTillLoaded
)

Parameters

ipAddress
Type: IPAddress
The IP address.
waitTillLoaded
Type: Boolean
if true will wait for the SearchEngine database to load

Return Value

The discovered search engine value

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


LicenseStack Method

FireWallBase..::..LicenseStack Method

Usage stack for the firewall so you can see if the firewall is embedded in a external DLL

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<ValueTuple<FileVersionInfo, Assembly, string>> LicenseStack()

Return Value

info containing the assembly stack to this class

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


LogException(T) Method

FireWallBase..::..LogException<(Of <(<'T>)>)> Method

Logs the runtime exception.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void LogException<T>(
    T code,
    Exception e,
    string message,
    string memberName,
    string sourceFilePath,
    Nullable<int> sourceLineNumber
)
where T : Enum

Type Parameters

T

Parameters

code
Type: T
The code.
e
Type: Exception
The e.
message
Type: String
The message.
memberName
Type: String
Name of the member.
sourceFilePath
Type: String
The source file path.
sourceLineNumber
Type: Nullable <(Of <(<' Int32 >)>)>
The source line number.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


LogTodo(T) Method

FireWallBase..::..LogTodo<(Of <(<'T>)>)> Method

Logs the ToDo item with the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void LogTodo<T>(
    T code,
    string message,
    bool isOptional
)
where T : Enum

Type Parameters

T
The enumerator type indication the type of ToDo this represents

Parameters

code
Type: T
The enumerator value stating task that needs to be implemented.
message
Type: String
The message.
isOptional
Type: Boolean
indicates if the to-do item is optional for the firewall to function as intended.

Remarks

The firewall will use this method to add missing configuration items. You can access the ToDo's directly via the property ToDo or via the Report interface No one stops you from using this method in your own code to document items that need to be done based on the work-flow(s) executed and plug-in's used.

The ToDo will output a log a Warning for a optional task and a critical task for a task detailing a activity that you should really should implement ASAP

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
[FireWallBase.ToDo]
Report


ModelIsValid Method

FireWallBase..::..ModelIsValid Method

Tests to see if the models provided is valid and makes sense for the current user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual bool ModelIsValid(
    IPageRequest pageContext,
    IModelValidationContext model,
    out IReadOnlyList<ModelValidationErrors> errors
)

Parameters

pageContext
Type: Walter.Web.FireWall..::..IPageRequest
The page context.
model
Type: Walter.Web.FireWall..::..IModelValidationContext
The model.
errors
Type: IReadOnlyList <(Of <(<' ModelValidationErrors >)>)>%
List of errors, if any

Return Value

true if XXXX, false otherwise.

Exceptions

Exception | Condition
ArgumentNullException | Page context and model must be provided

Remarks

This method allows to validate if a model send back using Ajax was send to the current user. You can base your own models and validate them using this method

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


NextFireWallUserId Method

FireWallBase..::..NextFireWallUserId Method

Returns a user id for a given user and user device

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long NextFireWallUserId()

Return Value

Long integer starting with Long.MinValue and will end will rotate when it reaches long.MaxValue

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


PageWasServedToUser Method

FireWallBase..::..PageWasServedToUser Method

tests if a given page trace id was send to a given user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RequestersAssociations PageWasServedToUser(
    long pageRequestId,
    IFirewallUser user
)

Parameters

pageRequestId
Type: Int64
The page request identifier.
user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.

Return Value

Requesters associations with a given page or resource.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


PhishyVisits Method

FireWallBase..::..PhishyVisits Method

Overload List

 | Name | Description
Public method | PhishyVisits(TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IFirewallUser, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IPAddress, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


PhishyVisits Method (TimeSpan)

FireWallBase..::..PhishyVisits Method (TimeSpan)

Get the visits that on endpoints that have not been protected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PhishyVisitStats> PhishyVisits(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
the timespan to return

Return Value

System.Collections.Generic.IReadOnlyList<Walter.Web.FireWall.Models.PhishyVisitStats>.

Remarks

this method wraps access to the IRequestsDatabase of Requests for more ways to access data for reporting purposes use that interface

See Also

FireWallBase Class
PhishyVisits Overload
Walter.Web.FireWall Namespace
Requests


PhishyVisits Method (IFirewallUser, TimeSpan)

FireWallBase..::..PhishyVisits Method (IFirewallUser, TimeSpan)

Get the visits that on endpoints that have not been protected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PhishyVisitStats> PhishyVisits(
    IFirewallUser user,
    TimeSpan timeSpan
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user to filter
timeSpan
Type: TimeSpan
the timespan to return

Return Value

System.Collections.Generic.IReadOnlyList<Walter.Web.FireWall.Models.PhishyVisitStats>.

Remarks

this method wraps access to the IRequestsDatabase of Requests for more ways to access data for reporting purposes use that interface

See Also

FireWallBase Class
PhishyVisits Overload
Walter.Web.FireWall Namespace


PhishyVisits Method (IPAddress, TimeSpan)

FireWallBase..::..PhishyVisits Method (IPAddress, TimeSpan)

Get the visits that on endpoints that have not been protected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PhishyVisitStats> PhishyVisits(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
the IP address to filter
timeSpan
Type: TimeSpan
the timespan to return

Return Value

System.Collections.Generic.IReadOnlyList<Walter.Web.FireWall.Models.PhishyVisitStats>.

Remarks

this method wraps access to the IRequestsDatabase of Requests for more ways to access data for reporting purposes use that interface

See Also

FireWallBase Class
PhishyVisits Overload
Walter.Web.FireWall Namespace


RebuildWhois Method

FireWallBase..::..RebuildWhois Method

Rebuilds the whole who-is database.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[ObfuscationAttribute]
public void RebuildWhois()

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Remember Method

FireWallBase..::..Remember Method

Overload List

 | Name | Description
Public method | Remember(IPAddress, IMapLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IPAddress, GeoLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IFirewallUser, ClaimsPrincipal) | remember firewall user claim
Public method | Remember(IFirewallUser) | Remembers the specified firewall users for multy-threaded requests.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


Remember Method (IPAddress, IMapLocation, TimeSpan)

FireWallBase..::..Remember Method (IPAddress, IMapLocation, TimeSpan)

remember the map location for future use

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Remember(
    IPAddress address,
    IMapLocation location,
    TimeSpan expires
)

Parameters

address
Type: IPAddress
the IP address
location
Type: Walter.BOM.Geo..::..IMapLocation
the location to remember
expires
Type: TimeSpan
tells when to purge the record from the database

See Also

FireWallBase Class
Remember Overload
Walter.Web.FireWall Namespace


Remember Method (IPAddress, GeoLocation, TimeSpan)

FireWallBase..::..Remember Method (IPAddress, GeoLocation, TimeSpan)

remember the map location for future use

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Remember(
    IPAddress address,
    GeoLocation location,
    TimeSpan expires
)

Parameters

address
Type: IPAddress
the IP address
location
Type: Walter.BOM.Geo..::..GeoLocation
the location to remember
expires
Type: TimeSpan
tells when to purge the record from the database

See Also

FireWallBase Class
Remember Overload
Walter.Web.FireWall Namespace


Remember Method (IFirewallUser, ClaimsPrincipal)

FireWallBase..::..Remember Method (IFirewallUser, ClaimsPrincipal)

remember firewall user claim

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Remember(
    IFirewallUser fwu,
    ClaimsPrincipal principal
)

Parameters

fwu
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The firewall user.
principal
Type: ClaimsPrincipal
The claims principal.

See Also

FireWallBase Class
Remember Overload
Walter.Web.FireWall Namespace


Remember Method (IFirewallUser)

FireWallBase..::..Remember Method (IFirewallUser)

Remembers the specified firewall users for multy-threaded requests.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Remember(
    IFirewallUser firewallUser
)

Parameters

firewallUser
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The users.

See Also

FireWallBase Class
Remember Overload
Walter.Web.FireWall Namespace


RenderView(TModel) Method

FireWallBase..::..RenderView<(Of <(<'TModel>)>)> Method

Render a razor view using a firewall reporting model

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string RenderView<TModel>(
    string viewName,
    TModel viewData,
    bool renderPartial
)
where TModel : FireWallReportingModel

Type Parameters

TModel
the data type

Parameters

viewName
Type: String
the name of the view in located in ~/views/shared/
viewData
Type: TModel
the data to use as model in the view
renderPartial
Type: Boolean
if true render the view as partial

Return Value

empty string if failed or the rendered HTML by the razor page

Exceptions

Exception | Condition
ArgumentException | View name must be provided
ArgumentNullException | Model must be provided

Remarks

To use Template rendering you need to use the extension method UseRazorTemplates() in your firewall service registration

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);
}).UseRazorTemplates(options=>{
options.EmailReportView="EMailTemplate";
options.EmailReportView=string.Empty;
}).UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
{
options.Archive = TimeSpan.FromDays(180);
options.Server = "mail.your-mail-domain.com";
options.UserName = "userName";
options.Password = "smtpPassword";
options.Port = 25;
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 }
);
});
services.AddMvc(options =>
options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Report Method

FireWallBase..::..Report Method

Overload List

 | Name | Description
Public method | Report(ReportTypes) | Simple runtime reporting interface allows for text based reports that can be used in health type reports.
Public method | Report(ReportTypes, ReportFormat) | Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


Report Method (ReportTypes)

FireWallBase..::..Report Method (ReportTypes)

Simple runtime reporting interface allows for text based reports that can be used in health type reports.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Report(
    ReportTypes details
)

Parameters

details
Type: Walter.Web.FireWall.Reporting..::..ReportTypes
The detail to include in the report

Return Value

text format based report on the firewall

Remarks

This feature is available in all license levels

See Also

FireWallBase Class
Report Overload
Walter.Web.FireWall Namespace
[Reporting.ReportTypes]
[T:Walter.Web.FireWall.Administration.AbuseBaseController.GetReport(System.String)]


Report Method (ReportTypes, ReportFormat)

FireWallBase..::..Report Method (ReportTypes, ReportFormat)

Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Report(
    ReportTypes details,
    ReportFormat format
)

Parameters

details
Type: Walter.Web.FireWall.Reporting..::..ReportTypes
The detail to include in the report
format
Type: Walter.Web.FireWall.Reporting..::..ReportFormat
The format how to report

Return Value

text format based report on the firewall

Remarks

This feature is only available in paid licensed version of the firewall

See Also

FireWallBase Class
Report Overload
Walter.Web.FireWall Namespace
[Reporting.ReportTypes]
[Reporting.ReportFormat]
[T:Walter.Web.FireWall.Administration.AbuseBaseController.GetReport(System.String)]


RequestsPerMinute Method

FireWallBase..::..RequestsPerMinute Method

A counter for requests per minute on each minute that there was activity for the duration the wen application was active

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<DateTime, int> RequestsPerMinute()

Return Value

System.Collections.Generic.IDictionary<System.DateTime, System.Int32>.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method

FireWallBase..::..ResetFireWallBlocking Method

Overload List

 | Name | Description
Public method | ResetFireWallBlocking()()()() | Reset the firewall release all blocked connections
Public method | ResetFireWallBlocking(array<GeoLocation>[]()[][]) | Reset the firewall release all blocked connections for a given region
Public method | ResetFireWallBlocking(IPAddress, IPAddress) | Reset the firewall release all blocked connections for a given IP address range
Public method | ResetFireWallBlocking(IFirewallUser) | Reset the firewall for a given user and allow access
Public method | ResetFireWallBlocking(UserTypes) | Reset the firewall for a given user types and allow access
Public method | ResetFireWallBlocking(DateTime, DateTime) | Reset the firewall for a given and allow access for any one blocked in date range.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method

FireWallBase..::..ResetFireWallBlocking Method

Reset the firewall release all blocked connections

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlocking()

Exceptions

Exception | Condition
Walter.BOM..::..LicenseViolationErrorException<(Of <(<'T>)>)> | if domain or feature is not licensed an exception will be generated

Remarks

As the process can take considerable time depending on how many items are being blocked it is recommended to subscribe to the OnFireWallReset event to test if the expected meta data was created

Examples

The bellow sample shows a configuration that triggers an event when the firewall get's created that's used to reset violations
reset all blocking when the web application starts by calling ResetFireWallBlocking with no parameters
services.AddFireWall("Token", "domain key"
, domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
{
options.JoinCustomerImprovementProgramWithEmail = "EMail@Address.com";
options.Cypher.ApplicationPassword = "123456Seven";
options.ApplicationName = "www.test.dll";
options.ApplicationTag = "WS3";
options.Rules.AllowWhiteListing = false;
options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
options.UseSession = false;
options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);
options.Rules.AllowWhiteListing = true;
options.OnEndpointsCreated+= Options_OnEndpointsCreated;
options.OnFireWallCreated += Options_OnFireWallCreated;
options.Rules.Headers.AddDefaultSecurePolicy()
.AddStrictTransportSecurityNoCache()
.AddXssProtectionBlockAndReport()
.AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
, allowInline: true
, framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);
})
.UseGeography(new System.IO.DirectoryInfo(@"D:\MaxMind"))
.UseDiskLogging(options => { options.Directory = @"d:\administration\FireWall"; })
.UserDatabase(DatabaseConnections.FireWallState)
.UseFireWallReportingDatabase(DatabaseConnections.FireWall)
.UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
{
options.Archive = TimeSpan.FromDays(180);
options.Server = "mail.asp-waf.com";
options.UserName = "noreply@domain.com";
options.Password = "Kuazuua$ki82#ksKKjsk";
options.Port = 25;
options.From = "noreply@domain.com";
options.IgnoreServerCertificateErrors = true;
options.DefaultEmail = "webmaster@domain.com";
options.Archive = TimeSpan.FromDays(60);
options.MailingList.AddRange(new[] {
new EMailAddress("Security Admin","security@domain.com") {
Frequency= TimeSpan.FromHours(1),
Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
new EMailAddress("Website Admin","admin@domain.com"){
Frequency= TimeSpan.FromHours(1),
Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
});
});
//use test all requests
services.AddMvc(options =>
options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);
//use mvc and set json options on the MVC views
services.AddControllersWithViews()
.AddNewtonsoftJson(options=> {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
options.SerializerSettings.Formatting = Formatting.Indented;
});
}
private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
{
foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
{
item.AllowAddhockAccess = true;
}
foreach (var item in e.Links.EndpointsInPath("*.css", "*.png","*.jpg"))
{
item.FirewallDisabled = true;
}
}
private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
{
//get the configuration
var json=  JsonConvert.SerializeObject(firewall.Configuration);
//get filename
var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");
//tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
firewall.WriteFile(new FileInfo(fileName), json);
//Reset all rules and tell all cookies to ignore that the users where blocked
firewall.ResetFireWallBlocking();
}

See Also

FireWallBase Class
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace
OnFireWallReset


ResetFireWallBlocking Method (GeoLocation[])

FireWallBase..::..ResetFireWallBlocking Method (array<GeoLocation>[]()[][])

Reset the firewall release all blocked connections for a given region

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlocking(
    params GeoLocation[] locations
)

Parameters

locations
Type: array< Walter.BOM.Geo..::..GeoLocation >[]()[][]
the geographical location or region to release

Remarks

You can use this method to reset the firewall's blocked users from within your own application. As the process can take considerable time depending on how many items are being blocked it is recommended to subscribe to the OnFireWallReset event to test if the expected meta data was created

Examples

The bellow sample shows a configuration that triggers an event when the firewall get's created that's used to reset violations
reset all blocking when the web application starts by calling ResetFireWallBlocking with geographical parameters
services.AddFireWall("Token", "domain key"
, domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
{
options.JoinCustomerImprovementProgramWithEmail = "EMail@Address.com";
options.Cypher.ApplicationPassword = "123456Seven";
options.ApplicationName = "www.test.dll";
options.ApplicationTag = "WS3";
options.Rules.AllowWhiteListing = false;
options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
options.UseSession = false;
options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);
options.Rules.AllowWhiteListing = true;
options.OnEndpointsCreated+= Options_OnEndpointsCreated;
options.OnFireWallCreated += Options_OnFireWallCreated;
options.Rules.Headers.AddDefaultSecurePolicy()
.AddStrictTransportSecurityNoCache()
.AddXssProtectionBlockAndReport()
.AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
, allowInline: true
, framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);
})
.UseGeography(new System.IO.DirectoryInfo(@"D:\MaxMind"))
.UseDiskLogging(options => { options.Directory = @"d:\administration\FireWall"; })
.UserDatabase(DatabaseConnections.FireWallState)
.UseFireWallReportingDatabase(DatabaseConnections.FireWall)
.UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
{
options.Archive = TimeSpan.FromDays(180);
options.Server = "mail.asp-waf.com";
options.UserName = "noreply@domain.com";
options.Password = "Kuazuua$ki82#ksKKjsk";
options.Port = 25;
options.From = "noreply@domain.com";
options.IgnoreServerCertificateErrors = true;
options.DefaultEmail = "webmaster@domain.com";
options.Archive = TimeSpan.FromDays(60);
options.MailingList.AddRange(new[] {
new EMailAddress("Security Admin","security@domain.com") {
Frequency= TimeSpan.FromHours(1),
Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
new EMailAddress("Website Admin","admin@domain.com"){
Frequency= TimeSpan.FromHours(1),
Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
});
});
//use test all requests
services.AddMvc(options =>
options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);
//use mvc and set json options on the MVC views
services.AddControllersWithViews()
.AddNewtonsoftJson(options=> {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
options.SerializerSettings.Formatting = Formatting.Indented;
});
}
private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
{
foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
{
item.AllowAddhockAccess = true;
}
foreach (var item in e.Links.EndpointsInPath("*.css", "*.png","*.jpg"))
{
item.FirewallDisabled = true;
}
}
private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
{
//get the configuration
var json=  JsonConvert.SerializeObject(firewall.Configuration);
//get filename
var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");
//tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
firewall.WriteFile(new FileInfo(fileName), json);
//Reset all rules in the region licensed to provide content and tell all browser cookies to ignore that the users where blocked
firewall.ResetFireWallBlocking(GeoLocation.EUROPE);
}

See Also

FireWallBase Class
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (IPAddress, IPAddress)

FireWallBase..::..ResetFireWallBlocking Method (IPAddress, IPAddress)

Reset the firewall release all blocked connections for a given IP address range

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlocking(
    IPAddress from,
    IPAddress till
)

Parameters

from
Type: IPAddress
lower bound
till
Type: IPAddress
upper bound

Exceptions

Exception | Condition
ArgumentNullException | from
ArgumentNullException | till

Remarks

Some times you like to reset a ISP that got blocked when you have a blocking duration that you find to aggressive. As the process can take considerable time depending on how many items are being blocked it is recommended to subscribe to the OnFireWallReset event to test if the expected meta data was created

Examples

The bellow sample shows a configuration that triggers an event when the firewall get's created that's used to reset violations
reset all blocking when the web application starts by calling ResetFireWallBlocking with IP address parameters
services.AddFireWall("Token", "domain key"
, domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
{
options.JoinCustomerImprovementProgramWithEmail = "EMail@Address.com";
options.Cypher.ApplicationPassword = "123456Seven";
options.ApplicationName = "www.test.dll";
options.ApplicationTag = "WS3";
options.Rules.AllowWhiteListing = false;
options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
options.UseSession = false;
options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);
options.Rules.AllowWhiteListing = true;
options.OnEndpointsCreated+= Options_OnEndpointsCreated;
options.OnFireWallCreated += Options_OnFireWallCreated;
options.Rules.Headers.AddDefaultSecurePolicy()
.AddStrictTransportSecurityNoCache()
.AddXssProtectionBlockAndReport()
.AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
, allowInline: true
, framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);
})
.UseGeography(new System.IO.DirectoryInfo(@"D:\MaxMind"))
.UseDiskLogging(options => { options.Directory = @"d:\administration\FireWall"; })
.UserDatabase(DatabaseConnections.FireWallState)
.UseFireWallReportingDatabase(DatabaseConnections.FireWall)
.UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
{
options.Archive = TimeSpan.FromDays(180);
options.Server = "mail.asp-waf.com";
options.UserName = "noreply@domain.com";
options.Password = "Kuazuua$ki82#ksKKjsk";
options.Port = 25;
options.From = "noreply@domain.com";
options.IgnoreServerCertificateErrors = true;
options.DefaultEmail = "webmaster@domain.com";
options.Archive = TimeSpan.FromDays(60);
options.MailingList.AddRange(new[] {
new EMailAddress("Security Admin","security@domain.com") {
Frequency= TimeSpan.FromHours(1),
Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
new EMailAddress("Website Admin","admin@domain.com"){
Frequency= TimeSpan.FromHours(1),
Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
});
});
//use test all requests
services.AddMvc(options =>
options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);
//use mvc and set json options on the MVC views
services.AddControllersWithViews()
.AddNewtonsoftJson(options=> {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
options.SerializerSettings.Formatting = Formatting.Indented;
});
}
private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
{
foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
{
item.AllowAddhockAccess = true;
}
foreach (var item in e.Links.EndpointsInPath("*.css", "*.png","*.jpg"))
{
item.FirewallDisabled = true;
}
}
private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
{
//get the configuration
var json=  JsonConvert.SerializeObject(firewall.Configuration);
//get filename
var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");
//tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
firewall.WriteFile(new FileInfo(fileName), json);
//Reset any blocking rules that might have blocked Google
firewall.ResetFireWallBlocking(new IPAddress("8.8.8.0"),new IPAddress("8.8.8.8"));
}

See Also

FireWallBase Class
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (IFirewallUser)

FireWallBase..::..ResetFireWallBlocking Method (IFirewallUser)

Reset the firewall for a given user and allow access

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlocking(
    IFirewallUser user
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user to grant access again

Exceptions

Exception | Condition
ArgumentNullException | user

Remarks

This method is ideal for allowing blocked users to unblock their account via a link in an email. As the process can take considerable time depending on how many items are being blocked it is recommended to subscribe to the OnFireWallReset event to test if the expected meta data was created

See Also

FireWallBase Class
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (UserTypes)

FireWallBase..::..ResetFireWallBlocking Method (UserTypes)

Reset the firewall for a given user types and allow access

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlocking(
    UserTypes userType
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
The types to allow

Remarks

Some times you like to reset a type of user that got blocked when you have concluded that blocking rules or duration that you find to aggressive. As the process can take considerable time depending on how many items are being blocked it is recommended to subscribe to the OnFireWallReset event to test if the expected meta data was created.

See Also

FireWallBase Class
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (DateTime, DateTime)

FireWallBase..::..ResetFireWallBlocking Method (DateTime, DateTime)

Reset the firewall for a given and allow access for any one blocked in date range.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlocking(
    DateTime fromUtc,
    DateTime tillUtc
)

Parameters

fromUtc
Type: DateTime
lower bound
tillUtc
Type: DateTime
upper bound

Remarks

Some times you like to reset a type of user that got blocked when you have concluded that blocking rules or duration that you find to aggressive

See Also

FireWallBase Class
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlockingIP Method

FireWallBase..::..ResetFireWallBlockingIP Method

Reset the firewall release all blocked connections for a given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void ResetFireWallBlockingIP(
    IPAddress address
)

Parameters

address
Type: IPAddress
lower bound

Exceptions

Exception | Condition
ArgumentNullException | address

Remarks

Some times you like to reset all users coming from a given IP address. this could be a - All users connected via a VPN - Corporate proxy - multiple users in an Internet café - A single person or a house-hold using the same WifI This might make sense that they got blocked however you may find to aggressive and reset it As the process can take considerable time depending on how many items are being blocked it is recommended to subscribe to the OnFireWallReset event to test if the expected meta data was created

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


SetItem Method

FireWallBase..::..SetItem Method

Sets the specified geography factory that is to be used by the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetItem(
    IGeoFactory geoFactory
)

Parameters

geoFactory
Type: Walter.Web.FireWall.Geo..::..IGeoFactory
The GEO factory.

Remarks

The last one will win

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Trigger_OnFireWallCreated Method

FireWallBase..::..Trigger_OnFireWallCreated Method

Triggers the on fire wall created.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected void Trigger_OnFireWallCreated(
    IFireWall fireWall
)

Parameters

fireWall
Type: Walter.Web.FireWall..::..IFireWall
The fire wall.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


TryGetAgentReputation Method

FireWallBase..::..TryGetAgentReputation Method

Try and get a user-agent reputation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetAgentReputation(
    string userAgent,
    out IUAUserAgent agent
)

Parameters

userAgent
Type: String
the user agent to find
agent
Type: Walter.Web.FireWall.Browser..::..IUAUserAgent %
The agent found

Return Value

True if agent repository is used

Remarks

The navigation of IPageRequest.User.UserAgent.MetaData contains access to a the user agent in the request. Use this method when reporting on a given user agent

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
[IUserAgent.MetaData]
[IPageRequest.User]
[IUserIdentity.UserAgent]


TryGetIncidentStats Method (IPageRequest, IUserIncidentStats)

FireWallBase..::..TryGetIncidentStats Method (IPageRequest, IUserIncidentStats%)

Logs the visit of a given page and returns any known incident statistics.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetIncidentStats(
    IPageRequest page,
    out IUserIncidentStats stats
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The request to log the incidents on
stats
Type: Walter.Web.FireWall.ViewModels..::..IUserIncidentStats %
Generates user incident statistics for the endpoint, UserIncidentStats contains the user statistics as well as all recorded incident statistics, if any.

Return Value

true if was able to log the incidents, false otherwise.

Remarks

This data is in context of the current URL, violations on other URL's are ignored.

Multiple registrations of the same request will result in a single entry and one can safely call the method several times without corrupting the underlying data structures

See Also

FireWallBase Class
TryGetIncidentStats Overload
Walter.Web.FireWall Namespace


TryGetIPMissingWhois Method

FireWallBase..::..TryGetIPMissingWhois Method

Overload List

 | Name | Description
Public method | TryGetIPMissingWhois(Queue<(Of <<'(IPAddress>)>>)%) | Tries the get IP addresses missing WHOIS.
Public method | TryGetIPMissingWhois(Int32, Queue<(Of <<'(IPAddress>)>>)%) | Tries the get IP addresses missing WHOIS.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


TryGetIPMissingWhois Method (Queue(IPAddress))

FireWallBase..::..TryGetIPMissingWhois Method (Queue<(Of <(<'IPAddress>)>)>%)

Tries the get IP addresses missing WHOIS.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetIPMissingWhois(
    out Queue<IPAddress> addresses
)

Parameters

addresses
Type: Queue <(Of <(<' IPAddress >)>)>%
The queue with the missing addresses.

Return Value

true if XXXX, false otherwise.

See Also

FireWallBase Class
TryGetIPMissingWhois Overload
Walter.Web.FireWall Namespace


TryGetIPMissingWhois Method (Int32, Queue(IPAddress))

FireWallBase..::..TryGetIPMissingWhois Method (Int32, Queue<(Of <(<'IPAddress>)>)>%)

Tries the get IP addresses missing WHOIS.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetIPMissingWhois(
    int take,
    out Queue<IPAddress> addresses
)

Parameters

take
Type: Int32
the number of rows to take
addresses
Type: Queue <(Of <(<' IPAddress >)>)>%
The queue with the missing addresses.

Return Value

true if XXXX, false otherwise.

See Also

FireWallBase Class
TryGetIPMissingWhois Overload
Walter.Web.FireWall Namespace


TryGetUser Method (Int64, Int64, IFirewallUser)

FireWallBase..::..TryGetUser Method (Int64, Int64, IFirewallUser%)

Tries the get user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetUser(
    long userId,
    long cidr,
    out IFirewallUser user
)

Parameters

userId
Type: Int64
The user identifier.
cidr
Type: Int64
The cidr.
user
Type: Walter.Web.FireWall.Models..::..IFirewallUser %
The user.

Return Value

System.Boolean.

See Also

FireWallBase Class
TryGetUser Overload
Walter.Web.FireWall Namespace


TryGetUsers Method

FireWallBase..::..TryGetUsers Method

Overload List

 | Name | Description
Public method | TryGetUsers(Int64, IReadOnlyList<(Of <<'(IFirewallUser>)>>)%) | Tries the get users.
Public method | TryGetUsers(IPAddress, IReadOnlyList<(Of <<'(IFirewallUser>)>>)%) | Tries to get the get users.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


TryGetUsers Method (Int64, IReadOnlyList(IFirewallUser))

FireWallBase..::..TryGetUsers Method (Int64, IReadOnlyList<(Of <(<'IFirewallUser>)>)>%)

Tries the get users.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetUsers(
    long cidr,
    out IReadOnlyList<IFirewallUser> users
)

Parameters

cidr
Type: Int64
The cidr.
users
Type: IReadOnlyList <(Of <(<' IFirewallUser >)>)>%
The user.

Return Value

System.Boolean.

See Also

FireWallBase Class
TryGetUsers Overload
Walter.Web.FireWall Namespace


TryGetUsers Method (IPAddress, IReadOnlyList(IFirewallUser))

FireWallBase..::..TryGetUsers Method (IPAddress, IReadOnlyList<(Of <(<'IFirewallUser>)>)>%)

Tries to get the get users.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetUsers(
    IPAddress ip,
    out IReadOnlyList<IFirewallUser> users
)

Parameters

ip
Type: IPAddress
The IP address.
users
Type: IReadOnlyList <(Of <(<' IFirewallUser >)>)>%
The user.

Return Value

System.Boolean.

See Also

FireWallBase Class
TryGetUsers Overload
Walter.Web.FireWall Namespace


TryGetValidateUserJavaScript Method

FireWallBase..::..TryGetValidateUserJavaScript Method

Tries to get User validation script from the compiled resources. may fail if not licensed and application name is not set to the domain url

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetValidateUserJavaScript(
    IPageRequest page,
    out byte[] scriptBytes
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to use.
scriptBytes
Type: array< Byte >[]()[][]%
The script bytes to generate.

Return Value

true if configuration was accurate or if a redirect script was generated, false otherwise.

Exceptions

Exception | Condition
Walter.BOM..::..ResourceNotFoundException | If the script resource can't be found
ArgumentNullException | I no page is provided
ArgumentNullException | Page request can't be mocked and must be of a firewall internal base class due to proprietary licensing reasons
Walter.Web.FireWall.Configurations..::..ConfigurationsException | Can't create a a base URI from the configuration provided for the FireWall.Configuration
Walter.Web.FireWall.Configurations..::..ConfigurationsException | You must have a valid URL in your firewall license

Remarks

If the application is mis-configured then the Log as well as the firewalls exception log will contain a detailed reason why it failed.

If you have a file with the name of the route in the wwwroot location of your project then the firewall will not use the internal script template but use the file on disk instead.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


TryRemoveToDo(T) Method

FireWallBase..::..TryRemoveToDo<(Of <(<'T>)>)> Method

Try and remove a ToDo item from the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryRemoveToDo<T>(
    T code,
    string message
)
where T : Enum

Type Parameters

T
The enumerator type indication the type of ToDo this represents

Parameters

code
Type: T
The enumerator value stating task that needs to be implemented.
message
Type: String
The message that the items should have.

Return Value

True if it could be found and removed

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


TryWriteFile Method

FireWallBase..::..TryWriteFile Method

Tries to writes the file to disk, will create the directory if needed and will replace any data in file exists

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryWriteFile(
    FileInfo file,
    string text,
    out Exception e
)

Parameters

file
Type: FileInfo
file that will be allowed to be created or replaced
text
Type: String
The text that is to be stored.
e
Type: Exception %
exception if failed

Return Value

False if a exception was thrown

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


UpdateInterceptLocation Method

FireWallBase..::..UpdateInterceptLocation Method

Overload List

 | Name | Description
Public method | UpdateInterceptLocation(Guid, InterceptLocations, String) | Updates the intercept location.
Public method | UpdateInterceptLocation(BlockedUserRequest, InterceptLocations, String) | Updates the intercept location.

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


UpdateInterceptLocation Method (Guid, InterceptLocations, String)

FireWallBase..::..UpdateInterceptLocation Method (Guid, InterceptLocations, String)

Updates the intercept location.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateInterceptLocation(
    Guid incident,
    InterceptLocations interceptLocations,
    string locationName
)

Parameters

incident
Type: Guid
The incident.
interceptLocations
Type: Walter.BOM..::..InterceptLocations
The intercept locations.
locationName
Type: String
Name of the location.

See Also

FireWallBase Class
UpdateInterceptLocation Overload
Walter.Web.FireWall Namespace


UpdateInterceptLocation Method (BlockedUserRequest, InterceptLocations, String)

FireWallBase..::..UpdateInterceptLocation Method (BlockedUserRequest, InterceptLocations, String)

Updates the intercept location.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateInterceptLocation(
    BlockedUserRequest incident,
    InterceptLocations interceptLocations,
    string locationName
)

Parameters

incident
Type: Walter.BOM..::..BlockedUserRequest
The incident.
interceptLocations
Type: Walter.BOM..::..InterceptLocations
The intercept locations.
locationName
Type: String
Name of the location.

See Also

FireWallBase Class
UpdateInterceptLocation Overload
Walter.Web.FireWall Namespace


UpdatePageRequest Method

FireWallBase..::..UpdatePageRequest Method

Updates the page request and mark the incident.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdatePageRequest(
    IIncident incident
)

Parameters

incident
Type: Walter.Web.FireWall.Models..::..IIncident
The incident.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


UpdateWhois Method

FireWallBase..::..UpdateWhois Method

Overload List

 | Name | Description
Public method | UpdateWhois(PhishyVisitStats, IWhois) | Update the WHOIS record on the PhishyVisit data object
Public method | UpdateWhois(VisitStats, IWhois) | Update the WHOIS record on the Visit data object
Public method | UpdateWhois(IWhois) | update the WHOIS records

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


UpdateWhois Method (PhishyVisitStats, IWhois)

FireWallBase..::..UpdateWhois Method (PhishyVisitStats, IWhois)

Update the WHOIS record on the PhishyVisit data object

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateWhois(
    PhishyVisitStats phishy,
    IWhois whois
)

Parameters

phishy
Type: Walter.Web.FireWall.Models..::..PhishyVisitStats
the entry to update
whois
Type: Walter.Net.Networking..::..IWhois
WHOIS dataset

Exceptions

Exception | Condition
ArgumentNullException | phishy

See Also

FireWallBase Class
UpdateWhois Overload
Walter.Web.FireWall Namespace


UpdateWhois Method (VisitStats, IWhois)

FireWallBase..::..UpdateWhois Method (VisitStats, IWhois)

Update the WHOIS record on the Visit data object

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateWhois(
    VisitStats visit,
    IWhois whois
)

Parameters

visit
Type: Walter.Web.FireWall.Models..::..VisitStats
the entry to update
whois
Type: Walter.Net.Networking..::..IWhois
optionally the WHOIS structure to use when updating

Exceptions

Exception | Condition
ArgumentNullException | phishy

See Also

FireWallBase Class
UpdateWhois Overload
Walter.Web.FireWall Namespace


UpdateWhois Method (IWhois)

FireWallBase..::..UpdateWhois Method (IWhois)

update the WHOIS records

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateWhois(
    IWhois who
)

Parameters

who
Type: Walter.Net.Networking..::..IWhois
The whois records to update

See Also

FireWallBase Class
UpdateWhois Overload
Walter.Web.FireWall Namespace


Whois Method

FireWallBase..::..Whois Method

Overload List

 | Name | Description
Public method | Whois(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(IPAddress) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


Whois Method (IPageRequest)

FireWallBase..::..Whois Method (IPageRequest)

Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IWhois Whois(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to query.

Return Value

IWhois containing the ISP's data.

Exceptions

Exception | Condition
ObjectDisposedException | If the firewall was disposed
ArgumentNullException | If no page request was provided

See Also

FireWallBase Class
Whois Overload
Walter.Web.FireWall Namespace


Whois Method (DnsEntry)

FireWallBase..::..Whois Method (DnsEntry)

Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IWhois Whois(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: Walter.Net.Networking..::..DnsEntry
The address to query.

Return Value

IWhois containing the ISP's data.

See Also

FireWallBase Class
Whois Overload
Walter.Web.FireWall Namespace


Whois Method (IPAddress)

FireWallBase..::..Whois Method (IPAddress)

Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IWhois Whois(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address to query.

Return Value

IWhois containing the ISP's data.

Exceptions

Exception | Condition
ObjectDisposedException | If the firewall was disposed
ArgumentNullException | If no IP address was provided

See Also

FireWallBase Class
Whois Overload
Walter.Web.FireWall Namespace


WhoisAsync Method

FireWallBase..::..WhoisAsync Method

Overload List

 | Name | Description
Public method | WhoisAsync(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | WhoisAsync(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


WhoisAsync Method (DnsEntry)

FireWallBase..::..WhoisAsync Method (DnsEntry)

Queries the firewall for WHOIS information in regards to the owner of a given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task<IWhois> WhoisAsync(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: Walter.Net.Networking..::..DnsEntry
The address to query.

Return Value

IWhois containing the ISP's data.

See Also

FireWallBase Class
WhoisAsync Overload
Walter.Web.FireWall Namespace


WhoisAsync Method (IPageRequest)

FireWallBase..::..WhoisAsync Method (IPageRequest)

Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task<IWhois> WhoisAsync(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to query.

Return Value

Task<IWhois> containing the ISP's data.

See Also

FireWallBase Class
WhoisAsync Overload
Walter.Web.FireWall Namespace


WriteFile Method

FireWallBase..::..WriteFile Method

Overload List

 | Name | Description
Public method | WriteFile(FileInfo, String) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists
Public method | WriteFile(FileInfo, array<Byte>[]()[][]) | Writes the file to disk, will create the directory if needed. Will replace any data in file exists

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


WriteFile Method (FileInfo, String)

FireWallBase..::..WriteFile Method (FileInfo, String)

Writes the file to disk, will create the directory if needed. Will replace any data in file exists

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void WriteFile(
    FileInfo file,
    string text
)

Parameters

file
Type: FileInfo
file that will be allowed to be created or replaced
text
Type: String
The text that is to be stored.

See Also

FireWallBase Class
WriteFile Overload
Walter.Web.FireWall Namespace


WriteFile Method (FileInfo, Byte[])

FireWallBase..::..WriteFile Method (FileInfo, array<Byte>[]()[][])

Writes the file to disk, will create the directory if needed. Will replace any data in file exists

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void WriteFile(
    FileInfo file,
    byte[] bytes
)

Parameters

file
Type: FileInfo
file that will be allowed to be created or replaced
bytes
Type: array< Byte >[]()[][]
The byte data that is to be stored.

See Also

FireWallBase Class
WriteFile Overload
Walter.Web.FireWall Namespace


WriteFileAsync Method

FireWallBase..::..WriteFileAsync Method

Overload List

 | Name | Description
Public method | WriteFileAsync(FileInfo, String, CancellationToken) | Write the content to disk
Public method | WriteFileAsync(FileInfo, array<Byte>[]()[][], CancellationToken) | Write the content to disk

See Also

FireWallBase Class
FireWallBase Members
Walter.Web.FireWall Namespace


WriteFileAsync Method (FileInfo, String, CancellationToken)

FireWallBase..::..WriteFileAsync Method (FileInfo, String, CancellationToken)

Write the content to disk

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task WriteFileAsync(
    FileInfo file,
    string text,
    CancellationToken cancellationToken
)

Parameters

file
Type: FileInfo
the file to create or replace
text
Type: String
the text to write to it
cancellationToken
Type: CancellationToken
Propagates notification that operations should be canceled.

Return Value

Task

See Also

FireWallBase Class
WriteFileAsync Overload
Walter.Web.FireWall Namespace


WriteFileAsync Method (FileInfo, Byte[], CancellationToken)

FireWallBase..::..WriteFileAsync Method (FileInfo, array<Byte>[]()[][], CancellationToken)

Write the content to disk

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task WriteFileAsync(
    FileInfo file,
    byte[] bytes,
    CancellationToken cancellationToken
)

Parameters

file
Type: FileInfo
the file to create or replace
bytes
Type: array< Byte >[]()[][]
the bytes to write to it
cancellationToken
Type: CancellationToken
Propagates notification if a operations should be canceled.

Return Value

Task

See Also

FireWallBase Class
WriteFileAsync Overload
Walter.Web.FireWall Namespace


FireWallBase Properties

The FireWallBase type exposes the following members.

Properties

 | Name | Description
Public property | BaseUrl | Gets the base URL of the firewall, this value may be null if no communication has taken place or the firewall is not licensed.
Public property | ConcurrentUsers | The number of HttpRequests currently active in the application that are being monitored and or processed by the firewall
Public property | Configuration | provides access to the FireWall configuration.
Public property | DiskAudit | Gets the audit log of disk changes detected.
Public property | DiskChangesDetected | Gets the disk changes detected.
Public property | DiskChangesMade | Gets the disk changes made.
Public property | DiskChangesPending | Gets the disk changes pending.
Public property | DnsManager | Gets the DNS manager and access the methods as well as retrieve WhoIs data (if licensed).
 | Engine | Firewall Guard Engine version
Public property | Exceptions | Gets the exceptions that have been recorded during the operation of the firewall.
Public property | FileChangeHistory | Get the change statistics on the file changes detected on disk.
Public property | FileChanges | List of controlled file changes
Public property | FirewallModuleVersion | Gets the firewall module version.
Public property | Geography | Gets the geography provider (plug-in) if one is used.
Public property | Incidents | Provides access to the incidents database.
Public property | Initialization | Duration it took to initialize the firewall.
Public property | IrregularNetworkCommunications | Get recorded communications not released by Configuration.Rules.MonitorCommunicationsNotInPorts
Public property | KnownLinks | Gets the known links to this firewall.
Public property | KPI | KPI Entries as collected by the IInstrumented interface
Public property | LastKnownAgent | The last known agent used by any client
Public property | LastKnowPageId | Gets the last know page identifier.
Public property | MalicoisFileChanges | List of uncontrolled file changes, most likely not intended
Public property | ManipulationState | If set, it contains the detected manipulation state of your files of your application
Public property | MaxConcurrentUsers | Maximum concurrent users recorded
Public property | NuGetPackages | NuGet Packages used by the firewall
Public property | PageKPI | list of KPI's for a page of the last 10 requests processed.
Public property | Requests | Query the firewall database for all requests for reporting purposes
Public property | RuleEngine | Access the runtime rule engine
Public property | SessionId | firewall session id
Public property | SessionRequests | The requests received during the last 20 minutes
Public property | State | Gets the state of the firewall.
Public property | Subscriptions | access the data subscriptions for the license.
Public property | ToDo | Access the item's that have been found to be configured incorrectly during the operation of the firewall
Public property | WebServices | Access the URL's that are integrated in the firewall used for external API access
Public property | WhoisTalking | Provides access to the communications snapshot of the server and web application with resources outside of the local machine and Local area network.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


BaseUrl Property

FireWallBase..::..BaseUrl Property

Gets the base URL of the firewall, this value may be null if no communication has taken place or the firewall is not licensed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[MaybeNullAttribute]
public Uri BaseUrl { get; }

Field Value

The base URL.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


ConcurrentUsers Property

FireWallBase..::..ConcurrentUsers Property

The number of HttpRequests currently active in the application that are being monitored and or processed by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long ConcurrentUsers { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Configuration Property

FireWallBase..::..Configuration Property

provides access to the FireWall configuration.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFireWallConfig Configuration { get; }

Field Value

The current configuration.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


DiskAudit Property

FireWallBase..::..DiskAudit Property

Gets the audit log of disk changes detected.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyBuffer<AuditLog> DiskAudit { get; }

Field Value

The audit buffer.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


DiskChangesDetected Property

FireWallBase..::..DiskChangesDetected Property

Gets the disk changes detected.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int DiskChangesDetected { get; }

Field Value

The changes detected.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


DiskChangesMade Property

FireWallBase..::..DiskChangesMade Property

Gets the disk changes made.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int DiskChangesMade { get; }

Field Value

The changes made.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


DiskChangesPending Property

FireWallBase..::..DiskChangesPending Property

Gets the disk changes pending.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int DiskChangesPending { get; }

Field Value

The changes pending.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


DnsManager Property

FireWallBase..::..DnsManager Property

Gets the DNS manager and access the methods as well as retrieve WhoIs data (if licensed).

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDnsManager DnsManager { get; }

Field Value

The DNS manager.

Remarks

The DNS manager if called via the IFireWall is licensed. Adding the Walter.Net.Networking NuGet Package directly to your project requires a separate license.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Engine Property

FireWallBase..::..Engine Property

Firewall Guard Engine version

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string Engine { get; }

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Exceptions Property

FireWallBase..::..Exceptions Property

Gets the exceptions that have been recorded during the operation of the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerable<IExceptionItem> Exceptions { get; }

Field Value

The exception.

Remarks

This list should be empty. If the list is not empty then these are the errors that will have been sent to us for fixing if you have joined the customer improvement program.

Exceptions are also stored on disk on the location specified as AppDataFolder in your configuration (default is ~\App_Data\. You can always send these to us manually for fixing.

See [IFireWallConfig.JoinCustomerImprovementProgramWithEmail] configuration property for details on this program.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
[IFireWallConfig.JoinCustomerImprovementProgramWithEmail]
[IFireWallConfig.AppDataFolder]


FileChangeHistory Property

FireWallBase..::..FileChangeHistory Property

Get the change statistics on the file changes detected on disk.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<ValueTuple<string, int, DateTime, DateTime>> FileChangeHistory { get; }

Remarks

See FileChanges to access the raw change data

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
FileChanges


FileChanges Property

FireWallBase..::..FileChanges Property

List of controlled file changes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IDiskChanges> FileChanges { get; }

Remarks

A controlled file change is a change have been detected and are known to have been initiated by the firewall trough on of the methods defined in the IFireWallDiskGuard You can access FileChangeHistory to access a simple overview

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
FileChangeHistory


FirewallModuleVersion Property

FireWallBase..::..FirewallModuleVersion Property

Gets the firewall module version.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double FirewallModuleVersion { get; }

Field Value

The firewall module version.

Remarks

The module version indicates the rule engine version and rule capabilities that come with the firewall.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Geography Property

FireWallBase..::..Geography Property

Gets the geography provider (plug-in) if one is used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IGeoFactory Geography { get; set; }

Field Value

The geography.

Remarks

There are several NuGet packages available for this, you can also create and register your own

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Incidents Property

FireWallBase..::..Incidents Property

Provides access to the incidents database.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IIncidentDatabase Incidents { get; }

Field Value

The incidents that are monitored by the firewall.

Remarks

You can control how many days of data are retained in the configuration class. The value is set by changing the value of Configuration.Cashing.BufferFirewallData or via the database based configuration using [IFirewallServices.UseDatabase(string, TimeSpan)] or [IFirewallServices.UseDatabase(string, string, TimeSpan)] extension methods

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
[Walter.Web.FireWall.Configurations.CashingConfig.BufferFirewallData]


Initialization Property

FireWallBase..::..Initialization Property

Duration it took to initialize the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Initialization { get; }

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


IrregularNetworkCommunications Property

FireWallBase..::..IrregularNetworkCommunications Property

Get recorded communications not released by Configuration.Rules.MonitorCommunicationsNotInPorts

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessRecord> IrregularNetworkCommunications { get; }

Field Value

The irregular network communications.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


KnownLinks Property

FireWallBase..::..KnownLinks Property

Gets the known links to this firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IKnownLinks KnownLinks { get; }

Field Value

The known links controllers and API's.

Remarks

Known links are those that the firewall is configured to react on and can be filtered to by the Firewall annotations

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


KPI Property

FireWallBase..::..KPI Property

KPI Entries as collected by the IInstrumented interface

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<string, KpiEntry> KPI { get; }

Field Value

The Firewall entries "Rule Nam"=[KPI stats].

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


LastKnownAgent Property

FireWallBase..::..LastKnownAgent Property

The last known agent used by any client

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[MaybeNullAttribute]
public string LastKnownAgent { get; set; }

Field Value

The last known agent.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


LastKnowPageId Property

FireWallBase..::..LastKnowPageId Property

Gets the last know page identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long LastKnowPageId { get; }

Field Value

The last know page identifier.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


MalicoisFileChanges Property

FireWallBase..::..MalicoisFileChanges Property

List of uncontrolled file changes, most likely not intended

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<FireWallDiskViolation> MalicoisFileChanges { get; }

Remarks

A controlled file change is a change have been detected and are known to have been initiated by the firewall trough on of the methods defined in the IFireWallDiskGuard You can monitor detected changes by subscribing to the OnDiskManipulation event or by using one of the reporting plugins. Please note that [IFireWallConfig.Rules] may affect how the firewall reacts to manipulations by configuring [RulesConfig.TerminateApplicationOnDiskManipulation] and [RulesConfig.RedirectAllRequestsOnDiskManipulation]

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
[Configurations.RulesConfig.TerminateApplicationOnDiskManipulation]
[Configurations.RulesConfig.RedirectAllRequestsOnDiskManipulation]


ManipulationState Property

FireWallBase..::..ManipulationState Property

If set, it contains the detected manipulation state of your files of your application

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ApplicationCompromisedActions ManipulationState { get; set; }

Remarks

Your log file if you have implemented logging will contain the file that caused the violations.

Ideally you would have one of the add-ons that are used for reporting in the firewall like NuGet packages Walter.Web.FireWall.SMTP logger and Walter.Web.FireWall.EventLog

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


MaxConcurrentUsers Property

FireWallBase..::..MaxConcurrentUsers Property

Maximum concurrent users recorded

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long MaxConcurrentUsers { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


NuGetPackages Property

FireWallBase..::..NuGetPackages Property

NuGet Packages used by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<AssemblyVersionInfo> NuGetPackages { get; }

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


PageKPI Property

FireWallBase..::..PageKPI Property

list of KPI's for a page of the last 10 requests processed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<KpiPageEntry> PageKPI { get; }

Field Value

set of page KPI's.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Requests Property

FireWallBase..::..Requests Property

Query the firewall database for all requests for reporting purposes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IRequestsDatabase Requests { get; }

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


RuleEngine Property

FireWallBase..::..RuleEngine Property

Access the runtime rule engine

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IRuntimeRulesEngine RuleEngine { get; }

Field Value

The rule engine.

Remarks

Rules are dynamic and customizable, this property allows you to interact with the rules at runtime

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


SessionId Property

FireWallBase..::..SessionId Property

firewall session id

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal SessionId { get; }

Remarks

session ID is used for audit and trace grouping of page requests. SessionIs and [IInstrumented.SessionPageGroupNumber] available in the base class of IPageRequest

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


SessionRequests Property

FireWallBase..::..SessionRequests Property

The requests received during the last 20 minutes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IVisitStats> SessionRequests { get; }

Field Value

The requests.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


State Property

FireWallBase..::..State Property

Gets the state of the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallState State { get; }

Field Value

State of the firewall

Remarks

The state could will be set by the license state or the lacking of it.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Subscriptions Property

FireWallBase..::..Subscriptions Property

access the data subscriptions for the license.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISubscriptionsRepository Subscriptions { get; }

Field Value

The subscriptions.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


ToDo Property

FireWallBase..::..ToDo Property

Access the item's that have been found to be configured incorrectly during the operation of the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerable<IToDoItem> ToDo { get; }

Field Value

Set of IToDoItems.

Remarks

The list of ToDo items is reset each time the firewall is started.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


WebServices Property

FireWallBase..::..WebServices Property

Access the URL's that are integrated in the firewall used for external API access

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IUriResolverDictionary WebServices { get; }

Field Value

The web services.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


WhoisTalking Property

FireWallBase..::..WhoisTalking Property

Provides access to the communications snapshot of the server and web application with resources outside of the local machine and Local area network.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Talking WhoisTalking { get; }

Return Value

Talking view model

Remarks

The view model allows returned by this method shows the communications that have been discovered at regular intervals during the time the application was active.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


FireWallBase Events

The FireWallBase type exposes the following members.

Events

 | Name | Description
Public event | OnCaughtExceptiont | Event triggered when the Firewall caught an exception during the execution of a IPageRequest
Public event | OnCookiePoisoningIncident | Triggered when cookie poisoning is detected
Public event | OnDiskManipulation | This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party
Public event | OnFireWallReset | is raised by the firewall when a firewall reset event has completed.
Public event | OnGuardAction | Event triggered when an guard action is invoked by the firewall (only with licensed instances)
Public event | OnIncident | Event triggered when an guard creates a incident (only with licensed instances)
Public event | OnPhishyRequest | The event allows you to respond on what the firewall considers a request that's served but does not contain a protected definition and is therefore a request that should not have happened.
Public event | OnPortCommunicationDetected | Triggered when a port or a way to access a port is accessed that is not supposed to be accessed in a way it was accessed
Public event | OnResourceRequested | Event triggered whenever a resource is requested by the web application using a HTTP or HTTPS request (only with licensed instances)
Public event | OnResourceSend | Occurs after a resource was send to the requester and the connection has closed
Public event | OnRootPageRequestDisposed | This event is fired when a root page is released from memory. This method is like OnResourceSend however triggers just before being garbage collected by dot net.
Public event | OnUserTypeChange | Event triggered whenever a user type is about to be assigned (only with licensed instances)

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


OnCaughtExceptiont Event

FireWallBase..::..OnCaughtExceptiont Event

Event triggered when the Firewall caught an exception during the execution of a IPageRequest

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<ExceptionCaughtEventArgs> OnCaughtExceptiont

Remarks

A popular way to hack a site is to crash it to bring it down or to see what happens. This event allows you to except the exception and manage how to deal with it as well as access the page request and generate a blocking incident [IPageRequest.RenderThenBlock(UserBlockingRule, string, TimeSpan, Uri?)] or [IPageRequest.Block(UserBlockingRule, string, TimeSpan, Uri?)] on details how to do this.

A positive side effect is that you are able to intercept exceptions and deal with them as they happen without spoiling the users experience

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


OnCookiePoisoningIncident Event

FireWallBase..::..OnCookiePoisoningIncident Event

Triggered when cookie poisoning is detected

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<FireWallCookieIncidentEventArgs> OnCookiePoisoningIncident

Examples

sample showing how to consume the poisoning cookie event
C#
/// <summary>
/// If this creates a incident the firewall will queue the incident in the reporting workflows, if
/// the email workflow is enabled an email to the firewall administrators will be send informing them about the incident
/// </summary>
private void MyFireWall_OnCookiePoisoningIncident(object sender, FireWallCookieIncidentEventArgs e)
{
/* create a incident and block all access based on the firewall rules for cookie poisoning
* you can not create an incident based on your own logic here
* like:
        ///
e.AllowRaiseIncident = e.CookiePoisoning.CookieManipulations > 2;
        ///
* or when a non- served cookie was injected by checking for common attack patterns like "userId", "card" or "admin"
e.AllowRaiseIncident =  e.CookiePoisoning.PhishingForCookies.ContainsKey("admin");
*
* or when the firewall knows the user is a bot, but not a search engine
e.AllowRaiseIncident = user.UserType.HasFlag(UserTypes.IsBot) && !user.UserType.HasFlag(UserTypes.IsSearchEngine);*/

e.AllowRaiseIncident = true;
        ///
var user = e.Page.User.AsFirewallUser();
        ///
//what ever the firewall detected the user was, add the fact that the user is malicious
user.UserType |= UserTypes.IsMalicious;
        ///
        ///
        ///
//you can do this in the logger but as we are going to block the response making it a ms slower will not "harm user experience"
var InterNetProviderAbuseContact = e.Page.GetAbuseContact();
var ipAddressFromCountry = Walter.BOM.Geo.GeoLocationMapping.GetCountryName(e.Page.Country ?? InterNetProviderAbuseContact.Country);
        ///
//loop over all poisoned cookies and log them
foreach (var cookie in e.PoisonedCookies)
{
if (e.Page.User.IsSearchEngine == SearchEngine.NotSure)
{
_logger?.Lazy().LogInformation("Cookie {name} was poisoned with {value} when {original} was send to by {IP} via {ISP_Name} contact {ISP_Email} in {country}"
, cookie.Name
, cookie.PoisonedValue
, cookie.OriginalValue
, user.IPAddress
, InterNetProviderAbuseContact.Name
, InterNetProviderAbuseContact.EMail
, ipAddressFromCountry
);
}
else
{
_logger?.Lazy().LogInformation("Cookie {name} was poisoned with {value} when {original} was send to site by search engine {searchEngine}"
, cookie.Name
, cookie.PoisonedValue
, cookie.OriginalValue
, e.Page.User.IsSearchEngine
);
}
        ///
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


OnDiskManipulation Event

FireWallBase..::..OnDiskManipulation Event

This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<FireWallDiskManipulationEventArgs> OnDiskManipulation

Remarks

If you do not want the firewall to trigger a alert use interface to make disk changes without triggering over a detection

Examples

The following code shows how to use the firewall to send an mail (if mail add-on installed) when a change on disk is detected by a application that is actually communicating via the network. This could be RemoteDesktop WinVCM or TeamViewer, Telnet, FTP etc.
C#
private void MyFireWall_OnDiskManipulation(object sender, DiskManipulationEventArgs e)
{
foreach (var item in e.Violation.Talking)
{
if (item.tcpRecord.Scope == Walter.Net.Networking.CommunicationScope.WAN)
{
(this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
, "A file change with external communication was detected"
, MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
, true);
}
else
{
(this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
, "A file change with internal communication was detected"
, MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
, true);

}
}
e.Action = ApplicationCompromisedActions.ShutDown | ApplicationCompromisedActions.PersistOnReboot;
}
        ///
private string MakeEmailBody(Walter.Net.Networking.CommunicationScope scope,string executingBinary, IPAddress remoteAddress)
{
if (scope == Walter.Net.Networking.CommunicationScopes.WAN)
{
var map = _geo.QueryMapLocation(remoteAddress);
var whois = Whois(remoteAddress);
return @"
<p>
We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}
</p><p>
While capturing the issue we recorded the IP coming from {City} - {Country} <a hfref="{Link}">google maps link</a></p><p>The IP address is managed by :<br />
{WhoIs}
</p>
".Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
.Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
.Replace("{City}", map.City, StringComparison.OrdinalIgnoreCase)
.Replace("{Country}", map.Country, StringComparison.OrdinalIgnoreCase)
.Replace("{Link}", map.GoogleMapLocation().AbsoluteUri, StringComparison.OrdinalIgnoreCase)
.Replace("{WhoIs}", whois.ToHtml(), StringComparison.OrdinalIgnoreCase);
}

return  @"<p> We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}-{scope}</p>"
.Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
.Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
.Replace("{Scope}",scope.ToString(),StringComparison.OrdinalIgnoreCase);
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..IFireWallDiskGuard


OnFireWallReset Event

FireWallBase..::..OnFireWallReset Event

is raised by the firewall when a firewall reset event has completed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<FireWallResetEventArgs> OnFireWallReset

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


OnGuardAction Event

FireWallBase..::..OnGuardAction Event

Event triggered when an guard action is invoked by the firewall (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<GuardActionEventArgs> OnGuardAction

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
{
private readonly ILogger<MyFireWall> _logger;
private bool _isReccommendOnly = true;
        ///
public MyFireWall(
//enable accessing AppConfig
IConfiguration configuration
        ///
//allow DI to provide interfaces to base class
, ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
, IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
, IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
, ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
, IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
, IResetRepository? resetRepository = null)
: base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
, loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
{
var section = configuration.GetSection("FireWall");
if (section.Exists())
{
_isReccommendOnly = section.GetValue<bool>("RecommendOnly");
}
base.Trigger_OnFireWallCreated(this);
OnIncident += MyFireWall_OnIncident;
OnGuardAction += MyFireWall_OnGuardAction;
OnUserTypeChange += MyFireWall_OnUserTypeChange;
OnResourceRequested += MyFireWall_OnResourceRequested;
_logger = loggerFactory.CreateLogger<MyFireWall>();
}
        ///
private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
{
throw new System.NotImplementedException();
}
        ///
private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
{
_logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
, e.OriginalType
, e.NewType
, e.Rout
, string.Join("\n   ", e.Rules)
);
        ///
//allow the change
e.AllowRaiseIncident = true;
        ///
if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
{
//remove the malicious flag from search engines to not prevent search engines from //indexing the site
e.NewType &= ~UserTypes.IsMalicious;
}
}
        ///
private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.Action
, string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
);
        ///
//allow the firewall to block requests
e.AllowRaiseIncident = _isReccommendOnly;
}
        ///
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.StackEntry.Rule
, e.StackEntry.RuleNr
, e.StackEntry.Reason
, string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
);
//allow the firewall to raise incidents
e.AllowRaiseIncident = _isReccommendOnly;
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
Walter.Web.FireWall.EventArguments..::..GuardActionEventArgs


OnIncident Event

FireWallBase..::..OnIncident Event

Event triggered when an guard creates a incident (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<FireWallIncidentEventArgs> OnIncident

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
{
private readonly ILogger<MyFireWall> _logger;
private bool _isReccommendOnly = true;
readonly IDictionary<GeoLocation?, int> _access = new ConcurrentDictionary<GeoLocation?, int>();
public MyFireWall(
//enable accessing AppConfig
IConfiguration configuration
        ///
//allow DI to provide interfaces to base class
, ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
, IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
, IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
, ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
, IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
, IResetRepository? resetRepository = null)
: base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
, loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
{
var section = configuration.GetSection("FireWall");
if (section.Exists())
{
_isReccommendOnly = section.GetValue<bool>("RecommendOnly");
}
base.Trigger_OnFireWallCreated(this);
OnIncident += MyFireWall_OnIncident;
OnGuardAction += MyFireWall_OnGuardAction;
OnUserTypeChange += MyFireWall_OnUserTypeChange;
OnResourceRequested += MyFireWall_OnResourceRequested;
_logger = loggerFactory.CreateLogger<MyFireWall>();
}
        ///
private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
{
if (_access.TryGetValue(e.Request.Country, out var counter))
{
_access[e.Request.Country] = counter + 1;
}
else
{
_access[e.Request.Country] = 1;
}
}
        ///
private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
{
_logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
, e.OriginalType
, e.NewType
, e.Rout
, string.Join("\n   ", e.Rules)
);
        ///
//allow the change
e.AllowRaiseIncident = true;
        ///
if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
{
//remove the malicious flag from search engines to not prevent search engines from //indexing the site
e.NewType &= ~UserTypes.IsMalicious;
}
}
        ///
private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.Action
, string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
);
        ///
//allow the firewall to block requests
e.AllowRaiseIncident = _isReccommendOnly;
}
        ///
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.StackEntry.Rule
, e.StackEntry.RuleNr
, e.StackEntry.Reason
, string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
);
//allow the firewall to raise incidents
e.AllowRaiseIncident = _isReccommendOnly;
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
[FireWallIncidentEventArgs.AllowRaiseIncident]
[FireWallIncidentEventArgs.StackEntry]


OnPhishyRequest Event

FireWallBase..::..OnPhishyRequest Event

The event allows you to respond on what the firewall considers a request that's served but does not contain a protected definition and is therefore a request that should not have happened.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<PhishyRequestEventArgs> OnPhishyRequest

Remarks

You can decide to no-longer report on the request by setting [PhishyRequestEventArgs.IgnoreForNow] to true for the duration of the firewall session.

You can also call [IPageRequest.Block(UserBlockingRule, string, TimeSpan, Uri?)] on the request indicating to the firewall to stop processing future requests in your code. If providing a URL the request will be redirected to the URL when ever a new request is made by the user for the duration set in the block definition.

Examples

Assuming the firewall using the SMTP NuGet package we use the NuGet package extension method to send a email to the configured developers mailbox for those that are responsible for security
C#
private void MyFireWall_OnPhishyRequest(object sender, PhishyRequestEventArgs e)
{
e.IgnoreForNow = true;
(sender as IFireWall)?.SendEmail(EMailRoles.SecurityRelevant, $"URL {e.Request.OriginalUrl.PathAndQuery} phishy", $"Consider protection for {e.Request.OriginalUrl.PathAndQuery} on {e.Request}", false);
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


OnPortCommunicationDetected Event

FireWallBase..::..OnPortCommunicationDetected Event

Triggered when a port or a way to access a port is accessed that is not supposed to be accessed in a way it was accessed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<HoneyPotDetectionEventArgs> OnPortCommunicationDetected

Remarks

See UsePortScannerProtection() when you register the firewall with the service factory

Examples

register port detection with the firewall
use application.config to configure port scanner detection
services.AddFireWall()
.UsePortScannerProtection(Configuration.GetSection("PortScanner"));

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


OnResourceRequested Event

FireWallBase..::..OnResourceRequested Event

Event triggered whenever a resource is requested by the web application using a HTTP or HTTPS request (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<PageCreatedEventArgs> OnResourceRequested

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
{
private readonly ILogger<MyFireWall> _logger;
private bool _isReccommendOnly = true;
readonly IDictionary<GeoLocation?, int> _access = new ConcurrentDictionary<GeoLocation?, int>();
public MyFireWall(
//enable accessing AppConfig
IConfiguration configuration
        ///
//allow DI to provide interfaces to base class
, ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
, IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
, IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
, ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
, IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
, IResetRepository? resetRepository = null)
: base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
, loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
{
var section = configuration.GetSection("FireWall");
if (section.Exists())
{
_isReccommendOnly = section.GetValue<bool>("RecommendOnly");
}
base.Trigger_OnFireWallCreated(this);
OnIncident += MyFireWall_OnIncident;
OnGuardAction += MyFireWall_OnGuardAction;
OnUserTypeChange += MyFireWall_OnUserTypeChange;
OnResourceRequested += MyFireWall_OnResourceRequested;
_logger = loggerFactory.CreateLogger<MyFireWall>();
}
        ///
private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
{
if (_access.TryGetValue(e.Request.Country, out var counter))
{
_access[e.Request.Country] = counter + 1;
}
else
{
_access[e.Request.Country] = 1;
}
}
        ///
private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
{
_logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
, e.OriginalType
, e.NewType
, e.Rout
, string.Join("\n   ", e.Rules)
);
        ///
//allow the change
e.AllowRaiseIncident = true;
        ///
if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
{
//remove the malicious flag from search engines to not prevent search engines from //indexing the site
e.NewType &= ~UserTypes.IsMalicious;
}
}
        ///
private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.Action
, string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
);
        ///
//allow the firewall to block requests
e.AllowRaiseIncident = _isReccommendOnly;
}
        ///
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.StackEntry.Rule
, e.StackEntry.RuleNr
, e.StackEntry.Reason
, string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
);
//allow the firewall to raise incidents
e.AllowRaiseIncident = _isReccommendOnly;
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
Walter.Web.FireWall.EventArguments..::..PageCreatedEventArgs


OnResourceSend Event

FireWallBase..::..OnResourceSend Event

Occurs after a resource was send to the requester and the connection has closed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<PageSendEventArgs> OnResourceSend

Remarks

This is a non blocking request that occurs after the page was send to the HTTPResponse pipeline. This event is triggered after logging and reporting activity has concluded.

Examples

The included example shows 1 use case where a page is send to the developers if that page has had exceptions during it's life.

You can always add a exception to a IPageRequest by dependency injection in your code

Send all requests that had an issue to the developers so that they can fix the issue
public class MyFireWall:FireWallBase
{
//avoid sending more than 1 email per url during the life of the web application
private readonly HashSet<Uri> _reported = new HashSet<Uri>();
ILogger<MyFireWall> _logger;
public MyFireWall(ILoggerFactory factory, IMemoryCache cache, ILatLongRepository geo)
: base(loggerFactory: factory, memoryCache: cache, latLongRepository:geo)
        ///
{
base.Trigger_OnFireWallCreated(this);
        ///
_logger = factory.CreateLogger<MyFireWall>();
OnResourceSend += MyFireWall_OnResourceSend;
}
        ///
        ///
private void MyFireWall_OnResourceSend(object sender, PageSendEventArgs e)
{
// if exception occurred and the url was not reported in this session
if (e.Request.Exception is not null && _reported.Add(e.Request.OriginalUrl))
{
var sb = new StringBuilder();
sb.AppendLine($"Page {e.Request.OriginalUrl} from {e.Request.Country} caused {e.Request.Exceptions.Count} exception(s)");
foreach (var item in e.Request.Exceptions)
{
        ///
sb.AppendLine($"    {item.GetType().Name} exception Message: {item.Message}");
sb.AppendLine($"    {item.ClassName()}.{item.MethodName()} in {item.FileName()}:{item.CodeLineNumber()}");
sb.AppendLine(item.StackTrace);
sb.AppendLine();
}
//Include any documentation if documentation was added by the web application
//using IPageRequest.AddDocumentation("message") method.
var docu = e.Request.GetDocumentation();
if (docu.Count > 0)
{
sb.AppendLine("Documentation:");
foreach (var item in docu)
{
sb.AppendLine(item.Message);
sb.AppendLine($"{item.Method} {item.FileName}:{item.Line}");
}
}

//helper class to send emails to developers, use your email implementation here
MailClient.SendDeveloperError(body: sb.ToString(),e.Request.ToString());
}

}
        ///
protected override void Dispose(bool disposing)
{
if (_reported.Count > 0)
{
_logger?.Lazy().LogWarning("The following {count} errors where recorded on these urls \n\t {urls}",_reported.Count, string.Join("\n\t", _reported.Select(s => s.PathAndQuery)));
}
base.Dispose(disposing);
}
}
        ///
//utility class to send mails
internal class MailClient
{
internal static void SendDeveloperError(string body, string subject)
{
try
{
using MailMessage mail = new MailMessage();
using SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        ///
mail.From = new MailAddress("your_email_address@gmail.com");
mail.To.Add("to_address");
mail.Subject = subject;
mail.Body = body;
        ///
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;
        ///
SmtpServer.Send(mail);
}
catch { }
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
OnRootPageRequestDisposed


OnRootPageRequestDisposed Event

FireWallBase..::..OnRootPageRequestDisposed Event

This event is fired when a root page is released from memory. This method is like OnResourceSend however triggers just before being garbage collected by dot net.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<RootPageDisposedEventArgs> OnRootPageRequestDisposed

Remarks

A root page is a request that was handled by the firewall framework, this might be a API call, a razor view rendered to a browser. The root page may have picked up any dependent requests that where associated, you can find those in the IPageRequest.Pages().

This method is ideal for use when implementing visitor statistics as it will communicate web application usage in near real-time and is packed with information about the pages requested, where the user came from as well as his device capabilities when combined with the user discovery script and API endpoints.

Examples

The included example shows 1 use case where a page is send to the developers if that page has had exceptions during it's life.

You can always add a exception to a IPageRequest by dependency injection in your code

Send all requests that had an issue to the developers so that they can fix the issue
public class MyFireWall:FireWallBase
{
//avoid sending more than 1 email per url during the life of the web application
private readonly HashSet<Uri> _reported = new HashSet<Uri>();
ILogger<MyFireWall> _logger;
public MyFireWall(ILoggerFactory factory, IMemoryCache cache, ILatLongRepository geo)
: base(loggerFactory: factory, memoryCache: cache, latLongRepository:geo)
        ///
{
base.Trigger_OnFireWallCreated(this);
        ///
_logger = factory.CreateLogger<MyFireWall>();
OnRootPageRequestDisposed += MyFireWall_OnResourceSend;
}
        ///
        ///
private void MyFireWall_OnResourceSend(object sender, RootPageDisposedEventArgs e)
{
// if exception occurred and the url was not reported in this session
if (e.Request.Exception is not null && _reported.Add(e.Request.OriginalUrl))
{
var sb = new StringBuilder();
sb.AppendLine($"Page {e.Request.OriginalUrl} from {e.Request.Country} caused {e.Request.Exceptions.Count} exception(s)");
foreach (var item in e.Request.Exceptions)
{
        ///
sb.AppendLine($"    {item.GetType().Name} exception Message: {item.Message}");
sb.AppendLine($"    {item.ClassName()}.{item.MethodName()} in {item.FileName()}:{item.CodeLineNumber()}");
sb.AppendLine(item.StackTrace);
sb.AppendLine();
}
//helper class to send emails to developers, use your email implementation here
MailClient.SendDeveloperError(body: sb.ToString(),e.Request.ToString());
}
}
        ///
protected override void Dispose(bool disposing)
{
if (_reported.Count > 0)
{
_logger?.Lazy().LogWarning("The following {count} errors where recorded on these urls \n\t {urls}",_reported.Count, string.Join("\n\t", _reported.Select(s => s.PathAndQuery)));
}
base.Dispose(disposing);
}
}
        ///
//utility class to send mails
internal class MailClient
{
internal static void SendDeveloperError(string body, string subject)
{
try
{
using MailMessage mail = new MailMessage();
using SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        ///
mail.From = new MailAddress("your_email_address@gmail.com");
mail.To.Add("to_address");
mail.Subject = subject;
mail.Body = body;
        ///
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;
        ///
SmtpServer.Send(mail);
}
catch { }
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
OnResourceSend


OnUserTypeChange Event

FireWallBase..::..OnUserTypeChange Event

Event triggered whenever a user type is about to be assigned (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public event EventHandler<UserTypeChangedEventArgs> OnUserTypeChange

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
{
private readonly ILogger<MyFireWall> _logger;
private bool _isReccommendOnly = true;
readonly IDictionary<GeoLocation?, int> _access = new ConcurrentDictionary<GeoLocation?, int>();
public MyFireWall(
//enable accessing AppConfig
IConfiguration configuration
        ///
//allow DI to provide interfaces to base class
, ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
, IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
, IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
, ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
, IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
, IResetRepository? resetRepository = null)
: base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
, loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
{
var section = configuration.GetSection("FireWall");
if (section.Exists())
{
_isReccommendOnly = section.GetValue<bool>("RecommendOnly");
}
base.Trigger_OnFireWallCreated(this);
OnIncident += MyFireWall_OnIncident;
OnGuardAction += MyFireWall_OnGuardAction;
OnUserTypeChange += MyFireWall_OnUserTypeChange;
OnResourceRequested += MyFireWall_OnResourceRequested;
_logger = loggerFactory.CreateLogger<MyFireWall>();
}
        ///
private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
{
if (_access.TryGetValue(e.Request.Country, out var counter))
{
_access[e.Request.Country] = counter + 1;
}
else
{
_access[e.Request.Country] = 1;
}
}
        ///
private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
{
_logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
, e.OriginalType
, e.NewType
, e.Rout
, string.Join("\n   ", e.Rules)
);
        ///
//allow the change
e.AllowRaiseIncident = true;
        ///
if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
{
//remove the malicious flag from search engines to not prevent search engines from //indexing the site
e.NewType &= ~UserTypes.IsMalicious;
}
}
        ///
private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.Action
, string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
);
        ///
//allow the firewall to block requests
e.AllowRaiseIncident = _isReccommendOnly;
}
        ///
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
{
_logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
, e.Page.Method
, e.Page.OriginalUrl.AbsolutePath
, e.Page.FireWallRoute
, e.StackEntry.Rule
, e.StackEntry.RuleNr
, e.StackEntry.Reason
, string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
);
//allow the firewall to raise incidents
e.AllowRaiseIncident = _isReccommendOnly;
}
}

See Also

FireWallBase Class
Walter.Web.FireWall Namespace
Walter.Web.FireWall.EventArguments..::..UserTypeChangedEventArgs


FireWallDashboardUser Class

Class FireWallDashboardUser. This class cannot be inherited.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallDashboardUser : IFireWallDashboardUser

See Also

FireWallDashboardUser Members
Walter.Web.FireWall Namespace


FireWallDashboardUser Members

The FireWallDashboardUser type exposes the following members.

Methods

 | Name | Description
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | Access | Gets the access groups assigned to the user.
Public property | DisableAccountTill | until when the account should be disabled
Public property | DisplayName | name to use when for display in the system reporting
Public property | Email | email to use when notifying the user that there are penetration attempts with his account
Public property | UserName | Gets the name of the user.
Public property | UsesGeoBlockung | Gets a value indicating whether the user access is limited based on GEO blocking .

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


FireWallDashboardUser Methods

The FireWallDashboardUser type exposes the following members.

Methods

 | Name | Description
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


SetId Method

FireWallDashboardUser..::..SetId Method

Sets the technical identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


SetValues Method

FireWallDashboardUser..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


ToString Method

FireWallDashboardUser..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


FireWallDashboardUser Properties

The FireWallDashboardUser type exposes the following members.

Properties

 | Name | Description
Public property | Access | Gets the access groups assigned to the user.
Public property | DisableAccountTill | until when the account should be disabled
Public property | DisplayName | name to use when for display in the system reporting
Public property | Email | email to use when notifying the user that there are penetration attempts with his account
Public property | UserName | Gets the name of the user.
Public property | UsesGeoBlockung | Gets a value indicating whether the user access is limited based on GEO blocking .

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


Access Property

FireWallDashboardUser..::..Access Property

Gets the access groups assigned to the user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AdminAccess Access { get; }

Field Value

The access.

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


DisableAccountTill Property

FireWallDashboardUser..::..DisableAccountTill Property

until when the account should be disabled

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> DisableAccountTill { get; set; }

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


DisplayName Property

FireWallDashboardUser..::..DisplayName Property

name to use when for display in the system reporting

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DisplayName { get; set; }

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


Email Property

FireWallDashboardUser..::..Email Property

email to use when notifying the user that there are penetration attempts with his account

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Email { get; set; }

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


UserName Property

FireWallDashboardUser..::..UserName Property

Gets the name of the user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string UserName { get; }

Field Value

The name of the user.

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


UsesGeoBlockung Property

FireWallDashboardUser..::..UsesGeoBlockung Property

Gets a value indicating whether the user access is limited based on GEO blocking .

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UsesGeoBlockung { get; }

See Also

FireWallDashboardUser Class
Walter.Web.FireWall Namespace


FireWallGuards Enumeration

Enumeration controlling the guards that are used by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FireWallGuards

Members

Member name | Description
None | Indicates that there is no firewall protection and protection is not defined by the runtime
UsesFilters | The filters
UsesMiddleWare | The firewall uses always on middleware
UsesGeoMiddleWare | The firewall uses geography middleware
UsesHeaderMiddleware | Firewall uses HTTP header middleware
UsesCrossSiteFilter | Cross site protection filter
LimitReffererFilter | Filter allowing for access from only a specific referrer
PhishingGuard | Guard that prevents fishing requests
FireWallAuthentication | Guard that manages user access to firewall administration
ContentSecurityPolicyReport | The content security policy report
HoneyPotPortDetector | detects access via honey pot ports

See Also

Walter.Web.FireWall Namespace


FireWallModules Enumeration

The Enum FireWallModules lists those modules that the firewall is made up of. The Enum is used instrumenting performance and indicates the steps being executed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FireWallModules

Members

Member name | Description
None | This indicates that a module is not defined to add to the protection on or resources
RequestFilter | The request filter protects all requests and executes several rules
HeadersFilter | The module that looks at headers and filters violations
GeoFilter | The geographic filter validations regional access at a request level
FireWallAttributeAnnotation | The fire wall attribute annotation module is a filter that is executed on a annotated object and is usually one of the first item to get executed in a pipeline
GeoAttributeAnnotation | The geographic attribute is annotation module on that is executed on a annotated object and is usually one of the first item to get executed in a pipeline
RazorFireWallHelper | The razor firewall helper module allows you to integrate the firewall at a HTML tag attribute level allowing you to hide or show elements based on violations
RazorGeoHelper | The razor geographic helper module allows you to integrate the firewall at a HTML tag attribute level allowing you to hide or show elements based on geographic locations
PageConstructor | The page request constructor
RequestUserFilter | Filter access based on type of user
CrossSiteFilter | Cross site filter
CrossSiteAttribute | Cross site attribute
Minify | Minify filter
KnownIntentions | Browser/ User agent intentions

See Also

Walter.Web.FireWall Namespace


FireWallProtectionModes Enumeration

Defines the FireWall protection mode that is going to be used

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FireWallProtectionModes

Members

Member name | Description
None | The type is not defined, generally this is bad and should be avoided as the firewall will disable itself
WebSite | The firewall assumes that it is a web site that it is protecting and will use rules that apply to serving pages and dealing with cookies and session
WebService | The firewall assumes that it is a web-service that is being protected, that means that all requests are stateless and that sessions and client side JavaScripts are not used.
ServiceApplication | The firewall assumes that the connected application is something like a service, this could be a service or any application accepting connections
SoftwareFireWall | The firewall assumes to act as a software firewall for all connection coming to, and leaving from the machine.
Distributed | The firewall assumes that it is distributed/ load-balanced on several servers. Please note that you need to use a Distributed Cashing and Session provider in your dependency injection.
Embedded | Indicates that the firewall operates with an reduced memory footprint designed for embedded devices
WebSiteWithApi | The Firewall assumes that it is protecting a web site with controllers, pages and API endpoints

See Also

Walter.Web.FireWall Namespace


FireWallState Enumeration

The state of the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FireWallState

Members

Member name | Description
Active | The firewall is active
ReportOnly | The firewall only reports violations
Off | The firewall is off

See Also

Walter.Web.FireWall Namespace


FramesPolicy Enumeration

IFrame policy

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FramesPolicy

Members

Member name | Description
Allow | allow it
None | allow none
Self | only allow self hosted

See Also

Walter.Web.FireWall Namespace


IDiscoveryLogger Interface

Interface IDiscoveryLogger allows you to log discovery data made by the users javascript executions

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IDiscoveryLogger

Remarks

Please note that each substantive update on the page will write a new discovery entry, ideally you would only write the last data to the target destination. You can write data entries if you would like to have all transformations.

See Also

IDiscoveryLogger Members
Walter.Web.FireWall Namespace


IDiscoveryLogger Members

The IDiscoveryLogger type exposes the following members.

Methods

 | Name | Description
Public method | TryLogServedPageRequest | Tries to log the served page user updates.

See Also

IDiscoveryLogger Interface
Walter.Web.FireWall Namespace


IDiscoveryLogger Methods

The IDiscoveryLogger type exposes the following members.

Methods

 | Name | Description
Public method | TryLogServedPageRequest | Tries to log the served page user updates.

See Also

IDiscoveryLogger Interface
Walter.Web.FireWall Namespace


TryLogServedPageRequest Method

IDiscoveryLogger..::..TryLogServedPageRequest Method

Tries to log the served page user updates.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogServedPageRequest(
    Discovery model
)

Parameters

model
Type: Discovery
The model containing the Java updates.

Return Value

true if XXXX, false otherwise.

See Also

IDiscoveryLogger Interface
Walter.Web.FireWall Namespace


IFireWall Interface

Interface IFireWall provides access to the FireWall management framework.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWall : IFireWallDiskGuard

Remarks

The interface can be used with dependency injection to gain access to the firewall.

Examples

The firewall can easily be integrated into your code via dependency injection
Use dependency injection in your controller to gain access to the firewall's properties and methods
using Microsoft.AspNetCore.Mvc;
   using System.Collections.Generic;
   using Walter.Web.FireWall;

   namespace ASP_WAF.Controllers
   {
       public class FireWallController : Controller
       {
           IFireWall _fireWall;
           public FireWallController(IFireWall fireWall)
           {
               _fireWall = fireWall;
           }
           public IActionResult Index()
           {
               return View();
           }

           public IActionResult LookWhoIsTalking()
           {
               var report = _fireWall.GetReport(Walter.Web.FireWall.Reporting.ReportTypes.Talking);
               IEnumerable<Walter.Net.LookWhosTalking.TcpProcessHistoricRecord> talking = report.Details.Talking;
               return View(talking);
           }
       }
   }
You can use the firewall by registering it with dependency injection as shown in the following code sample. The code sample generates the same registration as what would occur when you configure the application via setup
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
    var conf = new FireWallConfig(FireWallTrial.License, FireWallTrial.DomainKey, new System.Uri("https://localhost:5001", System.UriKind.Absolute))
    {
        AppDataFolder = datafolder,

    };
    conf.Geography.DataDetailLevels = GeoDataDetailLevels.County | GeoDataDetailLevels.City;
    conf.Geography.UseMethod = GeoMethod.UseFile;
    conf.Geography.ConnectionString = @"D:\MaxMind";
    conf.Geography[ContentType.GeoData.ToString()]  = Path.Combine(conf.Geography.ConnectionString, "GeoLite2-Country.mmdb");
    conf.Geography[ContentType.CityData.ToString()] = Path.Combine(conf.Geography.ConnectionString, "GeoLite2-City.mmdb");

    DIContainer.SetDefaultInstance<IFireWallConfig>(conf);
    var state = new DbState("dbo", "Data Source=LocalHost;Initial Catalog=AspWafFireWallState;Integrated Security=True;", TimeSpan.FromDays(365 * 3));
    DIContainer.SetDefaultInstance<DbState>(state);
    conf.Cashing.BufferFirewallData = TimeSpan.FromSeconds(3);
    var serviceProvider = new ServiceCollection()
                        .AddLogging()
                        .AddMemoryCache()
                        .AddSingleton<IFireWallConfig>(conf)
                        .AddSingleton(typeof(IFireWall), typeof(MyFireWall))
                        .AddSingleton(typeof(ILatLongRepository),typeof(MaxMindRepository))
                        .BuildServiceProvider();
    DIContainer.ServiceProvider = serviceProvider;

}

[TestMethod()]
public void FlushTest()
{
    var firewall = DIContainer.GetDefaultInstance<IFireWall>();
    // your test

}

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IFireWall Members
Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..FireWallBase


IFireWall Members

The IFireWall type exposes the following members.

Methods

 | Name | Description
Public method | AddRecovery | Recovery data for encrypted data Indicates if a IP Address is local to the server
Public method | AddRuntimeFilter | Add a runtime filter blocking incident related user for a given duration from accessing service
Public method | Allow(FireWallContexts, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Allow(FireWallContexts, FirewallAllowReasons, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Block | Blocks the request using the specified rule.
Public method | ChangeStateTo | You can change the state of the firewall at runtime by calling this method in your code.
Public method | Clear | Clear backing storage from the firewall to delete some types of data or reset it to factory default
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Content Security Policy Violation.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations for processing.
Public method | GetGeoLocation | get the firewall's hosted geographical location
Public method | GetHistory | Gets the history of pages being requested.
Public method | GetIspReport | return the ISP providers ordered by the ISP with the most incidents
Public method | GetMapLocation | get the firewall's hosted geographical map location
Public method | GetPhishyVisitStats(TimeSpan) | Gets the phishy request for a given timespan.
Public method | GetPhishyVisitStats(IFirewallUser, TimeSpan) | Gets the phishy request for a given user and timespan.
Public method | GetPhishyVisitStats(IPAddress, TimeSpan) | Gets the phishy request for a given IPAddress and timespan.
Public method | GetReport | Access the runtime reporting interface allows for access to the simple reporting data that can be used in health type reports scenarios.
Public method | GetUserHistory | Gets the user history between 2 date times.
Public method | GetUserVisits | Get the user visits information from firewall storage
Public method | GetVisitStats(TimeSpan) | Gets the visit stats for all user in a given timespan.
Public method | GetVisitStats(IPAddress, TimeSpan) | Get the visit stats for a given IP address ad timespan
Public method | HelpLink | Helps the link for a registered enumerator with ToDo as well as Error enumerators.
Public method | IsKnownUrl | Determines whether the URL is a known and configured endpoint.
Public method | IsLocalIpAddress | the address to investigate
Public method | IsSearchEngine | Test if the IP address resolves to the DNS entry of a supported Search engine
Public method | LicenseStack | License usage stack for the firewall
Public method | LogException<(Of <<'(T>)>>) | Logs the exception.
Public method | LogTodo<(Of <<'(T>)>>) | Logs the to-do item with the firewall and can later be accessed in reporting interface.
Public method | ModelIsValid | Tests to see if the models provided is valid and makes sense for the current user.
Public method | NextFireWallUserId | Returns a user id for a given user and user device
Public method | PageWasServedToUser | tests if a given page trace id was send to a given user.
Public method | PhishyVisits(TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IFirewallUser, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IPAddress, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | RebuildWhois | Rebuilds the who-is ISP table for the firewall database.
Public method | Remember(IPAddress, IMapLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IPAddress, GeoLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IFirewallUser, ClaimsPrincipal) | Remembers the specified firewall user with a given claim.
Public method | Remember(IFirewallUser) | Call Remembers if you altered some of the properties in the specified firewall user for later use and pattern recognitions.
Public method | RenderView<(Of <<'(TModel>)>>) | Render a razor view using a firewall reporting model
Public method | Report(ReportTypes) | Simple runtime reporting interface allows for text based reports that can be used in health type reports.
Public method | Report(ReportTypes, ReportFormat) | Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.
Public method | ResetFireWallBlocking()()()() | Reset the firewall release all blocked connections
Public method | ResetFireWallBlocking(array<GeoLocation>[]()[][]) | Reset the firewall release all blocked connections for a given region
Public method | ResetFireWallBlocking(IPAddress, IPAddress) | Reset the firewall release all blocked connections for a given IP address range
Public method | ResetFireWallBlocking(IFirewallUser) | Reset the firewall for a given user and allow access
Public method | ResetFireWallBlocking(UserTypes) | Reset the firewall for a given user types and allow access
Public method | ResetFireWallBlocking(DateTime, DateTime) | Reset the firewall for a given and allow access for any one blocked in date range.
Public method | ResetFireWallBlockingIP | Reset the firewall release all blocked connections for a given IP address
Public method | SetItem | Sets the specified geography factory that is to be used by the firewall.
Public method | TryGetAgentReputation | Try and get a user-agent reputation
Public method | TryGetIncidentStats | of the visited page returns any known incident statistics.
Public method | TryGetUser | Tries to get the firewall user using an IP address and his assigned firewall ID.
Public method | TryGetUsers(Int64, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IFirewallUser>)>>)>)>>)%) | Tries the get the last known firewall user using an IP address.
Public method | TryGetUsers(IPAddress, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IFirewallUser>)>>)>)>>)%) | Tries the get the last known firewall user using an IP address.
Public method | TryGetValidateUserJavaScript | Tries to get User validation script from the compiled resources.
Public method | UpdateInterceptLocation(Guid, InterceptLocations, String) | Updates the intercept location.
Public method | UpdateInterceptLocation(BlockedUserRequest, InterceptLocations, String) | Updates the intercept location.
Public method | UpdatePageRequest | Updates the page request and mark the incident.
Public method | UpdateWhois | Update the WHOIS record on the PhishyVisit data object
Public method | Whois(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(IPAddress) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | Whois(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | WhoisAsync(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WhoisAsync(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address

Properties

 | Name | Description
Public property | BaseUrl | Gets the base URL of the firewall, this value may be null if no communication has taken place or the firewall is not licensed.
Public property | ConcurrentUsers | The number of HttpRequests currently active in the application that are being monitored and or processed by the firewall
Public property | Configuration | provides access to the FireWall configuration.
 | Default | Default firewall instance
Public property | DnsManager | Gets the DNS manager and access the methods as well as retrieve WhoIs data (if licensed).
Public property | Exceptions | Gets the exceptions that have been recorded during the operation of the firewall.
Public property | FileChanges | List of controlled file changes
Public property | FirewallModuleVersion | Gets the firewall module version.
Public property | Geography | Gets the geography provider (plug-in) if one is used.
Public property | Incidents | Provides access to the incidents database.
Public property | IrregularNetworkCommunications | Get recorded communications not released by Configuration.Rules.MonitorCommunicationsNotInPorts
Public property | KnownLinks | Gets the known links to this firewall.
Public property | KPI | KPI Entries as collected by the IInstrumented interface
Public property | LastKnownAgent | Last know user agent used by a user where known the agent to be a plausible agent
Public property | License | Access the License manager in the firewall
Public property | MalicoisFileChanges | List of uncontrolled file changes, most likely not intended
Public property | NuGetPackages | NuGet Packages used by the firewall
Public property | PageKPI | list of KPI's for a page of the last 10 requests processed.
Public property | Requests | Query the firewall database for all requests for reporting purposes
Public property | RuleEngine | Access the runtime rule engine
Public property | SessionId | Firewall unique session identifier
Public property | SessionRequests | The requests received during the last 20 minutes
Public property | State | Gets the state of the firewall.
Public property | ToDo | Access the item's that have been found to be configured incorrectly during the operation of the firewall
Public property | WebServices | Access the URL's that are integrated in the firewall used for external API access
Public property | WhoisTalking | Provides access to the communications snapshot of the server and web application with resources outside of the local machine and Local area network.

Events

 | Name | Description
Public event | OnCaughtExceptiont | Event triggered when the Firewall caught an exception during the execution of a IPageRequest
Public event | OnDiskManipulation | This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party
Public event | OnGuardAction | Event triggered when an guard action is invoked by the firewall (only with licensed instances)
Public event | OnIncident | Event triggered when an guard creates a incident (only with licensed instances)
Public event | OnPhishyRequest | The event allows you to respond on what the firewall considers a request that's served but does not contain a protected definition and is therefore a request that should not have happened.
Public event | OnResourceRequested | Event triggered whenever a resource is requested by the web application using a HTTP or HTTPS request (only with licensed instances)
Public event | OnResourceSend | Occurs after a resource was send to the requester and the connection has closed
Public event | OnUserTypeChange | Event triggered whenever a user type is about to be assigned (only with licensed instances)

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


IFireWall Methods

The IFireWall type exposes the following members.

Methods

 | Name | Description
Public method | AddRecovery | Recovery data for encrypted data Indicates if a IP Address is local to the server
Public method | AddRuntimeFilter | Add a runtime filter blocking incident related user for a given duration from accessing service
Public method | Allow(FireWallContexts, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Allow(FireWallContexts, FirewallAllowReasons, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Block | Blocks the request using the specified rule.
Public method | ChangeStateTo | You can change the state of the firewall at runtime by calling this method in your code.
Public method | Clear | Clear backing storage from the firewall to delete some types of data or reset it to factory default
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Content Security Policy Violation.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations for processing.
Public method | GetGeoLocation | get the firewall's hosted geographical location
Public method | GetHistory | Gets the history of pages being requested.
Public method | GetIspReport | return the ISP providers ordered by the ISP with the most incidents
Public method | GetMapLocation | get the firewall's hosted geographical map location
Public method | GetPhishyVisitStats(TimeSpan) | Gets the phishy request for a given timespan.
Public method | GetPhishyVisitStats(IFirewallUser, TimeSpan) | Gets the phishy request for a given user and timespan.
Public method | GetPhishyVisitStats(IPAddress, TimeSpan) | Gets the phishy request for a given IPAddress and timespan.
Public method | GetReport | Access the runtime reporting interface allows for access to the simple reporting data that can be used in health type reports scenarios.
Public method | GetUserHistory | Gets the user history between 2 date times.
Public method | GetUserVisits | Get the user visits information from firewall storage
Public method | GetVisitStats(TimeSpan) | Gets the visit stats for all user in a given timespan.
Public method | GetVisitStats(IPAddress, TimeSpan) | Get the visit stats for a given IP address ad timespan
Public method | HelpLink | Helps the link for a registered enumerator with ToDo as well as Error enumerators.
Public method | IsKnownUrl | Determines whether the URL is a known and configured endpoint.
Public method | IsLocalIpAddress | the address to investigate
Public method | IsSearchEngine | Test if the IP address resolves to the DNS entry of a supported Search engine
Public method | LicenseStack | License usage stack for the firewall
Public method | LogException<(Of <<'(T>)>>) | Logs the exception.
Public method | LogTodo<(Of <<'(T>)>>) | Logs the to-do item with the firewall and can later be accessed in reporting interface.
Public method | ModelIsValid | Tests to see if the models provided is valid and makes sense for the current user.
Public method | NextFireWallUserId | Returns a user id for a given user and user device
Public method | PageWasServedToUser | tests if a given page trace id was send to a given user.
Public method | PhishyVisits(TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IFirewallUser, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IPAddress, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | RebuildWhois | Rebuilds the who-is ISP table for the firewall database.
Public method | Remember(IPAddress, IMapLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IPAddress, GeoLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IFirewallUser, ClaimsPrincipal) | Remembers the specified firewall user with a given claim.
Public method | Remember(IFirewallUser) | Call Remembers if you altered some of the properties in the specified firewall user for later use and pattern recognitions.
Public method | RenderView<(Of <<'(TModel>)>>) | Render a razor view using a firewall reporting model
Public method | Report(ReportTypes) | Simple runtime reporting interface allows for text based reports that can be used in health type reports.
Public method | Report(ReportTypes, ReportFormat) | Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.
Public method | ResetFireWallBlocking()()()() | Reset the firewall release all blocked connections
Public method | ResetFireWallBlocking(array<GeoLocation>[]()[][]) | Reset the firewall release all blocked connections for a given region
Public method | ResetFireWallBlocking(IPAddress, IPAddress) | Reset the firewall release all blocked connections for a given IP address range
Public method | ResetFireWallBlocking(IFirewallUser) | Reset the firewall for a given user and allow access
Public method | ResetFireWallBlocking(UserTypes) | Reset the firewall for a given user types and allow access
Public method | ResetFireWallBlocking(DateTime, DateTime) | Reset the firewall for a given and allow access for any one blocked in date range.
Public method | ResetFireWallBlockingIP | Reset the firewall release all blocked connections for a given IP address
Public method | SetItem | Sets the specified geography factory that is to be used by the firewall.
Public method | TryGetAgentReputation | Try and get a user-agent reputation
Public method | TryGetIncidentStats | of the visited page returns any known incident statistics.
Public method | TryGetUser | Tries to get the firewall user using an IP address and his assigned firewall ID.
Public method | TryGetUsers(Int64, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IFirewallUser>)>>)>)>>)%) | Tries the get the last known firewall user using an IP address.
Public method | TryGetUsers(IPAddress, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IFirewallUser>)>>)>)>>)%) | Tries the get the last known firewall user using an IP address.
Public method | TryGetValidateUserJavaScript | Tries to get User validation script from the compiled resources.
Public method | UpdateInterceptLocation(Guid, InterceptLocations, String) | Updates the intercept location.
Public method | UpdateInterceptLocation(BlockedUserRequest, InterceptLocations, String) | Updates the intercept location.
Public method | UpdatePageRequest | Updates the page request and mark the incident.
Public method | UpdateWhois | Update the WHOIS record on the PhishyVisit data object
Public method | Whois(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(IPAddress) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | Whois(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | WhoisAsync(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WhoisAsync(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


AddRecovery Method

IFireWall..::..AddRecovery Method

Recovery data for encrypted data
Indicates if a IP Address is local to the server

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddRecovery(
    RecoveryType recoveryType,
    string name,
    string protectedKey
)

Parameters

recoveryType
Type: Walter.BOM..::..RecoveryType
Type of the recovery.
name
Type: String
The name of the item to recover
protectedKey
Type: String
the key used to protect a runtime password

Return Value

true if mapped to a local IP address

Exceptions

Exception | Condition
[ObjectDisposedException] | The firewall has already be disposed and managed resources can no longer be accessed
[ArgumentNullException] | address

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


AddRuntimeFilter Method

IFireWall..::..AddRuntimeFilter Method

Add a runtime filter blocking incident related user for a given duration from accessing service

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddRuntimeFilter(
    IFireWallRuleTrigger rule,
    IIncident incident,
    TimeSpan duration,
    Nullable<Uri> redirect
)

Parameters

rule
Type: Walter.Web.FireWall..::..IFireWallRuleTrigger
The rule on the user
incident
Type: Walter.Web.FireWall.Models..::..IIncident
the incident collecting blocking requests
duration
Type: TimeSpan
the duration for the block
redirect
Type: Nullable <(Of <(<'Uri>)>)>
redirect url

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Allow Method

IFireWall..::..Allow Method

Overload List

 | Name | Description
Public method | Allow(FireWallContexts, IPAddress) | AllowRaiseIncident a context to pass through the firewall
Public method | Allow(FireWallContexts, FirewallAllowReasons, IPAddress) | AllowRaiseIncident a context to pass through the firewall

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


Allow Method (FireWallContexts, IPAddress)

IFireWall..::..Allow Method (FireWallContexts, IPAddress)

AllowRaiseIncident a context to pass through the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Allow(
    FireWallContexts context,
    IPAddress address
)

Parameters

context
Type: Walter.BOM..::..FireWallContexts
the context to allow
address
Type: IPAddress
the IP address to allow

See Also

IFireWall Interface
Allow Overload
Walter.Web.FireWall Namespace


Allow Method (FireWallContexts, FirewallAllowReasons, IPAddress)

IFireWall..::..Allow Method (FireWallContexts, FirewallAllowReasons, IPAddress)

AllowRaiseIncident a context to pass through the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Allow(
    FireWallContexts context,
    FirewallAllowReasons reason,
    IPAddress address
)

Parameters

context
Type: Walter.BOM..::..FireWallContexts
the context to allow
reason
Type: Walter.BOM..::..FirewallAllowReasons
The reason why the IP is released
address
Type: IPAddress
the IP address to allow

See Also

IFireWall Interface
Allow Overload
Walter.Web.FireWall Namespace


Block Method

IFireWall..::..Block Method

Blocks the request using the specified rule.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Block(
    IPageRequest page,
    IFireWallRuleTrigger rule,
    string description,
    out IIncident incident
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
Page context being blocked
rule
Type: Walter.Web.FireWall..::..IFireWallRuleTrigger
The rule to execute.
description
Type: String
Document the reason why bocking was invoked on this page for this user
incident
Type: Walter.Web.FireWall.Models..::..IIncident %
The incident generated

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


ChangeStateTo Method

IFireWall..::..ChangeStateTo Method

You can change the state of the firewall at runtime by calling this method in your code.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ChangeStateTo(
    FireWallState fireWallState
)

Parameters

fireWallState
Type: Walter.Web.FireWall..::..FireWallState

Remarks

you need to have a licensed version to be able to use this feature

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Clear Method

IFireWall..::..Clear Method

Clear backing storage from the firewall to delete some types of data or reset it to factory default

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Clear(
    ClearOptions options
)

Parameters

options
Type: Walter.Web.FireWall..::..ClearOptions

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Enqueue Method

IFireWall..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Content Security Policy Violation.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations for processing.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


Enqueue Method (IContentSecurityPolicyViolation)

IFireWall..::..Enqueue Method (IContentSecurityPolicyViolation)

Enqueues the specified Content Security Policy Violation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IContentSecurityPolicyViolation report
)

Parameters

report
Type: IContentSecurityPolicyViolation
The report to process.

Remarks

Provides a non blocking processing of incidents

See Also

IFireWall Interface
Enqueue Overload
Walter.Web.FireWall Namespace


Enqueue Method (IFireWallViolations)

IFireWall..::..Enqueue Method (IFireWallViolations)

Enqueues the specified FireWall Violations for processing.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IFireWallViolations report
)

Parameters

report
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The report.

Remarks

Provides a non blocking processing of incidents

See Also

IFireWall Interface
Enqueue Overload
Walter.Web.FireWall Namespace


GetGeoLocation Method

IFireWall..::..GetGeoLocation Method

get the firewall's hosted geographical location

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation GetGeoLocation()

Return Value

GeoLocation.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetHistory Method

IFireWall..::..GetHistory Method

Gets the history of pages being requested.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IVisitStats> GetHistory(
    UserTypes userType,
    DateTime from,
    DateTime till
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
The type or types of users that the history is being requested
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IList<VisitStats>.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetIspReport Method

IFireWall..::..GetIspReport Method

return the ISP providers ordered by the ISP with the most incidents

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ISimpleISP> GetIspReport(
    TimeSpan timeSpan,
    int rows
)

Parameters

timeSpan
Type: TimeSpan
the duration
rows
Type: Int32
the number of rows to return

Return Value

list of ISP's in given timespan

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetMapLocation Method

IFireWall..::..GetMapLocation Method

get the firewall's hosted geographical map location

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IMapLocation GetMapLocation()

Return Value

IMapLocation.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method

IFireWall..::..GetPhishyVisitStats Method

Overload List

 | Name | Description
Public method | GetPhishyVisitStats(TimeSpan) | Gets the phishy request for a given timespan.
Public method | GetPhishyVisitStats(IFirewallUser, TimeSpan) | Gets the phishy request for a given user and timespan.
Public method | GetPhishyVisitStats(IPAddress, TimeSpan) | Gets the phishy request for a given IPAddress and timespan.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method (TimeSpan)

IFireWall..::..GetPhishyVisitStats Method (TimeSpan)

Gets the phishy request for a given timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> GetPhishyVisitStats(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

See Also

IFireWall Interface
GetPhishyVisitStats Overload
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method (IFirewallUser, TimeSpan)

IFireWall..::..GetPhishyVisitStats Method (IFirewallUser, TimeSpan)

Gets the phishy request for a given user and timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> GetPhishyVisitStats(
    IFirewallUser user,
    TimeSpan timeSpan
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The firewall user.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

Exceptions

Exception | Condition
[ArgumentNullException] | user

See Also

IFireWall Interface
GetPhishyVisitStats Overload
Walter.Web.FireWall Namespace


GetPhishyVisitStats Method (IPAddress, TimeSpan)

IFireWall..::..GetPhishyVisitStats Method (IPAddress, TimeSpan)

Gets the phishy request for a given IPAddress and timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> GetPhishyVisitStats(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
The address.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

Exceptions

Exception | Condition
[ArgumentNullException] | address

See Also

IFireWall Interface
GetPhishyVisitStats Overload
Walter.Web.FireWall Namespace


GetReport Method

IFireWall..::..GetReport Method

Access the runtime reporting interface allows for access to the simple reporting data that can be used in health type reports scenarios.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HealthReportingData GetReport(
    ReportTypes details
)

Parameters

details
Type: Walter.Web.FireWall.Reporting..::..ReportTypes
Details to report

Return Value

runtime reporting values

Remarks

this feature is only available in paid licenses. please note that Microsoft's json implementation can't render the complex type.

Examples

tell the framework to use Newtonsoft
services.AddControllersWithViews()
           .AddNewtonsoftJson(options=> {
             options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
             options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
             options.SerializerSettings.Formatting = Formatting.Indented;
         });
call the reports
public class HealthController : Controller
{
    private readonly IFireWall _fireWall;

    public HealthController(IFireWall fireWall)
    {
        _fireWall = fireWall;

    }

    [HttpGet]
    [Produces("text/plain")]
    public string Index()
    {
        //get all but missing security alerts and missing data subscriptions
        return _fireWall.Report(ReportTypes.DEFAULT);
    }

    [HttpGet]
    public JsonResult Json()
    {
        var items = ReportTypes.ALL &~ ReportTypes.EndPoints;
        var data = _fireWall.GetReport(items);
        return Json(data);
    }
}

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetUserHistory Method

IFireWall..::..GetUserHistory Method

Gets the user history between 2 date times.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> GetUserHistory(
    IFirewallUser user,
    DateTime from,
    DateTime till
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.
from
Type: DateTime
The from date.
till
Type: DateTime
The till date.

Return Value

IReadOnlyList<VisitStats>.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetUserVisits Method

IFireWall..::..GetUserVisits Method

Get the user visits information from firewall storage

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> GetUserVisits(
    IFirewallUser user,
    TimeSpan timeSpan,
    params HttpStatusCode[] statusCodes
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user
timeSpan
Type: TimeSpan
the duration
statusCodes
Type: array<HttpStatusCode>[]()[][]
Results with status codes

Return Value

List of visiting stats with the HTTP status codes

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


GetVisitStats Method

IFireWall..::..GetVisitStats Method

Overload List

 | Name | Description
Public method | GetVisitStats(TimeSpan) | Gets the visit stats for all user in a given timespan.
Public method | GetVisitStats(IPAddress, TimeSpan) | Get the visit stats for a given IP address ad timespan

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


GetVisitStats Method (TimeSpan)

IFireWall..::..GetVisitStats Method (TimeSpan)

Gets the visit stats for all user in a given timespan.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> GetVisitStats(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<VisitStats>.

See Also

IFireWall Interface
GetVisitStats Overload
Walter.Web.FireWall Namespace


GetVisitStats Method (IPAddress, TimeSpan)

IFireWall..::..GetVisitStats Method (IPAddress, TimeSpan)

Get the visit stats for a given IP address ad timespan

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> GetVisitStats(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
the address to query
timeSpan
Type: TimeSpan
the duration to consider

Return Value

IReadOnlyList<VisitStats>

See Also

IFireWall Interface
GetVisitStats Overload
Walter.Web.FireWall Namespace


HelpLink Method

IFireWall..::..HelpLink Method

Helps the link for a registered enumerator with ToDo as well as Error enumerators.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string HelpLink(
    IToDoItem value
)

Parameters

value
Type: IToDoItem
The value.

Return Value

Link to a help URL

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


IsKnownUrl Method

IFireWall..::..IsKnownUrl Method

Determines whether the URL is a known and configured endpoint.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsKnownUrl(
    Uri uri,
    ProtocolMethod method
)

Parameters

uri
Type: Uri
The URI.
method
Type: ProtocolMethod
The method that would be invoked

Return Value

true if it's a known URL; otherwise, false.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


IsLocalIpAddress Method

IFireWall..::..IsLocalIpAddress Method

the address to investigate

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsLocalIpAddress(
    IPAddress address
)

Parameters

address
Type: IPAddress

Return Value

True if the address is local

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


IsSearchEngine Method

IFireWall..::..IsSearchEngine Method

Test if the IP address resolves to the DNS entry of a supported Search engine

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SearchEngine IsSearchEngine(
    IPAddress ipAddress,
    bool waitTillLoaded
)

Parameters

ipAddress
Type: IPAddress
The IP address.
waitTillLoaded
Type: Boolean
if true will wait for the SearchEngine database to load

Return Value

The discovered search engine value

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


LicenseStack Method

IFireWall..::..LicenseStack Method

License usage stack for the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ValueTuple<FileVersionInfo, Assembly, string>> LicenseStack()

Return Value

info containing the assembly stack to this class

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


LogException(T) Method

IFireWall..::..LogException<(Of <(<'T>)>)> Method

Logs the exception.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void LogException<T>(
    T code,
    Exception e,
    string message,
    Nullable<string> memberName,
    Nullable<string> sourceFilePath,
    Nullable<int> sourceLineNumber
)
where T : Enum

Type Parameters

T

Parameters

code
Type: T
The code.
e
Type: Exception
The e.
message
Type: String
The message.
memberName
Type: Nullable <(Of <(<' String >)>)>
Name of the member.
sourceFilePath
Type: Nullable <(Of <(<' String >)>)>
The source file path.
sourceLineNumber
Type: Nullable <(Of <(<' Int32 >)>)>
The source line number.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


LogTodo(T) Method

IFireWall..::..LogTodo<(Of <(<'T>)>)> Method

Logs the to-do item with the firewall and can later be accessed in reporting interface.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void LogTodo<T>(
    T code,
    string message,
    bool isOptional
)
where T : Enum

Type Parameters

T

Parameters

code
Type: T
The code.
message
Type: String
The message.
isOptional
Type: Boolean
Indicates if a to-do item is optional

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


ModelIsValid Method

IFireWall..::..ModelIsValid Method

Tests to see if the models provided is valid and makes sense for the current user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool ModelIsValid(
    IPageRequest pageContext,
    IModelValidationContext model,
    out IReadOnlyList<ModelValidationErrors> errors
)

Parameters

pageContext
Type: Walter.Web.FireWall..::..IPageRequest
The page context.
model
Type: Walter.Web.FireWall..::..IModelValidationContext
The model.
errors
Type: IReadOnlyList<(Of <(<' ModelValidationErrors >)>)>%
The errors.

Return Value

true if XXXX, false otherwise.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


NextFireWallUserId Method

IFireWall..::..NextFireWallUserId Method

Returns a user id for a given user and user device

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long NextFireWallUserId()

Return Value

Ling integer starting with Long.MinValue and will end will rotate when it reaches long.MaxValue

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


PageWasServedToUser Method

IFireWall..::..PageWasServedToUser Method

tests if a given page trace id was send to a given user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
RequestersAssociations PageWasServedToUser(
    long pageRequestId,
    IFirewallUser user
)

Parameters

pageRequestId
Type: Int64
The page request identifier.
user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.

Return Value

Requesters associations with a given page or resource.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


PhishyVisits Method

IFireWall..::..PhishyVisits Method

Overload List

 | Name | Description
Public method | PhishyVisits(TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IFirewallUser, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall
Public method | PhishyVisits(IPAddress, TimeSpan) | Get the visits that on endpoints that have not been protected by the firewall

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


PhishyVisits Method (TimeSpan)

IFireWall..::..PhishyVisits Method (TimeSpan)

Get the visits that on endpoints that have not been protected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> PhishyVisits(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
the timespan to return

Return Value

List of phishy visits

Remarks

this method wraps access to the IRequestsDatabase of Requests for more ways to access data for reporting purposes use that interface

See Also

IFireWall Interface
PhishyVisits Overload
Walter.Web.FireWall Namespace


PhishyVisits Method (IFirewallUser, TimeSpan)

IFireWall..::..PhishyVisits Method (IFirewallUser, TimeSpan)

Get the visits that on endpoints that have not been protected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> PhishyVisits(
    IFirewallUser user,
    TimeSpan timeSpan
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user to filter
timeSpan
Type: TimeSpan
the timespan to return

Return Value

List of phishy visits

Remarks

this method wraps access to the IRequestsDatabase of Requests for more ways to access data for reporting purposes use that interface

See Also

IFireWall Interface
PhishyVisits Overload
Walter.Web.FireWall Namespace
IFireWall..::..Requests


PhishyVisits Method (IPAddress, TimeSpan)

IFireWall..::..PhishyVisits Method (IPAddress, TimeSpan)

Get the visits that on endpoints that have not been protected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> PhishyVisits(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
the IP address to filter
timeSpan
Type: TimeSpan
the timespan to return

Return Value

List of phishy visits

Remarks

this method wraps access to the IRequestsDatabase of Requests for more ways to access data for reporting purposes use that interface

See Also

IFireWall Interface
PhishyVisits Overload
Walter.Web.FireWall Namespace
IFireWall..::..Requests


RebuildWhois Method

IFireWall..::..RebuildWhois Method

Rebuilds the who-is ISP table for the firewall database.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void RebuildWhois()

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Remember Method

IFireWall..::..Remember Method

Overload List

 | Name | Description
Public method | Remember(IPAddress, IMapLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IPAddress, GeoLocation, TimeSpan) | remember the map location for future use
Public method | Remember(IFirewallUser, ClaimsPrincipal) | Remembers the specified firewall user with a given claim.
Public method | Remember(IFirewallUser) | Call Remembers if you altered some of the properties in the specified firewall user for later use and pattern recognitions.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


Remember Method (IPAddress, IMapLocation, TimeSpan)

IFireWall..::..Remember Method (IPAddress, IMapLocation, TimeSpan)

remember the map location for future use

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remember(
    IPAddress address,
    IMapLocation location,
    TimeSpan expires
)

Parameters

address
Type: IPAddress
the IP address
location
Type: IMapLocation
the location to remember
expires
Type: TimeSpan
tells when to purge the record from the database

See Also

IFireWall Interface
Remember Overload
Walter.Web.FireWall Namespace


Remember Method (IPAddress, GeoLocation, TimeSpan)

IFireWall..::..Remember Method (IPAddress, GeoLocation, TimeSpan)

remember the map location for future use

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remember(
    IPAddress address,
    GeoLocation location,
    TimeSpan expires
)

Parameters

address
Type: IPAddress
the IP address
location
Type: Walter.BOM.Geo..::..GeoLocation
the location to remember
expires
Type: TimeSpan
tells when to purge the record from the database

See Also

IFireWall Interface
Remember Overload
Walter.Web.FireWall Namespace


Remember Method (IFirewallUser, ClaimsPrincipal)

IFireWall..::..Remember Method (IFirewallUser, ClaimsPrincipal)

Remembers the specified firewall user with a given claim.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remember(
    IFirewallUser fwu,
    ClaimsPrincipal principal
)

Parameters

fwu
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The firewall user.
principal
Type: ClaimsPrincipal
The claims principal.

See Also

IFireWall Interface
Remember Overload
Walter.Web.FireWall Namespace


Remember Method (IFirewallUser)

IFireWall..::..Remember Method (IFirewallUser)

Call Remembers if you altered some of the properties in the specified firewall user for later use and pattern recognitions.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remember(
    IFirewallUser firewallUser
)

Parameters

firewallUser
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The firewall user.

See Also

IFireWall Interface
Remember Overload
Walter.Web.FireWall Namespace


RenderView(TModel) Method

IFireWall..::..RenderView<(Of <(<'TModel>)>)> Method

Render a razor view using a firewall reporting model

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string RenderView<TModel>(
    string viewName,
    TModel viewData,
    bool renderPartial
)
where TModel : FireWallReportingModel

Type Parameters

TModel
the data type

Parameters

viewName
Type: String
the name of the view in located in ~/views/shared/
viewData
Type: TModel
the data to use as model in the view
renderPartial
Type: Boolean
if true render the view as partial

Return Value

empty string if failed or the rendered HTML by the razor page

Exceptions

Exception | Condition
[ArgumentException] | View name must be provided
[ArgumentNullException] | Model must be provided

Remarks

To use Template rendering you need to use the extension method UseRazorTemplates() in your firewall service registration

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);
   }).UseRazorTemplates(options=>{
   options.EmailReportView="EMailTemplate";
   options.EmailReportView=string.Empty;
   }).UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
   {
   options.Archive = TimeSpan.FromDays(180);
   options.Server = "mail.your-mail-domain.com";
   options.UserName = "userName";
   options.Password = "smtpPassword";
   options.Port = 25;
   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 }
   );
   });
   services.AddMvc(options =>
   options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
   );

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Report Method

IFireWall..::..Report Method

Overload List

 | Name | Description
Public method | Report(ReportTypes) | Simple runtime reporting interface allows for text based reports that can be used in health type reports.
Public method | Report(ReportTypes, ReportFormat) | Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


Report Method (ReportTypes)

IFireWall..::..Report Method (ReportTypes)

Simple runtime reporting interface allows for text based reports that can be used in health type reports.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Report(
    ReportTypes details
)

Parameters

details
Type: Walter.Web.FireWall.Reporting..::..ReportTypes
The detail to include in the report

Return Value

text format based report on the firewall

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

Remarks

This feature is available in all license levels

See Also

IFireWall Interface
Report Overload
Walter.Web.FireWall Namespace
Walter.Web.FireWall.Reporting..::..ReportTypes
IFireWall..::..GetReport(ReportTypes)


Report Method (ReportTypes, ReportFormat)

IFireWall..::..Report Method (ReportTypes, ReportFormat)

Simple runtime reporting interface allows for plain text or Json based reports, this type generates reports that can be used in health type reports scenarios.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Report(
    ReportTypes details,
    ReportFormat format
)

Parameters

details
Type: Walter.Web.FireWall.Reporting..::..ReportTypes
The detail to include in the report
format
Type: Walter.Web.FireWall.Reporting..::..ReportFormat
The format how to report

Return Value

text format based report on the firewall

Remarks

This feature is only available in paid licensed version of the firewall

See Also

IFireWall Interface
Report Overload
Walter.Web.FireWall Namespace
Walter.Web.FireWall.Reporting..::..ReportTypes
Walter.Web.FireWall.Reporting..::..ReportFormat
IFireWall..::..GetReport(ReportTypes)


ResetFireWallBlocking Method

IFireWall..::..ResetFireWallBlocking Method

Overload List

 | Name | Description
Public method | ResetFireWallBlocking()()()() | Reset the firewall release all blocked connections
Public method | ResetFireWallBlocking(array<GeoLocation>[]()[][]) | Reset the firewall release all blocked connections for a given region
Public method | ResetFireWallBlocking(IPAddress, IPAddress) | Reset the firewall release all blocked connections for a given IP address range
Public method | ResetFireWallBlocking(IFirewallUser) | Reset the firewall for a given user and allow access
Public method | ResetFireWallBlocking(UserTypes) | Reset the firewall for a given user types and allow access
Public method | ResetFireWallBlocking(DateTime, DateTime) | Reset the firewall for a given and allow access for any one blocked in date range.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method

IFireWall..::..ResetFireWallBlocking Method

Reset the firewall release all blocked connections

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlocking()

Examples

The bellow sample shows a configuration that triggers an event when the firewall get's created that's used to reset violations
reset all blocking when the web application starts by calling ResetFireWallBlocking with no parameters
services.AddFireWall("Token", "domain key"
        , domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
       {
           options.JoinCustomerImprovementProgramWithEmail = "EMail@Address.com";
           options.Cypher.ApplicationPassword = "123456Seven";
           options.ApplicationName = "www.test.dll";
           options.ApplicationTag = "WS3";
           options.Rules.AllowWhiteListing = false;
           options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
           options.UseSession = false;

           options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);
           options.Rules.AllowWhiteListing = true;
           options.OnEndpointsCreated+= Options_OnEndpointsCreated;
           options.OnFireWallCreated += Options_OnFireWallCreated;
           options.Rules.Headers.AddDefaultSecurePolicy()
                                .AddStrictTransportSecurityNoCache()
                                .AddXssProtectionBlockAndReport()
                                .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                          , allowInline: true
                                          , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

       })
        .UseGeography(new System.IO.DirectoryInfo(@"D:\MaxMind"))
        .UseDiskLogging(options => { options.Directory = @"d:\administration\FireWall"; })
        .UserDatabase(DatabaseConnections.FireWallState)
        .UseFireWallReportingDatabase(DatabaseConnections.FireWall)
        .UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
         {
             options.Archive = TimeSpan.FromDays(180);
             options.Server = "mail.asp-waf.com";
             options.UserName = "noreply@domain.com";
             options.Password = "Kuazuua$ki82#ksKKjsk";
             options.Port = 25;
             options.From = "noreply@domain.com";
             options.IgnoreServerCertificateErrors = true;
             options.DefaultEmail = "webmaster@domain.com";
             options.Archive = TimeSpan.FromDays(60);
             options.MailingList.AddRange(new[] {
              new EMailAddress("Security Admin","security@domain.com") {
                  Frequency= TimeSpan.FromHours(1),
                  Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
              new EMailAddress("Website Admin","admin@domain.com"){
                  Frequency= TimeSpan.FromHours(1),
                  Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
               });
         });

    //use test all requests
    services.AddMvc(options =>
        options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
    );
    //use mvc and set json options on the MVC views
    services.AddControllersWithViews()
            .AddNewtonsoftJson(options=> {
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
                options.SerializerSettings.Formatting = Formatting.Indented;
            });

}

private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
{
    foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
    {
        item.AllowAddhockAccess = true;
    }

    foreach (var item in e.Links.EndpointsInPath("*.css", "*.png","*.jpg"))
    {
        item.FirewallDisabled = true;
    }
}

private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
{
    //get the configuration
    var json=  JsonConvert.SerializeObject(firewall.Configuration);

    //get filename
    var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");

    //tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
    firewall.WriteFile(new FileInfo(fileName), json);

    //Reset all rules and tell all cookies to ignore that the users where blocked
    firewall.ResetFireWallBlocking();
}

See Also

IFireWall Interface
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (GeoLocation[])

IFireWall..::..ResetFireWallBlocking Method (array<GeoLocation>[]()[][])

Reset the firewall release all blocked connections for a given region

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlocking(
    params GeoLocation[] locations
)

Parameters

locations
Type: array<GeoLocation>[]()[][]
the geographical locations or regions to release

Remarks

You can use this method to reset the firewall's blocked users from within your own application

Examples

The bellow sample shows a configuration that triggers an event when the firewall get's created that's used to reset violations
reset all blocking when the web application starts by calling ResetFireWallBlocking with geographical parameters
services.AddFireWall("Token", "domain key"
        , domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
       {
           options.JoinCustomerImprovementProgramWithEmail = "EMail@Address.com";
           options.Cypher.ApplicationPassword = "123456Seven";
           options.ApplicationName = "www.test.dll";
           options.ApplicationTag = "WS3";
           options.Rules.AllowWhiteListing = false;
           options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
           options.UseSession = false;

           options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);
           options.Rules.AllowWhiteListing = true;
           options.OnEndpointsCreated+= Options_OnEndpointsCreated;
           options.OnFireWallCreated += Options_OnFireWallCreated;
           options.Rules.Headers.AddDefaultSecurePolicy()
                                .AddStrictTransportSecurityNoCache()
                                .AddXssProtectionBlockAndReport()
                                .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                          , allowInline: true
                                          , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

       })
        .UseGeography(new System.IO.DirectoryInfo(@"D:\MaxMind"))
        .UseDiskLogging(options => { options.Directory = @"d:\administration\FireWall"; })
        .UserDatabase(DatabaseConnections.FireWallState)
        .UseFireWallReportingDatabase(DatabaseConnections.FireWall)
        .UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
         {
             options.Archive = TimeSpan.FromDays(180);
             options.Server = "mail.asp-waf.com";
             options.UserName = "noreply@domain.com";
             options.Password = "Kuazuua$ki82#ksKKjsk";
             options.Port = 25;
             options.From = "noreply@domain.com";
             options.IgnoreServerCertificateErrors = true;
             options.DefaultEmail = "webmaster@domain.com";
             options.Archive = TimeSpan.FromDays(60);
             options.MailingList.AddRange(new[] {
              new EMailAddress("Security Admin","security@domain.com") {
                  Frequency= TimeSpan.FromHours(1),
                  Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
              new EMailAddress("Website Admin","admin@domain.com"){
                  Frequency= TimeSpan.FromHours(1),
                  Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
               });
         });

    //use test all requests
    services.AddMvc(options =>
        options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
    );
    //use mvc and set json options on the MVC views
    services.AddControllersWithViews()
            .AddNewtonsoftJson(options=> {
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
                options.SerializerSettings.Formatting = Formatting.Indented;
            });

}

private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
{
    foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
    {
        item.AllowAddhockAccess = true;
    }

    foreach (var item in e.Links.EndpointsInPath("*.css", "*.png","*.jpg"))
    {
        item.FirewallDisabled = true;
    }
}

private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
{
    //get the configuration
    var json=  JsonConvert.SerializeObject(firewall.Configuration);

    //get filename
    var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");

    //tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
    firewall.WriteFile(new FileInfo(fileName), json);

    //Reset all rules in the region licensed to provide content and tell all browser cookies to ignore that the users where blocked
    firewall.ResetFireWallBlocking(GeoLocation.EUROPE);
}

See Also

IFireWall Interface
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (IPAddress, IPAddress)

IFireWall..::..ResetFireWallBlocking Method (IPAddress, IPAddress)

Reset the firewall release all blocked connections for a given IP address range

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlocking(
    IPAddress from,
    IPAddress till
)

Parameters

from
Type: IPAddress
lower bound
till
Type: IPAddress
upper bound

Remarks

Some times you like to reset a ISP that got blocked when you have a blocking duration that you find to aggressive

Examples

The bellow sample shows a configuration that triggers an event when the firewall get's created that's used to reset violations
reset all blocking when the web application starts by calling ResetFireWallBlocking with IP address parameters
services.AddFireWall("Token", "domain key"
        , domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
       {
           options.JoinCustomerImprovementProgramWithEmail = "EMail@Address.com";
           options.Cypher.ApplicationPassword = "123456Seven";
           options.ApplicationName = "www.test.dll";
           options.ApplicationTag = "WS3";
           options.Rules.AllowWhiteListing = false;
           options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
           options.UseSession = false;

           options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);
           options.Rules.AllowWhiteListing = true;
           options.OnEndpointsCreated+= Options_OnEndpointsCreated;
           options.OnFireWallCreated += Options_OnFireWallCreated;
           options.Rules.Headers.AddDefaultSecurePolicy()
                                .AddStrictTransportSecurityNoCache()
                                .AddXssProtectionBlockAndReport()
                                .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                          , allowInline: true
                                          , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

       })
        .UseGeography(new System.IO.DirectoryInfo(@"D:\MaxMind"))
        .UseDiskLogging(options => { options.Directory = @"d:\administration\FireWall"; })
        .UserDatabase(DatabaseConnections.FireWallState)
        .UseFireWallReportingDatabase(DatabaseConnections.FireWall)
        .UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
         {
             options.Archive = TimeSpan.FromDays(180);
             options.Server = "mail.asp-waf.com";
             options.UserName = "noreply@domain.com";
             options.Password = "Kuazuua$ki82#ksKKjsk";
             options.Port = 25;
             options.From = "noreply@domain.com";
             options.IgnoreServerCertificateErrors = true;
             options.DefaultEmail = "webmaster@domain.com";
             options.Archive = TimeSpan.FromDays(60);
             options.MailingList.AddRange(new[] {
              new EMailAddress("Security Admin","security@domain.com") {
                  Frequency= TimeSpan.FromHours(1),
                  Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
              new EMailAddress("Website Admin","admin@domain.com"){
                  Frequency= TimeSpan.FromHours(1),
                  Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
               });
         });

    //use test all requests
    services.AddMvc(options =>
        options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
    );
    //use mvc and set json options on the MVC views
    services.AddControllersWithViews()
            .AddNewtonsoftJson(options=> {
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
                options.SerializerSettings.Formatting = Formatting.Indented;
            });

}

private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
{
    foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
    {
        item.AllowAddhockAccess = true;
    }

    foreach (var item in e.Links.EndpointsInPath("*.css", "*.png","*.jpg"))
    {
        item.FirewallDisabled = true;
    }
}

private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
{
    //get the configuration
    var json=  JsonConvert.SerializeObject(firewall.Configuration);

    //get filename
    var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");

    //tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
    firewall.WriteFile(new FileInfo(fileName), json);

    //Reset any blocking rules that might have blocked Google
    firewall.ResetFireWallBlocking(new IPAddress("8.8.8.0"),new IPAddress("8.8.8.8"));
}

See Also

IFireWall Interface
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (IFirewallUser)

IFireWall..::..ResetFireWallBlocking Method (IFirewallUser)

Reset the firewall for a given user and allow access

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlocking(
    IFirewallUser user
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user to grant access again

Remarks

This method is ideal for allowing blocked users to unblock their account via a link in an email

See Also

IFireWall Interface
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (UserTypes)

IFireWall..::..ResetFireWallBlocking Method (UserTypes)

Reset the firewall for a given user types and allow access

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlocking(
    UserTypes userType
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
The types to allow

Remarks

Some times you like to reset a type of user that got blocked when you have concluded that blocking rules or duration that you find to aggressive

See Also

IFireWall Interface
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlocking Method (DateTime, DateTime)

IFireWall..::..ResetFireWallBlocking Method (DateTime, DateTime)

Reset the firewall for a given and allow access for any one blocked in date range.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlocking(
    DateTime fromUtc,
    DateTime tillUtc
)

Parameters

fromUtc
Type: DateTime
lower bound
tillUtc
Type: DateTime
upper bound

Remarks

Some times you like to reset a type of user that got blocked when you have concluded that blocking rules or duration that you find to aggressive

See Also

IFireWall Interface
ResetFireWallBlocking Overload
Walter.Web.FireWall Namespace


ResetFireWallBlockingIP Method

IFireWall..::..ResetFireWallBlockingIP Method

Reset the firewall release all blocked connections for a given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ResetFireWallBlockingIP(
    IPAddress address
)

Parameters

address
Type: IPAddress
lower bound

Remarks

Some times you like to reset all users coming from a given IP address. this could be a - All users connected via a VPN - Corporate proxy - multiple users in an Internet café - A single person or a house-hold using the same WifI This might make sense that they got blocked however you may find to aggressive and reset it

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


SetItem Method

IFireWall..::..SetItem Method

Sets the specified geography factory that is to be used by the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void SetItem(
    IGeoFactory geoFactory
)

Parameters

geoFactory
Type: Walter.Web.FireWall.Geo..::..IGeoFactory
The GEO factory.

Remarks

The last one will win

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


TryGetAgentReputation Method

IFireWall..::..TryGetAgentReputation Method

Try and get a user-agent reputation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetAgentReputation(
    string userAgent,
    out Nullable<IUAUserAgent> agent
)

Parameters

userAgent
Type: String
the user agent to find
agent
Type: Nullable <(Of <(<' IUAUserAgent >)>)>%
The agent found

Return Value

True if agent repository is used

Remarks

The navigation of IPageRequest.User.UserAgent.MetaData contains access to a the user agent in the request. Use this method when reporting on a given user agent

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
IUserAgent..::..MetaData
IPageRequest..::..User
IUserIdentity..::..UserAgent


TryGetIncidentStats Method

IFireWall..::..TryGetIncidentStats Method

of the visited page returns any known incident statistics.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetIncidentStats(
    IPageRequest page,
    out Nullable<IUserIncidentStats> stats
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page.
stats
Type: Nullable <(Of <(<' IUserIncidentStats >)>)>%
Generates user incident statistics for the endpoint, UserIncidentStats contains the user statistics as well as all recorded incident statistics, if any.

Return Value

true if XXXX, false otherwise.

Remarks

This data is in context of the current URL, violations on other URL's are ignored.

Multiple registrations of the same request will result in a single entry and one can safely call the method several times without corrupting the underlying data structures

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


TryGetUser Method

IFireWall..::..TryGetUser Method

Tries to get the firewall user using an IP address and his assigned firewall ID.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetUser(
    long userId,
    long cidr,
    out Nullable<IFirewallUser> user
)

Parameters

userId
Type: Int64
The users UserId
cidr
Type: Int64
The firewall users IP number.
user
Type: Nullable <(Of <(<' IFirewallUser >)>)>%
The user populated if found

Return Value

true if XXXX, false otherwise.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


TryGetUsers Method

IFireWall..::..TryGetUsers Method

Overload List

 | Name | Description
Public method | TryGetUsers(Int64, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IFirewallUser>)>>)>)>>)%) | Tries the get the last known firewall user using an IP address.
Public method | TryGetUsers(IPAddress, Nullable<(Of <<'(IReadOnlyList<(Of <<'(IFirewallUser>)>>)>)>>)%) | Tries the get the last known firewall user using an IP address.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


TryGetUsers Method (Int64, Nullable(IReadOnlyList(IFirewallUser)))

IFireWall..::..TryGetUsers Method (Int64, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IFirewallUser>)>)>>)>)>%)

Tries the get the last known firewall user using an IP address.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetUsers(
    long cidr,
    out Nullable<IReadOnlyList<IFirewallUser>> users
)

Parameters

cidr
Type: Int64
The firewall users IP number.
users
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IFirewallUser >)>)>>)>)>%
The user that are currently using this IP address and is populated if any are found

Return Value

true if XXXX, false otherwise.

See Also

IFireWall Interface
TryGetUsers Overload
Walter.Web.FireWall Namespace


TryGetUsers Method (IPAddress, Nullable(IReadOnlyList(IFirewallUser)))

IFireWall..::..TryGetUsers Method (IPAddress, Nullable<(Of <(<'IReadOnlyList<(Of <(<'IFirewallUser>)>)>>)>)>%)

Tries the get the last known firewall user using an IP address.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetUsers(
    IPAddress ip,
    out Nullable<IReadOnlyList<IFirewallUser>> users
)

Parameters

ip
Type: IPAddress
The firewall users IP.
users
Type: Nullable <(Of <(<'IReadOnlyList<(Of <(<' IFirewallUser >)>)>>)>)>%
The user that are currently using this IP address and is populated if any are found

Return Value

true if XXXX, false otherwise.

See Also

IFireWall Interface
TryGetUsers Overload
Walter.Web.FireWall Namespace


TryGetValidateUserJavaScript Method

IFireWall..::..TryGetValidateUserJavaScript Method

Tries to get User validation script from the compiled resources.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetValidateUserJavaScript(
    IPageRequest page,
    out Nullable<byte>[] scriptBytes
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page.
scriptBytes
Type: array< Nullable <(Of <(<' Byte >)>)>>[]()[][]%
The script bytes.

Return Value

true if the script was retrieved, false otherwise.

Exceptions

Exception | Condition
[ResourceNotFoundException] | If the script resource can't be found
[ArgumentNullException] | I no page is provided

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


UpdateInterceptLocation Method

IFireWall..::..UpdateInterceptLocation Method

Overload List

 | Name | Description
Public method | UpdateInterceptLocation(Guid, InterceptLocations, String) | Updates the intercept location.
Public method | UpdateInterceptLocation(BlockedUserRequest, InterceptLocations, String) | Updates the intercept location.

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


UpdateInterceptLocation Method (Guid, InterceptLocations, String)

IFireWall..::..UpdateInterceptLocation Method (Guid, InterceptLocations, String)

Updates the intercept location.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateInterceptLocation(
    Guid incident,
    InterceptLocations interceptLocations,
    string locationName
)

Parameters

incident
Type: Guid
The incident.
interceptLocations
Type: Walter.BOM..::..InterceptLocations
The intercept locations.
locationName
Type: String
Name of the location.

See Also

IFireWall Interface
UpdateInterceptLocation Overload
Walter.Web.FireWall Namespace


UpdateInterceptLocation Method (BlockedUserRequest, InterceptLocations, String)

IFireWall..::..UpdateInterceptLocation Method (BlockedUserRequest, InterceptLocations, String)

Updates the intercept location.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateInterceptLocation(
    BlockedUserRequest incident,
    InterceptLocations interceptLocations,
    string locationName
)

Parameters

incident
Type: BlockedUserRequest
The incident.
interceptLocations
Type: Walter.BOM..::..InterceptLocations
The intercept locations.
locationName
Type: String
Name of the location.

See Also

IFireWall Interface
UpdateInterceptLocation Overload
Walter.Web.FireWall Namespace


UpdatePageRequest Method

IFireWall..::..UpdatePageRequest Method

Updates the page request and mark the incident.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdatePageRequest(
    IIncident incident
)

Parameters

incident
Type: Walter.Web.FireWall.Models..::..IIncident
The incident.

Exceptions

Exception | Condition
[ArgumentNullException] | incident

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


UpdateWhois Method

IFireWall..::..UpdateWhois Method

Update the WHOIS record on the PhishyVisit data object

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateWhois(
    PhishyVisitStats phishy,
    Nullable<IWhois> whois
)

Parameters

phishy
Type: Walter.Web.FireWall.Models..::..PhishyVisitStats
the entry to update
whois
Type: Nullable <(Of <(<'IWhois>)>)>
optionally the WHOIS entry to use, if blanc a new query will be executed

Exceptions

Exception | Condition
[ArgumentNullException] | phishy

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Whois Method

IFireWall..::..Whois Method

Overload List

 | Name | Description
Public method | Whois(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | Whois(IPAddress) | Queries the firewall for WHOIS information in regards to the owner of a given IP address
Public method | Whois(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


Whois Method (IPageRequest)

IFireWall..::..Whois Method (IPageRequest)

Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IWhois Whois(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to query.

Return Value

IWhois containing the ISP's data.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IFireWall Interface
Whois Overload
Walter.Web.FireWall Namespace


Whois Method (IPAddress)

IFireWall..::..Whois Method (IPAddress)

Queries the firewall for WHOIS information in regards to the owner of a given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IWhois Whois(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address to query.

Return Value

IWhois containing the ISP's data.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IFireWall Interface
Whois Overload
Walter.Web.FireWall Namespace


Whois Method (DnsEntry)

IFireWall..::..Whois Method (DnsEntry)

Queries the firewall for WHOIS information in regards to the owner of a given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IWhois Whois(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: DnsEntry
The address to query.

Return Value

IWhois containing the ISP's data.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IFireWall Interface
Whois Overload
Walter.Web.FireWall Namespace


WhoisAsync Method

IFireWall..::..WhoisAsync Method

Overload List

 | Name | Description
Public method | WhoisAsync(IPageRequest) | Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page
Public method | WhoisAsync(DnsEntry) | Queries the firewall for WHOIS information in regards to the owner of a given IP address

See Also

IFireWall Interface
IFireWall Members
Walter.Web.FireWall Namespace


WhoisAsync Method (IPageRequest)

IFireWall..::..WhoisAsync Method (IPageRequest)

Queries the firewall for WHOIS information in regards to the owner of the IP address of a a given Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<IWhois> WhoisAsync(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to query.

Return Value

Task<IWhois> containing the ISP's data.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IFireWall Interface
WhoisAsync Overload
Walter.Web.FireWall Namespace


WhoisAsync Method (DnsEntry)

IFireWall..::..WhoisAsync Method (DnsEntry)

Queries the firewall for WHOIS information in regards to the owner of a given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<IWhois> WhoisAsync(
    DnsEntry dnsEntry
)

Parameters

dnsEntry
Type: DnsEntry
The address to query.

Return Value

IWhois containing the ISP's data.

Remarks

WhoIs information normally contains the name of the ISP, The address of the ISP, as well as technical and administrative and abuse contacts.

See Also

IFireWall Interface
WhoisAsync Overload
Walter.Web.FireWall Namespace


IFireWall Properties

The IFireWall type exposes the following members.

Properties

 | Name | Description
Public property | BaseUrl | Gets the base URL of the firewall, this value may be null if no communication has taken place or the firewall is not licensed.
Public property | ConcurrentUsers | The number of HttpRequests currently active in the application that are being monitored and or processed by the firewall
Public property | Configuration | provides access to the FireWall configuration.
 | Default | Default firewall instance
Public property | DnsManager | Gets the DNS manager and access the methods as well as retrieve WhoIs data (if licensed).
Public property | Exceptions | Gets the exceptions that have been recorded during the operation of the firewall.
Public property | FileChanges | List of controlled file changes
Public property | FirewallModuleVersion | Gets the firewall module version.
Public property | Geography | Gets the geography provider (plug-in) if one is used.
Public property | Incidents | Provides access to the incidents database.
Public property | IrregularNetworkCommunications | Get recorded communications not released by Configuration.Rules.MonitorCommunicationsNotInPorts
Public property | KnownLinks | Gets the known links to this firewall.
Public property | KPI | KPI Entries as collected by the IInstrumented interface
Public property | LastKnownAgent | Last know user agent used by a user where known the agent to be a plausible agent
Public property | License | Access the License manager in the firewall
Public property | MalicoisFileChanges | List of uncontrolled file changes, most likely not intended
Public property | NuGetPackages | NuGet Packages used by the firewall
Public property | PageKPI | list of KPI's for a page of the last 10 requests processed.
Public property | Requests | Query the firewall database for all requests for reporting purposes
Public property | RuleEngine | Access the runtime rule engine
Public property | SessionId | Firewall unique session identifier
Public property | SessionRequests | The requests received during the last 20 minutes
Public property | State | Gets the state of the firewall.
Public property | ToDo | Access the item's that have been found to be configured incorrectly during the operation of the firewall
Public property | WebServices | Access the URL's that are integrated in the firewall used for external API access
Public property | WhoisTalking | Provides access to the communications snapshot of the server and web application with resources outside of the local machine and Local area network.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


BaseUrl Property

IFireWall..::..BaseUrl Property

Gets the base URL of the firewall, this value may be null if no communication has taken place or the firewall is not licensed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> BaseUrl { get; }

Field Value

The base URL.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


ConcurrentUsers Property

IFireWall..::..ConcurrentUsers Property

The number of HttpRequests currently active in the application that are being monitored and or processed by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long ConcurrentUsers { get; }

Remarks

These are the requests that are processed or are actively used in memory to manage requests and request application security

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Configuration Property

IFireWall..::..Configuration Property

provides access to the FireWall configuration.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallConfig Configuration { get; }

Field Value

The current configuration.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Default Property

IFireWall..::..Default Property

Default firewall instance

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IFireWall> Default { get; set; }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


DnsManager Property

IFireWall..::..DnsManager Property

Gets the DNS manager and access the methods as well as retrieve WhoIs data (if licensed).

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IDnsManager DnsManager { get; }

Field Value

The DNS manager.

Remarks

The DNS manager if called via the IFireWall is licensed. Adding the Walter.Net.Networking NuGet Package directly to your project requires a separate license.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Exceptions Property

IFireWall..::..Exceptions Property

Gets the exceptions that have been recorded during the operation of the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<IExceptionItem> Exceptions { get; }

Field Value

The exception.

Remarks

This list should be empty. If the list is not empty then these are the errors that will have been sent to us for fixing if you have joined the customer improvement program.

Exceptions are also stored on disk on the location specified as AppDataFolder in your configuration (default is ~\App_Data\. You can always send these to us manually for fixing.

See JoinCustomerImprovementProgramWithEmail configuration property for details on this program.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
IFireWallConfig..::..JoinCustomerImprovementProgramWithEmail
IFireWallConfig..::..AppDataFolder


FileChanges Property

IFireWall..::..FileChanges Property

List of controlled file changes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IDiskChanges> FileChanges { get; }

Remarks

A controlled file change is a change have been detected and are known to have been initiated by the firewall trough on of the methods defined in the IFireWallDiskGuard

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


FirewallModuleVersion Property

IFireWall..::..FirewallModuleVersion Property

Gets the firewall module version.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
double FirewallModuleVersion { get; }

Field Value

The firewall module version.

Remarks

The module version indicates the rule engine version and rule capabilities that come with the firewall.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Geography Property

IFireWall..::..Geography Property

Gets the geography provider (plug-in) if one is used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IGeoFactory> Geography { get; }

Field Value

The geography.

Remarks

There are several NuGet packages available for this, you can also create and register your own

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Incidents Property

IFireWall..::..Incidents Property

Provides access to the incidents database.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IIncidentDatabase Incidents { get; }

Field Value

The incidents that are monitored by the firewall.

Remarks

You can control how many days of data are retained in the configuration class. The value is set by changing the value of Configuration.Cashing.BufferFirewallData

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
CashingConfig..::..BufferFirewallData


IrregularNetworkCommunications Property

IFireWall..::..IrregularNetworkCommunications Property

Get recorded communications not released by Configuration.Rules.MonitorCommunicationsNotInPorts

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<TcpProcessRecord> IrregularNetworkCommunications { get; }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


KnownLinks Property

IFireWall..::..KnownLinks Property

Gets the known links to this firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IKnownLinks KnownLinks { get; }

Field Value

The known links controllers and API's.

Remarks

Known links are those that the firewall is configured to react on and can be filtered to by the Firewall annotations

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


KPI Property

IFireWall..::..KPI Property

KPI Entries as collected by the IInstrumented interface

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IDictionary<string, KpiEntry> KPI { get; }

Field Value

The Firewall entries "Rule Nam"=[KPI stats].

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


LastKnownAgent Property

IFireWall..::..LastKnownAgent Property

Last know user agent used by a user where known the agent to be a plausible agent

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> LastKnownAgent { get; }

Field Value

The last known agent.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


License Property

IFireWall..::..License Property

Access the License manager in the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ILicenseManager License { get; }

Field Value

The license.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


MalicoisFileChanges Property

IFireWall..::..MalicoisFileChanges Property

List of uncontrolled file changes, most likely not intended

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<FireWallDiskViolation> MalicoisFileChanges { get; }

Remarks

A controlled file change is a change have been detected and are known to have been initiated by the firewall trough on of the methods defined in the IFireWallDiskGuard You can monitor detected changes by subscribing to the OnDiskManipulation event or by using one of the reporting plugins. Please note that Rules may affect how the firewall reacts to manipulations by configuring TerminateApplicationOnDiskManipulation and RedirectAllRequestsOnDiskManipulation

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
RulesConfig..::..TerminateApplicationOnDiskManipulation
RulesConfig..::..RedirectAllRequestsOnDiskManipulation


NuGetPackages Property

IFireWall..::..NuGetPackages Property

NuGet Packages used by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<AssemblyVersionInfo> NuGetPackages { get; }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


PageKPI Property

IFireWall..::..PageKPI Property

list of KPI's for a page of the last 10 requests processed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<KpiPageEntry> PageKPI { get; }

Field Value

set of page KPI's.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


Requests Property

IFireWall..::..Requests Property

Query the firewall database for all requests for reporting purposes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IRequestsDatabase Requests { get; }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


RuleEngine Property

IFireWall..::..RuleEngine Property

Access the runtime rule engine

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IRuntimeRulesEngine RuleEngine { get; }

Field Value

The rule engine.

Remarks

Rules are dynamic and customizable, this property allows you to interact with the rules at runtime

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


SessionId Property

IFireWall..::..SessionId Property

Firewall unique session identifier

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
decimal SessionId { get; }

Remarks

session ID is used for audit and trace grouping of page requests. SessionIs and SessionPageGroupNumber available in the base class of IPageRequest

if you use load balancer you need to add the server name for a unique key service as you will have several firewalls protecting the same application

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


SessionRequests Property

IFireWall..::..SessionRequests Property

The requests received during the last 20 minutes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IVisitStats> SessionRequests { get; }

Field Value

The requests.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


State Property

IFireWall..::..State Property

Gets the state of the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallState State { get; }

Field Value

State of the firewall

Remarks

The state could will be set by the license state or the lacking of it.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


ToDo Property

IFireWall..::..ToDo Property

Access the item's that have been found to be configured incorrectly during the operation of the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<IToDoItem> ToDo { get; }

Field Value

Set of IToDoItems.

Remarks

The list of ToDo items is reset each time the firewall is started.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


WebServices Property

IFireWall..::..WebServices Property

Access the URL's that are integrated in the firewall used for external API access

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUriResolverDictionary WebServices { get; }

Field Value

The web services.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


WhoisTalking Property

IFireWall..::..WhoisTalking Property

Provides access to the communications snapshot of the server and web application with resources outside of the local machine and Local area network.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Talking WhoisTalking { get; }

Return Value

Talking view model

Remarks

The view model allows returned by this method shows the communications that have been discovered at regular intervals during the time the application was active.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


IFireWall Events

The IFireWall type exposes the following members.

Events

 | Name | Description
Public event | OnCaughtExceptiont | Event triggered when the Firewall caught an exception during the execution of a IPageRequest
Public event | OnDiskManipulation | This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party
Public event | OnGuardAction | Event triggered when an guard action is invoked by the firewall (only with licensed instances)
Public event | OnIncident | Event triggered when an guard creates a incident (only with licensed instances)
Public event | OnPhishyRequest | The event allows you to respond on what the firewall considers a request that's served but does not contain a protected definition and is therefore a request that should not have happened.
Public event | OnResourceRequested | Event triggered whenever a resource is requested by the web application using a HTTP or HTTPS request (only with licensed instances)
Public event | OnResourceSend | Occurs after a resource was send to the requester and the connection has closed
Public event | OnUserTypeChange | Event triggered whenever a user type is about to be assigned (only with licensed instances)

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


OnCaughtExceptiont Event

IFireWall..::..OnCaughtExceptiont Event

Event triggered when the Firewall caught an exception during the execution of a IPageRequest

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<ExceptionCaughtEventArgs>> OnCaughtExceptiont

Remarks

A popular way to hack a site is to crash it to bring it down or to see what happens. This event allows you to except the exception and manage how to deal with it as well as access the page request and generate a blocking incident RenderThenBlock(UserBlockingRule, String, TimeSpan, Nullable<(Of <<'(Uri>)>>)) or Block(UserBlockingRule, String, TimeSpan, Nullable<(Of <<'(Uri>)>>)) on details how to do this.

A positive side effect is that you are able to intercept exceptions and deal with them as they happen without spoiling the users experience

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


OnDiskManipulation Event

IFireWall..::..OnDiskManipulation Event

This event will be triggered when the firewall detects a manipulation of files in your application root and sub directories by a 3rd party

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<FireWallDiskManipulationEventArgs>> OnDiskManipulation

Remarks

If you do not want the firewall to trigger a alert use interface to make disk changes without triggering over a detection

Examples

The following code shows how to use the firewall to send an mail (if mail add-on installed) when a change on disk is detected by a application that is actually communicating via the network. This could be RemoteDesktop WinVCM or TeamViewer, Telnet, FTP etc.
C#
 private void MyFireWall_OnDiskManipulation(object sender, DiskManipulationEventArgs e)
 {
     foreach (var item in e.Violation.Talking)
     {
         if (item.tcpRecord.Scope == Walter.Net.Networking.CommunicationScope.WAN)
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with external communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);
         }
         else
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with internal communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);

         }
     }
     e.Action = ApplicationCompromisedActions.ShutDown | ApplicationCompromisedActions.PersistOnReboot;
 }

 private string MakeEmailBody(Walter.Net.Networking.CommunicationScope scope,string executingBinary, IPAddress remoteAddress)
 {
     if (scope == Walter.Net.Networking.CommunicationScopes.WAN)
     {
         var map = _geo.QueryMapLocation(remoteAddress);
         var whois = Whois(remoteAddress);
         return @"
         <p>
             We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}
         </p><p>
             While capturing the issue we recorded the IP coming from {City} - {Country} <a hfref="{Link}">google maps link</a></p><p>The IP address is managed by :<br />
             {WhoIs}
         </p>
          ".Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
             .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
             .Replace("{City}", map.City, StringComparison.OrdinalIgnoreCase)
             .Replace("{Country}", map.Country, StringComparison.OrdinalIgnoreCase)
             .Replace("{Link}", map.GoogleMapLocation().AbsoluteUri, StringComparison.OrdinalIgnoreCase)
             .Replace("{WhoIs}", whois.ToHtml(), StringComparison.OrdinalIgnoreCase);
     }

     return  @"<p> We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}-{scope}</p>"
                .Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                .Replace("{Scope}",scope.ToString(),StringComparison.OrdinalIgnoreCase);
  }
}

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..IFireWallDiskGuard


OnGuardAction Event

IFireWall..::..OnGuardAction Event

Event triggered when an guard action is invoked by the firewall (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<GuardActionEventArgs>> OnGuardAction

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
   {
       private readonly ILogger<MyFireWall> _logger;
       private bool _isReccommendOnly = true;

       public MyFireWall(
           //enable accessing AppConfig
           IConfiguration configuration

           //allow DI to provide interfaces to base class
           , ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
           , IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
           , IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
           , ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
           , IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
           , IResetRepository? resetRepository = null)
           : base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
                 , loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
       {
           var section = configuration.GetSection("FireWall");
           if (section.Exists())
           {
               _isReccommendOnly = section.GetValue<bool>("RecommendOnly");
           }
           base.Trigger_OnFireWallCreated(this);
           OnIncident += MyFireWall_OnIncident;
           OnGuardAction += MyFireWall_OnGuardAction;
           OnUserTypeChange += MyFireWall_OnUserTypeChange;
           OnResourceRequested += MyFireWall_OnResourceRequested;
           _logger = loggerFactory.CreateLogger<MyFireWall>();
       }

       private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
       {
           throw new System.NotImplementedException();
       }

       private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
       {
           _logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
               , e.OriginalType
               , e.NewType
               , e.Rout
               , string.Join("\n   ", e.Rules)
               );

           //allow the change
           e.AllowRaiseIncident = true;

           if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
           {
               //remove the malicious flag from search engines to not prevent search engines from //indexing the site
               e.NewType &= ~UserTypes.IsMalicious;
           }
       }

       private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
       {
           _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
               , e.Page.Method
               , e.Page.OriginalUrl.AbsolutePath
               , e.Page.FireWallRoute
               , e.Action
               , string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
               );

           //allow the firewall to block requests
           e.AllowRaiseIncident = _isReccommendOnly;
       }

       private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
       {
           _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
               , e.Page.Method
               , e.Page.OriginalUrl.AbsolutePath
               , e.Page.FireWallRoute
               , e.StackEntry.Rule
               , e.StackEntry.RuleNr
               , e.StackEntry.Reason
               , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
               );
           //allow the firewall to raise incidents
           e.AllowRaiseIncident = _isReccommendOnly;
       }
   }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
Walter.Web.FireWall.EventArguments..::..GuardActionEventArgs


OnIncident Event

IFireWall..::..OnIncident Event

Event triggered when an guard creates a incident (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<FireWallIncidentEventArgs>> OnIncident

Remarks

You can control if the firewall creates the incident by setting AllowRaiseIncident to true stating you "allow" it to happen and no incident is to be creates

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
   {
       private readonly ILogger<MyFireWall> _logger;
       private bool _isReccommendOnly = true;

       public MyFireWall(
           //enable accessing AppConfig
           IConfiguration configuration

           //allow DI to provide interfaces to base class
           , ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
           , IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
           , IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
           , ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
           , IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
           , IResetRepository? resetRepository = null)
           : base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
                 , loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
       {
           var section = configuration.GetSection("FireWall");
           if (section.Exists())
           {
               _isReccommendOnly = section.GetValue<bool>("RecommendOnly");
           }
           base.Trigger_OnFireWallCreated(this);
           OnIncident += MyFireWall_OnIncident;
           OnGuardAction += MyFireWall_OnGuardAction;
           OnUserTypeChange += MyFireWall_OnUserTypeChange;
           OnResourceRequested += MyFireWall_OnResourceRequested;
           _logger = loggerFactory.CreateLogger<MyFireWall>();
       }

       private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
       {
           throw new System.NotImplementedException();
       }

       private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
       {
           _logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
               , e.OriginalType
               , e.NewType
               , e.Rout
               , string.Join("\n   ", e.Rules)
               );

           //allow the change
           e.AllowRaiseIncident = true;

           if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
           {
               //remove the malicious flag from search engines to not prevent search engines from //indexing the site
               e.NewType &= ~UserTypes.IsMalicious;
           }
       }

       private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
       {
           _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}\n   {data}"
               , e.Page.Method
               , e.Page.OriginalUrl.AbsolutePath
               , e.Page.FireWallRoute
               , e.Action
               , string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
               );

           //allow the firewall to block requests
           e.AllowRaiseIncident = _isReccommendOnly;
       }

       private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
       {
           _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
               , e.Page.Method
               , e.Page.OriginalUrl.AbsolutePath
               , e.Page.FireWallRoute
               , e.StackEntry.Rule
               , e.StackEntry.RuleNr
               , e.StackEntry.Reason
               , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
               );
           //allow the firewall to raise incidents
           e.AllowRaiseIncident = _isReccommendOnly;
       }
   }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
FireWallIncidentEventArgs..::..AllowRaiseIncident
FireWallIncidentEventArgs..::..StackEntry


OnPhishyRequest Event

IFireWall..::..OnPhishyRequest Event

The event allows you to respond on what the firewall considers a request that's served but does not contain a protected definition and is therefore a request that should not have happened.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event EventHandler<PhishyRequestEventArgs> OnPhishyRequest

Remarks

You can decide to no-longer report on the request by setting IgnoreForNow to true for the duration of the firewall session.

You can also call Block(UserBlockingRule, String, TimeSpan, Nullable<(Of <<'(Uri>)>>)) on the request indicating to the firewall to stop processing future requests in your code. If providing a URL the request will be redirected to the URL when ever a new request is made by the user for the duration set in the block definition.

Examples

Assuming the firewall using the SMTP NuGet package we use the NuGet package extension method to send a email to the configured developers mailbox for those that are responsible for security
C#
private void MyFireWall_OnPhishyRequest(object sender, PhishyRequestEventArgs e)
{
    e.IgnoreForNow = true;
    (sender as IFireWall)?.SendEmail(EMailRoles.SecurityRelevant, $"URL {e.Request.OriginalUrl.PathAndQuery} phishy", $"Consider protection for {e.Request.OriginalUrl.PathAndQuery} on {e.Request}", false);
}

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


OnResourceRequested Event

IFireWall..::..OnResourceRequested Event

Event triggered whenever a resource is requested by the web application using a HTTP or HTTPS request (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<PageCreatedEventArgs>> OnResourceRequested

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the event can be used to access the IPageRequest to populate a dictionary that counts access by country.
C#
public class MyFireWall:FireWallBase
{
    readonly IDictionary<GeoLocation?, int> _access = new ConcurrentDictionary<GeoLocation?, int>();
    public MyFireWall(ILoggerFactory factory, IMemoryCache cache, ILatLongRepository geo)
        : base(loggerFactory: factory, memoryCache: cache, latLongRepository:geo)
    {
        base.Trigger_OnFireWallCreated(this);
        OnResourceRequested += FireWall_OnResourceRequested;
    }

    private void FireWall_OnResourceRequested(object sender, PageCreatedEventArgs e)
    {
        if (_access.TryGetValue(e.Request.Country, out var counter))
        {
            _access[e.Request.Country] = counter + 1;
        }
        else
        {
           _access[e.Request.Country] = 1;
        }
    }
}

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
Walter.Web.FireWall.EventArguments..::..PageCreatedEventArgs


OnResourceSend Event

IFireWall..::..OnResourceSend Event

Occurs after a resource was send to the requester and the connection has closed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<PageSendEventArgs>> OnResourceSend

Remarks

This is a non blocking request that occurs after the page was send to the HTTPResponse pipeline. This event is triggered after logging and reporting activity has concluded.

Examples

The included example shows 1 use case where a page is send to the developers if that page has had exceptions during it's life.

You can always add a exception to a IPageRequest by dependency injection in your code

Send all requests that had an issue to the developers so that they can fix the issue
public class MyFireWall:FireWallBase
   {
       //avoid sending more than 1 email per url during the life of the web application
       private readonly HashSet<Uri> _reported = new HashSet<Uri>();
       ILogger<MyFireWall> _logger;
       public MyFireWall(ILoggerFactory factory, IMemoryCache cache, ILatLongRepository geo)
           : base(loggerFactory: factory, memoryCache: cache, latLongRepository:geo)

       {
           base.Trigger_OnFireWallCreated(this);

           _logger = factory.CreateLogger<MyFireWall>();
           OnResourceSend += MyFireWall_OnResourceSend;
       }

       private void MyFireWall_OnResourceSend(object sender, PageSendEventArgs e)
       {
            // if exception occurred and the url was not reported in this session
            if (e.Request.Exception is not null && _reported.Add(e.Request.OriginalUrl))
           {
               var sb = new StringBuilder();
               sb.AppendLine($"Page {e.Request.OriginalUrl} from {e.Request.Country} caused {e.Request.Exceptions.Count} exception(s)");
               foreach (var item in e.Request.Exceptions)
               {

                   sb.AppendLine($"    {item.GetType().Name} exception Message: {item.Message}");
                   sb.AppendLine($"    {item.ClassName()}.{item.MethodName()} in {item.FileName()}:{item.CodeLineNumber()}");
                   sb.AppendLine(item.StackTrace);
                   sb.AppendLine();
               }
               //helper class to send emails to developers, use your email implementation here
               MailClient.SendDeveloperError(body: sb.ToString(),e.Request.ToString());
           }
       }

       protected override void Dispose(bool disposing)
       {
           if (_reported.Count > 0)
           {
               _logger?.Lazy().LogWarning("The following {count} errors where recorded on these urls \n\t {urls}",_reported.Count, string.Join("\n\t", _reported.Select(s => s.PathAndQuery)));
           }
           base.Dispose(disposing);
       }
   }

   internal class MailClient
   {
       internal static void SendDeveloperError(string body, string subject)
       {
           try
           {
               using MailMessage mail = new MailMessage();
               using SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

               mail.From = new MailAddress("your_email_address@gmail.com");
               mail.To.Add("to_address");
               mail.Subject = subject;
               mail.Body = body;

               SmtpServer.Port = 587;
               SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
               SmtpServer.EnableSsl = true;

               SmtpServer.Send(mail);
           }
           catch { }
       }
   }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace


OnUserTypeChange Event

IFireWall..::..OnUserTypeChange Event

Event triggered whenever a user type is about to be assigned (only with licensed instances)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<UserTypeChangedEventArgs>> OnUserTypeChange

Remarks

This event in triggers when a firewall has been licensed

Examples

The bellow sample shows how the recommendation created by the firewall as allowed to block or not block a request based on a AppConfig.json configuration
C#
public class MyFireWall : FireWallBase
   {
       private readonly ILogger<MyFireWall> _logger;
       private bool _isReccommendOnly = true;
       readonly IDictionary<GeoLocation?, int> _access = new ConcurrentDictionary<GeoLocation?, int>();
       public MyFireWall(
           //enable accessing AppConfig
           IConfiguration configuration

           //allow DI to provide interfaces to base class
           , ILoggerFactory? loggerFactory = null, IMemoryCache? memoryCache = null
           , IIncidentDatabase? incidentDatabase = null, IWhoisRepository? whoisRepository = null, ISubscriptionsRepository? subscriptions = null
           , IEmailReportDesination? emailReportDesination = null, IDatabaseReportDestination? databaseReportDestination = null
           , ILoggerReportDesination? loggerReportDestination = null, IFireWallDiskLoggerDestination? diskLoggerDestination = null
           , IEventLogReporting? eventLogReporting = null, IGeoFactory? geoFactory = null, ILatLongRepository? latLongRepository = null
           , IResetRepository? resetRepository = null)
           : base(loggerFactory, memoryCache, incidentDatabase, whoisRepository, subscriptions, emailReportDesination, databaseReportDestination
                 , loggerReportDestination, diskLoggerDestination, eventLogReporting, geoFactory, latLongRepository, resetRepository)
       {
           var section = configuration.GetSection("FireWall");
           if (section.Exists())
           {
               _isReccommendOnly = section.GetValue<bool>("RecommendOnly");
           }
           base.Trigger_OnFireWallCreated(this);
           OnIncident += MyFireWall_OnIncident;
           OnGuardAction += MyFireWall_OnGuardAction;
           OnUserTypeChange += MyFireWall_OnUserTypeChange;
           OnResourceRequested += MyFireWall_OnResourceRequested;
           _logger = loggerFactory.CreateLogger<MyFireWall>();
       }

       private void MyFireWall_OnResourceRequested(object? sender, Walter.Web.FireWall.EventArguments.PageCreatedEventArgs e)
       {
           if (_access.TryGetValue(e.Request.Country, out var counter))
           {
               _access[e.Request.Country] = counter + 1;
           }
           else
           {
              _access[e.Request.Country] = 1;
           }
       }

       private void MyFireWall_OnUserTypeChange(object? sender, Walter.Web.FireWall.EventArguments.UserTypeChangedEventArgs e)
       {
           _logger?.Lazy().LogDebug("{oldType} : {newType}\n   {route}\n   Rules:\n   {data}"
               , e.OriginalType
               , e.NewType
               , e.Rout
               , string.Join("\n   ", e.Rules)
               );

           //allow the change
           e.AllowRaiseIncident = true;

           if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
           {
               //remove the malicious flag from search engines to not prevent search engines from //indexing the site
               e.NewType &= ~UserTypes.IsMalicious;
           }
       }

       private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
       {
           _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {action}\n   {data}"
               , e.Page.Method
               , e.Page.OriginalUrl.AbsolutePath
               , e.Page.FireWallRoute
               , e.Action
               , string.Join("\n   ", e.Page.PageViolationStack.Select(s => s.ToString()))
               );

           //allow the firewall to block requests
           e.AllowRaiseIncident = _isReccommendOnly;
       }

       private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
       {
           _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
               , e.Page.Method
               , e.Page.OriginalUrl.AbsolutePath
               , e.Page.FireWallRoute
               , e.StackEntry.Rule
               , e.StackEntry.RuleNr
               , e.StackEntry.Reason
               , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
               );
           //allow the firewall to raise incidents
           e.AllowRaiseIncident = _isReccommendOnly;
       }
   }

See Also

IFireWall Interface
Walter.Web.FireWall Namespace
Walter.Web.FireWall.EventArguments..::..UserTypeChangedEventArgs


IFireWallConfig Interface

Interface IFireWallConfig provides access to the configuration options for the firewall's runtime options.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallConfig

Remarks

You can access the firewall configuration via the Configuration property of IFireWall interface. You can inject IFireWall using your DI system

See Also

IFireWallConfig Members
Walter.Web.FireWall Namespace


IFireWallConfig Members

The IFireWallConfig type exposes the following members.

Methods

 | Name | Description
 | CreateForUnitTest | Creates a default Firewall configuration that can be used when unit testing
Public method | ToJson | Create a json version that can be used as a reference for Configuration injection

Properties

 | Name | Description
Public property | Administration | Gets access to the firewall remote administration dashboard.
Public property | AppDataFolder | Gets or sets the application data folder used by the firewall to read and write data to.
Public property | ApplicationName | The application name is used when reporting and allows you to identify the source of the report.
Public property | ApplicationTag | Gets or sets the ITIL application tag as uncatalogued with IT Operations.
Public property | Cashing | Configure the firewall's cashing settings for the application.
Public property | ContactDetails | The primary contact details for this firewall instance
Public property | Cookies | Configure the firewall's cookies settings for the application.
Public property | Cypher | Configure the firewall's cipher settings for the application.
Public property | DomainLicenseKey | Gets the domain license key provided by the registration process and set when calling services.AddFireWall .
Public property | DomainName | The domain name used when configuring the firewall, the URL is used when mapping and protecting the site and reflect the actual domain that the web application responds to
Public property | DownloadSubscriptionsIfOlderThanDays | Gets or sets the frequency for download subscription data from the firewall subscription server.
Public property | FireWallMode | Defines the FireWall protection mode that is going to be used. Please note that if using a firewall partner you should add FireWallModes.Distributed on both instances to synchronize firewall state
Public property | FireWallPartners | Gets or sets the fail-over partner for the firewall the url is FQDN or IP address (DomainName.MachineName:port/ or IPAddress:port). The fail-over partner would normally be another web-server hosting the same website, this could be a active-active or a fail-over cluster
Public property | Geography | Configure the firewall's geography settings that you would like to use.
Public property | JoinCustomerImprovementProgramWithEmail | When joining the improvement program you help us to capture framework exceptions. Data does not contain private data
Public property | LicenseKey | The license token of your organization.
Public property | ManualDatabaseUpdates | do not automatically update the database,if true generate migration scripts for manual execution only
Public property | ProtectedEndPointTypes | The list of endpoint types that the firewall is going to protect.
Public property | PublicIpAddress | Gets or sets the public IP address for the web application, if you leave it null the value will be discovered.
Public property | Reporting | Configure the firewall's reporting settings.
Public property | ResetFirewallViolationsOnEachStart | Indicating that you intend to reset firewall violations on each start, leave this false on production systems.
Public property | Rules | Configure the firewall's default rules settings.
Public property | TrackUsers | If set to true it will store user navigation structures for generating reporting UI data
Public property | UseCookieNames | Gets the cookie names used by the application's firewall.
Public property | UseHeaderNames | Gets the header names used by the firewall.
Public property | UserAgent | The user agent configuration
Public property | UseSession | Informs the firewall that you have .net session configured and allow the firewall to use session state for storage for violation and data buffering.
Public property | WebServices | Configure the firewall's web services settings.

Events

 | Name | Description
Public event | OnEndpointsCreated | Update the firewall's endpoint definitions at runtime before the first resource is served.
Public event | OnFireWallCreated | Update the firewall's Configuration when the firewall is created at runtime
Public event | OnRulesCreated | Event triggered when the rules have been applied before the rules are used to generate endpoint protection defaults

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


IFireWallConfig Methods

The IFireWallConfig type exposes the following members.

Methods

 | Name | Description
 | CreateForUnitTest | Creates a default Firewall configuration that can be used when unit testing
Public method | ToJson | Create a json version that can be used as a reference for Configuration injection

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


CreateForUnitTest Method

IFireWallConfig..::..CreateForUnitTest Method

Creates a default Firewall configuration that can be used when unit testing

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallConfig CreateForUnitTest()

Return Value

IFireWallConfig instance

Remarks

The firewall will accept any url when the host is LocalHost. the port is ignored

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ToJson Method

IFireWallConfig..::..ToJson Method

Create a json version that can be used as a reference for Configuration injection

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ToJson()

Return Value

the json of the current configuration ignoring the defaults

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


IFireWallConfig Properties

The IFireWallConfig type exposes the following members.

Properties

 | Name | Description
Public property | Administration | Gets access to the firewall remote administration dashboard.
Public property | AppDataFolder | Gets or sets the application data folder used by the firewall to read and write data to.
Public property | ApplicationName | The application name is used when reporting and allows you to identify the source of the report.
Public property | ApplicationTag | Gets or sets the ITIL application tag as uncatalogued with IT Operations.
Public property | Cashing | Configure the firewall's cashing settings for the application.
Public property | ContactDetails | The primary contact details for this firewall instance
Public property | Cookies | Configure the firewall's cookies settings for the application.
Public property | Cypher | Configure the firewall's cipher settings for the application.
Public property | DomainLicenseKey | Gets the domain license key provided by the registration process and set when calling services.AddFireWall .
Public property | DomainName | The domain name used when configuring the firewall, the URL is used when mapping and protecting the site and reflect the actual domain that the web application responds to
Public property | DownloadSubscriptionsIfOlderThanDays | Gets or sets the frequency for download subscription data from the firewall subscription server.
Public property | FireWallMode | Defines the FireWall protection mode that is going to be used. Please note that if using a firewall partner you should add FireWallModes.Distributed on both instances to synchronize firewall state
Public property | FireWallPartners | Gets or sets the fail-over partner for the firewall the url is FQDN or IP address (DomainName.MachineName:port/ or IPAddress:port). The fail-over partner would normally be another web-server hosting the same website, this could be a active-active or a fail-over cluster
Public property | Geography | Configure the firewall's geography settings that you would like to use.
Public property | JoinCustomerImprovementProgramWithEmail | When joining the improvement program you help us to capture framework exceptions. Data does not contain private data
Public property | LicenseKey | The license token of your organization.
Public property | ManualDatabaseUpdates | do not automatically update the database,if true generate migration scripts for manual execution only
Public property | ProtectedEndPointTypes | The list of endpoint types that the firewall is going to protect.
Public property | PublicIpAddress | Gets or sets the public IP address for the web application, if you leave it null the value will be discovered.
Public property | Reporting | Configure the firewall's reporting settings.
Public property | ResetFirewallViolationsOnEachStart | Indicating that you intend to reset firewall violations on each start, leave this false on production systems.
Public property | Rules | Configure the firewall's default rules settings.
Public property | TrackUsers | If set to true it will store user navigation structures for generating reporting UI data
Public property | UseCookieNames | Gets the cookie names used by the application's firewall.
Public property | UseHeaderNames | Gets the header names used by the firewall.
Public property | UserAgent | The user agent configuration
Public property | UseSession | Informs the firewall that you have .net session configured and allow the firewall to use session state for storage for violation and data buffering.
Public property | WebServices | Configure the firewall's web services settings.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Administration Property

IFireWallConfig..::..Administration Property

Gets access to the firewall remote administration dashboard.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
AdministrationConfig Administration { get; }

Field Value

The administration.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


AppDataFolder Property

IFireWallConfig..::..AppDataFolder Property

Gets or sets the application data folder used by the firewall to read and write data to.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string AppDataFolder { get; set; }

Field Value

The application data folder.

Remarks

Normally this would be App_Data for isolated applications, if you are sharing this folder with several applications than use a full path

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ApplicationName Property

IFireWallConfig..::..ApplicationName Property

The application name is used when reporting and allows you to identify the source of the report.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ApplicationName { get; set; }

Field Value

The name of the application.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ApplicationTag Property

IFireWallConfig..::..ApplicationTag Property

Gets or sets the ITIL application tag as uncatalogued with IT Operations.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ApplicationTag { get; set; }

Field Value

The application tag (max 255 characters).

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Cashing Property

IFireWallConfig..::..Cashing Property

Configure the firewall's cashing settings for the application.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
CashingConfig Cashing { get; }

Field Value

Cashing class.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ContactDetails Property

IFireWallConfig..::..ContactDetails Property

The primary contact details for this firewall instance

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IInternalWhoisContactDetails ContactDetails { get; }

Remarks

These details are send to ISP's when reporting malicious activity is enabled with authorities.

Details are also available in health report that can be generated by the firewall. This is especially useful if the organization hosts several firewall enabled web applications and operations need to contact individuals in case of incidents.

If a Email address is provided the firewall will send failed login request details to firewall administration via the reporting endpoint

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Cookies Property

IFireWallConfig..::..Cookies Property

Configure the firewall's cookies settings for the application.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
CookieConfig Cookies { get; }

Field Value

The cookies.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Cypher Property

IFireWallConfig..::..Cypher Property

Configure the firewall's cipher settings for the application.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
CypherConfig Cypher { get; }

Field Value

The cypher configuration.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


DomainLicenseKey Property

IFireWallConfig..::..DomainLicenseKey Property

Gets the domain license key provided by the registration process and set when calling services.AddFireWall .

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string DomainLicenseKey { get; }

Field Value

The domain license key is read only.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


DomainName Property

IFireWallConfig..::..DomainName Property

The domain name used when configuring the firewall, the URL is used when mapping and protecting the site and reflect the actual domain that the web application responds to

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri DomainName { get; }

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


DownloadSubscriptionsIfOlderThanDays Property

IFireWallConfig..::..DownloadSubscriptionsIfOlderThanDays Property

Gets or sets the frequency for download subscription data from the firewall subscription server.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
double DownloadSubscriptionsIfOlderThanDays { get; set; }

Field Value

download frequency in days.

Remarks

Feature availability is dependent on license

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


FireWallMode Property

IFireWallConfig..::..FireWallMode Property

Defines the FireWall protection mode that is going to be used. Please note that if using a firewall partner you should add FireWallModes.Distributed on both instances to synchronize firewall state

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallProtectionModes FireWallMode { get; set; }

Field Value

The fire wall mode.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


FireWallPartners Property

IFireWallConfig..::..FireWallPartners Property

Gets or sets the fail-over partner for the firewall the url is FQDN or IP address (DomainName.MachineName:port/ or IPAddress:port). The fail-over partner would normally be another web-server hosting the same website, this could be a active-active or a fail-over cluster

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<string> FireWallPartners { get; set; }

Field Value

The fail-over/ replication partners to use.

Remarks

Needs advanced licensing and communication is best on the local intra-net

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Geography Property

IFireWallConfig..::..Geography Property

Configure the firewall's geography settings that you would like to use.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoBlockingPolicy Geography { get; }

Field Value

The geography.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


JoinCustomerImprovementProgramWithEmail Property

IFireWallConfig..::..JoinCustomerImprovementProgramWithEmail Property

When joining the improvement program you help us to capture framework exceptions. Data does not contain private data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> JoinCustomerImprovementProgramWithEmail { get; set; }

Remarks

The data send does not contain personal data and consist only internal exceptions and does not global exception that you may throw in your own code or that by 3rd party providers.

If you have configured to use email reporting then ticket updates will be send to the email address automatically. If no critical issues have been detected and the features you used never generated a expetion you will never get an update in your email report

Examples

shows the configuration that will inform the default user, as well as the user that has the flag EMailRoles.ProductUpdates when updates are available on issues reported by you.
C#
services.AddFireWall("your token", "your domain-key"
   , domainName: new Uri("https://www.YourDomain.dll", UriKind.Absolute), options =>
   {
      //Will create GDPR compliant tickets when the firewall framework has errors and//will email update notifications when fixes exist.
      options.JoinCustomerImprovementProgramWithEmail = "WebMaster@YourDomain.dll";
      options.Cypher.ApplicationPassword = "123456Seven";
      options.ApplicationName = "YourDomain sales";
      options.ApplicationTag = "WS3";

      options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
      options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

      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);

   }).UseGeography(new System.IO.DirectoryInfo("D:\\MaxMind"))
   .UseSMTPReportingDatabase("DatabaseConnection", options =>
    {
        options.Archive = TimeSpan.FromDays(180);
        options.Server = "mail.cosonto.com";
        options.UserName = "noreply@cosonto.com";
        options.Password = "cosonto$ki82#ksKKjsk";
        options.Port = 25;
        options.From = "noreply@YourDomain.dll";
        options.IgnoreServerCertificateErrors = true;
        options.DefaultEmail = "admin@YourDomain.dll";
        options.Archive = TimeSpan.FromDays(60);
        options.MailingList.AddRange(new[] {
         new EMailAddress("Security Admin","security@YourDomain.dll") {
             Frequency= TimeSpan.FromHours(1),
             Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
         new EMailAddress("Website Admin","WebMaster@YourDomain.dll"){
             Frequency= TimeSpan.FromHours(1),
             Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
          });
    });

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


LicenseKey Property

IFireWallConfig..::..LicenseKey Property

The license token of your organization.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string LicenseKey { get; }

Field Value

The license key assigned to your organization.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ManualDatabaseUpdates Property

IFireWallConfig..::..ManualDatabaseUpdates Property

do not automatically update the database,if true generate migration scripts for manual execution only

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool ManualDatabaseUpdates { get; set; }

Field Value

if true databases will not be automatically be updated using DDL statements, look at /app_data/setup/SQL/TSQL Migration file {FriendlyName} {state.AssemblyName}.sql statements to manually execute them.

Remarks

Placing a file named ManualDatabaseUpdates.txt on /app_data/setup/SQL/ManualDatabaseUpdates.txt will also cause the firewall to not update the database schema

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ProtectedEndPointTypes Property

IFireWallConfig..::..ProtectedEndPointTypes Property

The list of endpoint types that the firewall is going to protect.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IList<Type> ProtectedEndPointTypes { get; }

Remarks

Default protection is for [ControllerBase],[Controller] and [RazorPage] however you can add any classes of your own that contain endpoints

Normally you would add the classes if these classes are derived of any of the above classes

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


PublicIpAddress Property

IFireWallConfig..::..PublicIpAddress Property

Gets or sets the public IP address for the web application, if you leave it null the value will be discovered.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IPAddress> PublicIpAddress { get; set; }

Field Value

The public IP address.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Reporting Property

IFireWallConfig..::..Reporting Property

Configure the firewall's reporting settings.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ReportingConfig Reporting { get; }

Field Value

The reporting.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


ResetFirewallViolationsOnEachStart Property

IFireWallConfig..::..ResetFirewallViolationsOnEachStart Property

Indicating that you intend to reset firewall violations on each start, leave this false on production systems.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool ResetFirewallViolationsOnEachStart { get; set; }

Field Value

true if true it will reset firewall violations on each start; otherwise, false and it will remember previous violations.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


Rules Property

IFireWallConfig..::..Rules Property

Configure the firewall's default rules settings.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
RulesConfig Rules { get; }

Field Value

The rules that are applied to all endpoints.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


TrackUsers Property

IFireWallConfig..::..TrackUsers Property

If set to true it will store user navigation structures for generating reporting UI data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TrackUsers { get; set; }

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


UseCookieNames Property

IFireWallConfig..::..UseCookieNames Property

Gets the cookie names used by the application's firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Dictionary<CookieName, string> UseCookieNames { get; }

Field Value

The cookie names used.

Remarks

It's good practice to not use default names as it allows malicious users to infer possible attack vectors.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


UseHeaderNames Property

IFireWallConfig..::..UseHeaderNames Property

Gets the header names used by the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Dictionary<HeaderName, string> UseHeaderNames { get; }

Field Value

The use header names.

Remarks

It's good practice to not use default names as it allows malicious users to infer possible attack vectors.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


UserAgent Property

IFireWallConfig..::..UserAgent Property

The user agent configuration

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserAgentConfig UserAgent { get; }

Remarks

This configuration allows you to specify storage related settings for persisting user agent data transmitted by the browser, crawlers and bots

Examples

Set storage location during configuration
C#
services.AddFireWall( FireWallTrial.License
                    , FireWallTrial.DomainKey
                    , domainName: new Uri("https://www.your-domain.dll", UriKind.Absolute), options =>
                    {
                       //set your options
                       ...
                       //always store user agent reputation in a database
                       options.UserAgent.ConnectionString = Configuration.GetConnectionString("UserAgent");
                       options.UserAgent.SchemaName = Configuration.GetConnectionString("dbo");

                    });

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


UseSession Property

IFireWallConfig..::..UseSession Property

Informs the firewall that you have .net session configured and allow the firewall to use session state for storage for violation and data buffering.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool UseSession { get; set; }

Field Value

true if [use session]; otherwise, false.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


WebServices Property

IFireWallConfig..::..WebServices Property

Configure the firewall's web services settings.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
WebServicesConfig WebServices { get; }

Field Value

The web services configuration.

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


IFireWallConfig Events

The IFireWallConfig type exposes the following members.

Events

 | Name | Description
Public event | OnEndpointsCreated | Update the firewall's endpoint definitions at runtime before the first resource is served.
Public event | OnFireWallCreated | Update the firewall's Configuration when the firewall is created at runtime
Public event | OnRulesCreated | Event triggered when the rules have been applied before the rules are used to generate endpoint protection defaults

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


OnEndpointsCreated Event

IFireWallConfig..::..OnEndpointsCreated Event

Update the firewall's endpoint definitions at runtime before the first resource is served.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<EndpointsCreatedEventArgs>> OnEndpointsCreated

Remarks

This method is called as soon as the firewall's endpoints are loaded and before the firewall has finished loading state data.

Examples

The bellow sample shows how all items in the downloads folder, as well as all *.zip and *.pdf files can be accessed externally from links in external websites or links embedded in documents without invoking a AddHockFileAccess violation by the firewall.
You can use SQL like wild-cards to filter endpoints
options.OnEndpointsCreated+=(links)=>  {
   foreach (var item in links.EndpointsInPath("Download/*"
            ,"*.zip"
            , "*.pdf" ))
   {
       item.AllowAddhockAccess = true;
   }
};

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


OnFireWallCreated Event

IFireWallConfig..::..OnFireWallCreated Event

Update the firewall's Configuration when the firewall is created at runtime

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<FireWallCreatedEventArgs>> OnFireWallCreated

Remarks

This event is invoked when the firewall is completely loaded as well as all add-ons and firewall state.

Examples

The below example will get called if the firewall and all plugin's are configured correctly
depending on your license the firewall may prevent disk changes
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
          , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
          , options =>{
            options.OnFireWallCreated+=(sender,args)=> {
                //get the current configuration
                var json=  JsonConvert.SerializeObject(args.FireWall.Configuration);
                //get filename in the root of the application
                var fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName
                                           ,"last known good firewall configuration.json");
                  //tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
                   args.FireWall.WriteFile(new FileInfo(fileName), json);
                };
           });

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


OnRulesCreated Event

IFireWallConfig..::..OnRulesCreated Event

Event triggered when the rules have been applied before the rules are used to generate endpoint protection defaults

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<RulesCreatedEventArgs>> OnRulesCreated

Examples

The following code show how to update the pattern to allow access to the default .net default membership path "/Identity/Account/"
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
          , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
          , options =>{
            options.OnRulesCreated+=(sender, rules)=> {
                rules.BlockedPatterns.NoPublicAccessToAdministration.Remove("/Identity/Account/")
                };
           });

See Also

IFireWallConfig Interface
Walter.Web.FireWall Namespace


IFireWallDashboardUser Interface

user for the internal firewall authentication system

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallDashboardUser

See Also

IFireWallDashboardUser Members
Walter.Web.FireWall Namespace


IFireWallDashboardUser Members

The IFireWallDashboardUser type exposes the following members.

Properties

 | Name | Description
Public property | Access | access level of the user
Public property | DisableAccountTill | account is disabled till
Public property | DisplayName | display name for the user
Public property | Email | email address used when notifying of detected account penetration attempts
Public property | UserName | the login user name

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


IFireWallDashboardUser Properties

The IFireWallDashboardUser type exposes the following members.

Properties

 | Name | Description
Public property | Access | access level of the user
Public property | DisableAccountTill | account is disabled till
Public property | DisplayName | display name for the user
Public property | Email | email address used when notifying of detected account penetration attempts
Public property | UserName | the login user name

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


Access Property

IFireWallDashboardUser..::..Access Property

access level of the user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
AdminAccess Access { get; }

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


DisableAccountTill Property

IFireWallDashboardUser..::..DisableAccountTill Property

account is disabled till

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> DisableAccountTill { get; set; }

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


DisplayName Property

IFireWallDashboardUser..::..DisplayName Property

display name for the user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string DisplayName { get; set; }

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


Email Property

IFireWallDashboardUser..::..Email Property

email address used when notifying of detected account penetration attempts

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Email { get; set; }

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


UserName Property

IFireWallDashboardUser..::..UserName Property

the login user name

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string UserName { get; }

See Also

IFireWallDashboardUser Interface
Walter.Web.FireWall Namespace


IFireWallDiskGuard Interface

Disk related guard for activity of the IFireWall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallDiskGuard

Remarks

The firewall will monitor disk manipulations in real-time and will log, notify and depending on the activity prevent changes to files on the disk subsystem starting at the root of the binaries as well as all subdirectory

See Also

IFireWallDiskGuard Members
Walter.Web.FireWall Namespace


IFireWallDiskGuard Members

The IFireWallDiskGuard type exposes the following members.

Properties

 | Name | Description
Public property | ManipulationState | If set, it contains the detected manipulation state of your files of your application

See Also

IFireWallDiskGuard Interface
Walter.Web.FireWall Namespace


IFireWallDiskGuard Properties

The IFireWallDiskGuard type exposes the following members.

Properties

 | Name | Description
Public property | ManipulationState | If set, it contains the detected manipulation state of your files of your application

See Also

IFireWallDiskGuard Interface
Walter.Web.FireWall Namespace


ManipulationState Property

IFireWallDiskGuard..::..ManipulationState Property

If set, it contains the detected manipulation state of your files of your application

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ApplicationCompromisedActions ManipulationState { get; set; }

Remarks

Your log file if you have implemented logging will contain the file that caused the violations.

Ideally you would have one of the add-ons that are used for reporting in the firewall like NuGet packages Walter.Web.FireWall.SMTP logger and Walter.Web.FireWall.EventLog

Please note that you need to use Always-on the FireWall attribute for the firewall to be active and actually a endpoint

See Also

IFireWallDiskGuard Interface
Walter.Web.FireWall Namespace


IFireWallRuleTrigger Interface

Interface IFireWallRuleTrigger

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallRuleTrigger

See Also

IFireWallRuleTrigger Members
Walter.Web.FireWall Namespace


IFireWallRuleTrigger Members

The IFireWallRuleTrigger type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Context | Gets the context.
Public property | Expires | indicates when the incident expires and the user is no-longer held accountable for it
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets the user from a perspective of the firewall.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


IFireWallRuleTrigger Properties

The IFireWallRuleTrigger type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Context | Gets the context.
Public property | Expires | indicates when the incident expires and the user is no-longer held accountable for it
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets the user from a perspective of the firewall.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


Address Property

IFireWallRuleTrigger..::..Address Property

Gets the address.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress Address { get; }

Field Value

The address.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


Context Property

IFireWallRuleTrigger..::..Context Property

Gets the context.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallContexts Context { get; }

Field Value

The context.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


Expires Property

IFireWallRuleTrigger..::..Expires Property

indicates when the incident expires and the user is no-longer held accountable for it

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> Expires { get; }

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


PageRequestId Property

IFireWallRuleTrigger..::..PageRequestId Property

Gets the page group identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageRequestId { get; }

Field Value

The page group identifier.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


PageTraceId Property

IFireWallRuleTrigger..::..PageTraceId Property

The page request trace identifier

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string PageTraceId { get; }

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


Reason Property

IFireWallRuleTrigger..::..Reason Property

Gets the reason.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Reason { get; }

Field Value

The reason.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


SessionId Property

IFireWallRuleTrigger..::..SessionId Property

Gets the session identifier that the active when the incident was reported.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string SessionId { get; }

Field Value

The session identifier.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


TriggeredOnUrl Property

IFireWallRuleTrigger..::..TriggeredOnUrl Property

The URL that triggered the event

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri TriggeredOnUrl { get; }

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


User Property

IFireWallRuleTrigger..::..User Property

Gets the user from a perspective of the firewall.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallUser User { get; }

Field Value

The user.

See Also

IFireWallRuleTrigger Interface
Walter.Web.FireWall Namespace


IGeoProvider Interface

Geo-provider implementation interface allows you to register your own GEO provider with the firewall, Use IFireWall.Set() method to register your own

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IGeoProvider

See Also

IGeoProvider Members
Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..IFireWall


IGeoProvider Members

The IGeoProvider type exposes the following members.

Methods

 | Name | Description
Public method | GetCountry | Gets the country based on a IP address.

See Also

IGeoProvider Interface
Walter.Web.FireWall Namespace


IGeoProvider Methods

The IGeoProvider type exposes the following members.

Methods

 | Name | Description
Public method | GetCountry | Gets the country based on a IP address.

See Also

IGeoProvider Interface
Walter.Web.FireWall Namespace


GetCountry Method

IGeoProvider..::..GetCountry Method

Gets the country based on a IP address.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation GetCountry(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

See Also

IGeoProvider Interface
Walter.Web.FireWall Namespace


IInstrumented Interface

Interface IInstrumented allows those that consume the firewall a way to extract the activities as well as the duration of a given activity.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IInstrumented

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Members
Walter.Web.FireWall Namespace


IInstrumented Members

The IInstrumented type exposes the following members.

Methods

 | Name | Description
Public method | ActivityLog | Guard activities log including Performance statistics of the page request.

Properties

 | Name | Description
Public property | BreadCrumbs | The navigation history for the current session
Public property | Crumb | The current breadcrumb
Public property | EvaluatedModules | Modules that have evaluated on this request by this user
Public property | ExecutedModules | Gets the executed firewall modules by the request pipeline.
Public property | FailedOnModules | The modules that flagged an incident on this request by this user.
Public property | GuardAction | The recommended Guard action for the page.
Public property | ProcessingTime | Gets the total effective processing time of the instrumented class.
Public property | SessionPageGroupNumber | The value provides with a value representing {RootPage.SessionPageNumber}.{Counter} for each request that is responded to.
Public property | SessionPageNumber | Gets the page counter as per when the web application was last started .

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


IInstrumented Methods

The IInstrumented type exposes the following members.

Methods

 | Name | Description
Public method | ActivityLog | Guard activities log including Performance statistics of the page request.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


ActivityLog Method

IInstrumented..::..ActivityLog Method

Guard activities log including Performance statistics of the page request.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ValueTuple<long, long, string>> ActivityLog()

Return Value

IReadOnlyList<System.ValueTuple<System.Int64, System.Int64, System.String>>.

Remarks

This is a thread-safe snapshot of the pages activities showing effective activity log with time-stamp, duration and steps taken of the item

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


IInstrumented Properties

The IInstrumented type exposes the following members.

Properties

 | Name | Description
Public property | BreadCrumbs | The navigation history for the current session
Public property | Crumb | The current breadcrumb
Public property | EvaluatedModules | Modules that have evaluated on this request by this user
Public property | ExecutedModules | Gets the executed firewall modules by the request pipeline.
Public property | FailedOnModules | The modules that flagged an incident on this request by this user.
Public property | GuardAction | The recommended Guard action for the page.
Public property | ProcessingTime | Gets the total effective processing time of the instrumented class.
Public property | SessionPageGroupNumber | The value provides with a value representing {RootPage.SessionPageNumber}.{Counter} for each request that is responded to.
Public property | SessionPageNumber | Gets the page counter as per when the web application was last started .

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


BreadCrumbs Property

IInstrumented..::..BreadCrumbs Property

The navigation history for the current session

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
BreadCrumbCollection BreadCrumbs { get; }

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


Crumb Property

IInstrumented..::..Crumb Property

The current breadcrumb

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
BreadCrumb Crumb { get; }

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


EvaluatedModules Property

IInstrumented..::..EvaluatedModules Property

Modules that have evaluated on this request by this user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallGuardActions EvaluatedModules { get; }

Remarks

See GetGuardValuations() for a detailed report on the module and the state of the evaluation

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


ExecutedModules Property

IInstrumented..::..ExecutedModules Property

Gets the executed firewall modules by the request pipeline.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallModules ExecutedModules { get; }

Field Value

The executed modules.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


FailedOnModules Property

IInstrumented..::..FailedOnModules Property

The modules that flagged an incident on this request by this user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallGuardActions FailedOnModules { get; }

Remarks

See GetGuardValuations() for a detailed report on the module and the state of the evaluation

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


GuardAction Property

IInstrumented..::..GuardAction Property

The recommended Guard action for the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GuardAction GuardAction { get; set; }

Field Value

The recommended action.

Remarks

This value may have altered by the interaction in user code. To see the modules that failed and would have issued a GuradAction see FailedOnModules

If licensed, you are able to alter firewall recommendations and you can set the value, if you are not licensed it will ignore your value and log an issue. if no logger is used then it will throw a license exception

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


ProcessingTime Property

IInstrumented..::..ProcessingTime Property

Gets the total effective processing time of the instrumented class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan ProcessingTime { get; }

Field Value

The processing time.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


SessionPageGroupNumber Property

IInstrumented..::..SessionPageGroupNumber Property

The value provides with a value representing {RootPage.SessionPageNumber}.{Counter} for each request that is responded to.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
decimal SessionPageGroupNumber { get; }

Remarks

The way this counter works is that it contains the SessionPageNumber of the page owner and a fraction containing the sequence number of page served to the root page owning the request. This allows for an efficient way to locate the root as well as sort all dependent requests.

On a a Web page with user discovery enabled you would get:
1. [The Page].0
2. [The Page].IsUserJavaStript
3. [The Page].SiteMap
4. [The Page].UserDiscovery
N.[The Page].UserDiscovery multiple / optional
N.[The Page].Beacon Optional

Not having this pattern is picked up by the virus engine as replay or a user using developer tools as loading the same user script or resource multiple times without the root page is a indicator non-default browser activity (based on user agent key) has been detected.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


SessionPageNumber Property

IInstrumented..::..SessionPageNumber Property

Gets the page counter as per when the web application was last started .

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long SessionPageNumber { get; }

Field Value

The application session page number.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IInstrumented Interface
Walter.Web.FireWall Namespace


ILicenseManager Interface

access to the license manager

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ILicenseManager

See Also

ILicenseManager Members
Walter.Web.FireWall Namespace


ILicenseManager Members

The ILicenseManager type exposes the following members.

Methods

 | Name | Description
Public method | Decrypt | decrypt data using the license certificate
Public method | DeleteLicense | Deletes the license from disk, can be needed when having done an upgrade.
Public method | Encrypt | Encrypt data using the license certificate
Public method | GetGeoLocation | get the location (country) of the firewall
Public method | GetMapLocation | get the location (map) of the firewall
Public method | IsLicensedDomain | test and see if the domain is licensed
Public method | TryDecrypt | Attempts to decrypt a cyphered entry

Properties

 | Name | Description
 | Default | Default license manager
Public property | IsLicensed | Returns a value stating that the instance is licensed
Public property | LicenseKey | access to the license key object
Public property | LicenseReceived | if false the license has not been received and the license file is being requested

Events

 | Name | Description
Public event | OnFireWallLicenseChanged | Occurs when [on fire wall license changed].

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


ILicenseManager Methods

The ILicenseManager type exposes the following members.

Methods

 | Name | Description
Public method | Decrypt | decrypt data using the license certificate
Public method | DeleteLicense | Deletes the license from disk, can be needed when having done an upgrade.
Public method | Encrypt | Encrypt data using the license certificate
Public method | GetGeoLocation | get the location (country) of the firewall
Public method | GetMapLocation | get the location (map) of the firewall
Public method | IsLicensedDomain | test and see if the domain is licensed
Public method | TryDecrypt | Attempts to decrypt a cyphered entry

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


Decrypt Method

ILicenseManager..::..Decrypt Method

decrypt data using the license certificate

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Decrypt(
    string cypherText
)

Parameters

cypherText
Type: String
Ciphered text to decrypt

Return Value

deciphered text

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


DeleteLicense Method

ILicenseManager..::..DeleteLicense Method

Deletes the license from disk, can be needed when having done an upgrade.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void DeleteLicense()

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


Encrypt Method

ILicenseManager..::..Encrypt Method

Encrypt data using the license certificate

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Encrypt(
    string clearText,
    Nullable<string> recoveryKeyContext
)

Parameters

clearText
Type: String
Clear text to encrypt
recoveryKeyContext
Type: Nullable <(Of <(<' String >)>)>
recovery key context is the method name and will be used if your instance is not licensed

Return Value

ciphered text

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


GetGeoLocation Method

ILicenseManager..::..GetGeoLocation Method

get the location (country) of the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation GetGeoLocation()

Return Value

GeoLocation.

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


GetMapLocation Method

ILicenseManager..::..GetMapLocation Method

get the location (map) of the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IMapLocation GetMapLocation()

Return Value

IMapLocation.

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


IsLicensedDomain Method

ILicenseManager..::..IsLicensedDomain Method

test and see if the domain is licensed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsLicensedDomain(
    Uri url
)

Parameters

url
Type: Uri
the host part of the url

Return Value

True if licensed

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


TryDecrypt Method

ILicenseManager..::..TryDecrypt Method

Attempts to decrypt a cyphered entry

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryDecrypt(
    string cypherText,
    out Nullable<string> clearText
)

Parameters

cypherText
Type: String
The cyphered text
clearText
Type: Nullable <(Of <(<' String >)>)>%
the clear text returned

Return Value

true if successful

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


ILicenseManager Properties

The ILicenseManager type exposes the following members.

Properties

 | Name | Description
 | Default | Default license manager
Public property | IsLicensed | Returns a value stating that the instance is licensed
Public property | LicenseKey | access to the license key object
Public property | LicenseReceived | if false the license has not been received and the license file is being requested

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


Default Property

ILicenseManager..::..Default Property

Default license manager

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<ILicenseManager> Default { get; set; }

Field Value

The default.

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


IsLicensed Property

ILicenseManager..::..IsLicensed Property

Returns a value stating that the instance is licensed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsLicensed { get; }

Field Value

true if this instance is licensed; otherwise, false.

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


LicenseKey Property

ILicenseManager..::..LicenseKey Property

access to the license key object

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ILicenseKey<FireWallLicencedFeatures> LicenseKey { get; }

Field Value

The license key.

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


LicenseReceived Property

ILicenseManager..::..LicenseReceived Property

if false the license has not been received and the license file is being requested

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<bool> LicenseReceived { get; }

Field Value

null if [license received] contains no value, true if [license received]; otherwise, false.

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


ILicenseManager Events

The ILicenseManager type exposes the following members.

Events

 | Name | Description
Public event | OnFireWallLicenseChanged | Occurs when [on fire wall license changed].

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


OnFireWallLicenseChanged Event

ILicenseManager..::..OnFireWallLicenseChanged Event

Occurs when [on fire wall license changed].

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<LicenseLevelChangedEventArgs>> OnFireWallLicenseChanged

See Also

ILicenseManager Interface
Walter.Web.FireWall Namespace


IModelValidationContext Interface

Interface used for validating data models returned by the user to a public endpoint

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IModelValidationContext : IPageRequestGroupIdValidation,
    ISessionIdValidation

See Also

IModelValidationContext Members
Walter.Web.FireWall Namespace


IModelValidationContext Members

The IModelValidationContext type exposes the following members.

Methods

 | Name | Description
Public method | IsValid | Model validator for a given model in context to the user that might have been sending it. It can be that a model contains good data, but the model was generated by a re-play or generated during a penetration attempt

Properties

 | Name | Description
Public property | TraceIdentifier | the trace identifier
Public property | UserId | The user ID as set by the script

See Also

IModelValidationContext Interface
Walter.Web.FireWall Namespace


IModelValidationContext Methods

The IModelValidationContext type exposes the following members.

Methods

 | Name | Description
Public method | IsValid | Model validator for a given model in context to the user that might have been sending it. It can be that a model contains good data, but the model was generated by a re-play or generated during a penetration attempt

See Also

IModelValidationContext Interface
Walter.Web.FireWall Namespace


IsValid Method

IModelValidationContext..::..IsValid Method

Model validator for a given model in context to the user that might have been sending it. It can be that a model contains good data, but the model was generated by a re-play or generated during a penetration attempt

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsValid(
    out IReadOnlyList<ModelValidationErrors> modelErrors
)

Parameters

modelErrors
Type: IReadOnlyList<(Of <(<' ModelValidationErrors >)>)>%
The errors discovered if any

Return Value

TRue if valid, false if not

See Also

IModelValidationContext Interface
Walter.Web.FireWall Namespace


IModelValidationContext Properties

The IModelValidationContext type exposes the following members.

Properties

 | Name | Description
Public property | TraceIdentifier | the trace identifier
Public property | UserId | The user ID as set by the script

See Also

IModelValidationContext Interface
Walter.Web.FireWall Namespace


TraceIdentifier Property

IModelValidationContext..::..TraceIdentifier Property

the trace identifier

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> TraceIdentifier { get; }

See Also

IModelValidationContext Interface
Walter.Web.FireWall Namespace


UserId Property

IModelValidationContext..::..UserId Property

The user ID as set by the script

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long UserId { get; }

See Also

IModelValidationContext Interface
Walter.Web.FireWall Namespace


Interactions Structure

Interactions that the user had with a rendered page (only applicable when you use UserDiscovery)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public struct Interactions

Remarks

Interactions data structure contains data that reflects user interaction with a rendered razor page. ///

Examples

The User discovery is initiated via a JavaScript call in your razor page. the below sample shows how you could set this up.
inject JavaScript from the same constant used in the rout of the ValidateUser endpoint
<script src="@Url.Content(Links.UserEndpointJavaScript)"></script>
Register interactions of the user
[HttpGet]
   [Route(Links.UserEndpointJavaScript)]
   [AllowAnonymous, Ignore(Walter.Web.FireWall.Filters.FireWallGuardActions.EmbeddedResources)]
   [NoCache]
   public FileContentResult ValidateUser()
   {
       //use the ID to force reloading the script after the user has logged in or logged off//as the firewall will create a different script for logged in users.try
       {
           if (_fireWall.TryGetValidateUserJavaScript(page: _page, out var javaScript))
           {
               var file = File(fileContents: javaScript, contentType: "text/javascript");
               file.LastModified = DateTime.UtcNow;
               file.FileDownloadName = _page.OriginalUrl.AbsoluteUri;
               return file;
           }
           else
           {
               _logger?.Lazy().LogWarning("ValidateUser javascript generation failed for {Page}", _page.ToString());
               javaScript = System.Text.UTF8Encoding.UTF8.GetBytes($"console.log('could not generate userValidation')");
               return File(fileContents: javaScript, contentType: "text/javascript");
           }
       }
       catch (ArgumentException e)
       {
           _page.Exception = e;

           _fireWall.LogException<RunTimeErrors>(RunTimeErrors.ArgumentNullException, e, "Missing a configuration element or using wrong release for your deployment");
           var javaScript = System.Diagnostics.Debugger.IsAttached
               ? System.Text.UTF8Encoding.UTF8.GetBytes($"console.log('could not generate userValidation due to {e.Message}')")
               : System.Text.UTF8Encoding.UTF8.GetBytes($"//Validate log {DateTime.Now} for errors and update settings");
           return File(fileContents: javaScript, contentType: "text/javascript");
       }
       catch (Exception e)
       {
           _page.Exception = e;

           _fireWall.LogException<RunTimeErrors>(RunTimeErrors.ArgumentNullException, e, $"User type discovery will not work as good as it could please fix {e.Message}");
           var javaScript = System.Text.UTF8Encoding.UTF8.GetBytes($"console.log('could not generate userValidation due to {e.Message}')");
           return File(fileContents: javaScript, contentType: "text/javascript");
       }
       finally
       {
           _logger?.Lazy().LogDebug("ValidateUser called");
       }
   }

   [HttpPost, Route(Links.BeaconPoint), AllowAnonymous]
   [CrossSite, Ignore(skip: FireWallGuardActions.ALL & ~FireWallGuardActions.RejectCrossSiteRequests)]
   [ModelFilter(associations : RequestersAssociations.InCurrentPage
              , generateIncident : false
              , pageGroupPropertyName :Walter.Web.FireWall.Beacon.PageRequestGroupIdModelCode)]
   public StatusCodeResult Beacon(string model)
   {
       if (!ModelState.IsValid)
       {
           _logger?.Lazy().LogInformation("beacon: failed has {errors} errors", ModelState.ErrorCount);
           return this.Ok();//no need to make a fuss
       }

       if (!string.IsNullOrEmpty(model))
       {
           var beacon = JsonConvert.DeserializeObject<Beacon>(model);
           _fireWall.ModelIsValid(pageContext: _page, model: beacon, out var errors);
           if (errors.Sum(s => s.BlockingSeverityScore) < 100)
           {
               _fireWall.LogPageRequest(beacon, _page);
           }
           else
           {
               foreach (var error in errors)
               {
                   _logger?.Lazy().LogInformation("beacon: {warn}", error);
               }
           }
       }
       return this.Ok();
   }

   [HttpPost]
   [AllowAnonymous]
   [Route(Links.IsUserEndpoint)]
   [CrossSite, Ignore(skip: FireWallGuardActions.ALL & ~FireWallGuardActions.RejectCrossSiteRequests)]
   [ModelFilter(Associations = RequestersAssociations.InCurrentPage, GenerateIncident = false)]
   public StatusCodeResult UserDiscovery([FromBody] Discovery model)
   {
       if (model is null)
       {
           _logger?.Lazy().LogDebug("user discovery called but the model field or data types are not compatible, please wait, update the model to fix the users discovery javascript");
           return this.NoContent();
       }
       else
       {
           _fireWall.ModelIsValid(pageContext: _page, model: model, out var errors);
           if (errors.Sum(s => s.BlockingSeverityScore) < 100)
           {
               _fireWall.LogPageRequest(model, _page);
               return Ok();
           }
           else
           {
               _logger?.Lazy().LogInformation("An attempt was made to send a tampered model to {url}", _page.OriginalUrl.AbsoluteUri);
               if (errors.Sum(s => s.BlockingSeverityScore) > 100)
               {
                   var fwu = _page.User.AsFirewallUser();
                   using (var scope = _logger?.BeginScope<string>($"User {fwu.Id} from {fwu.IPAddress} tampered with the model send back to {Links.IsUserEndpoint} and triggered {errors.Count} warnings"))
                   {
                       for (var i = 0; i < errors.Count; i++)
                       {
                           _logger?.Lazy().LogInformation("incident:{count} reason:{reason} context:{context} weight:{weight}", i + 1, errors[i].Reason, errors[i].BlockingContext, errors[i].BlockingSeverityScore);
                       }
                   }
                   //tamper detected so return a 404
                   return this.NotFound();
               }
               //model data is not valid, could be tampered but could also just be not containing required values
               return this.BadRequest();
           }
       }
   }

   [HttpPost, Route(Links.SiteMapEndPoint)]
   [CrossSite(useDefaultRedirect: false), Ignore(skip: FireWallGuardActions.ALL & ~FireWallGuardActions.RejectCrossSiteRequests)]
   [ModelFilter(Associations = RequestersAssociations.InCurrentPage, GenerateIncident =false)]
   public StatusCodeResult SiteMap([FromBody] SiteMapDiscovery model)
   {
       _logger?.Lazy().LogDebug("Url SiteMapDiscovery called ");

       //return await base.SiteMap(model);if (model is null)return NoContent();else
       {
           //The firewall will use predictive navigation for user as well as use it in web-statistics to show choices made by the user
           _fireWall.LogSiteMap(_page, model);
           return Ok();
       }
   }

See Also

Interactions Members
Walter.Web.FireWall Namespace


Interactions Members

The Interactions type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Interactions) | Indicates whether the current object is equal to another object of the same type.
Public method | GetFlags | get interactivity flags
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | AnimationCanceledCount | Gets the animation canceled count.
Public property | AnimationStartedCount | Gets the animation started count.
Public property | ClickCount | Gets the click count.
Public property | Cookies | Cookies read
Public property | CopyCount | Gets the copy count.
Public property | CutCount | Gets the cut count.
Public property | JavaExecuted | count how often we had feedback from the page script
Public property | KeypressedCount | Gets the keys pressed count.
Public property | MediaPlayedCount | Gets the media played count.
Public property | MouseMovedCount | Gets the mouse moved count.
Public property | MouseWheelCount | Gets the mouse wheel count.
Public property | PageHiddenCount | Gets the page hidden count.
Public property | PageShowCount | Gets the page show count.
Public property | PastCount | Gets the past count.
Public property | SecondsViewed | Gets the seconds viewed.
Public property | TouchMoveCount | Gets the touch move count.
Public property | Updates | Gets the updates that have been recorded.
Public property | UsesKeyboard | Gets a value indicating whether [uses keyboard].
Public property | UsesMouse | Gets a value indicating whether [uses mouse].
Public property | UsesTabs | Gets a value indicating whether [uses tabs].
Public property | UsesTouch | Gets a value indicating whether [uses touch].

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Interactions Methods

The Interactions type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Interactions) | Indicates whether the current object is equal to another object of the same type.
Public method | GetFlags | get interactivity flags
Public method | GetHashCode | Returns a hash code for this instance.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Equals Method

Interactions..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Interactions) | Indicates whether the current object is equal to another object of the same type.

See Also

Interactions Structure
Interactions Members
Walter.Web.FireWall Namespace


Equals Method (Nullable(Object))

Interactions..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

Interactions Structure
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (Interactions)

Interactions..::..Equals Method (Interactions)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Interactions other
)

Parameters

other
Type: Walter.Web.FireWall..::..Interactions
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

Interactions Structure
Equals Overload
Walter.Web.FireWall Namespace


GetFlags Method

Interactions..::..GetFlags Method

get interactivity flags

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RecordedInteractions GetFlags()

Return Value

flags of activity discovered

See Also

Interactions Structure
Walter.Web.FireWall Namespace


GetHashCode Method

Interactions..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Interactions Operators

The Interactions type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Equality Operator

Interactions..::..Equality Operator

Implements the == operator.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator ==(
    Interactions left,
    Interactions right
)

Parameters

left
Type: Walter.Web.FireWall..::..Interactions
The left.
right
Type: Walter.Web.FireWall..::..Interactions
The right.

Return Value

The result of the operator.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Inequality Operator

Interactions..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator !=(
    Interactions left,
    Interactions right
)

Parameters

left
Type: Walter.Web.FireWall..::..Interactions
The left.
right
Type: Walter.Web.FireWall..::..Interactions
The right.

Return Value

The result of the operator.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Interactions Properties

The Interactions type exposes the following members.

Properties

 | Name | Description
Public property | AnimationCanceledCount | Gets the animation canceled count.
Public property | AnimationStartedCount | Gets the animation started count.
Public property | ClickCount | Gets the click count.
Public property | Cookies | Cookies read
Public property | CopyCount | Gets the copy count.
Public property | CutCount | Gets the cut count.
Public property | JavaExecuted | count how often we had feedback from the page script
Public property | KeypressedCount | Gets the keys pressed count.
Public property | MediaPlayedCount | Gets the media played count.
Public property | MouseMovedCount | Gets the mouse moved count.
Public property | MouseWheelCount | Gets the mouse wheel count.
Public property | PageHiddenCount | Gets the page hidden count.
Public property | PageShowCount | Gets the page show count.
Public property | PastCount | Gets the past count.
Public property | SecondsViewed | Gets the seconds viewed.
Public property | TouchMoveCount | Gets the touch move count.
Public property | Updates | Gets the updates that have been recorded.
Public property | UsesKeyboard | Gets a value indicating whether [uses keyboard].
Public property | UsesMouse | Gets a value indicating whether [uses mouse].
Public property | UsesTabs | Gets a value indicating whether [uses tabs].
Public property | UsesTouch | Gets a value indicating whether [uses touch].

See Also

Interactions Structure
Walter.Web.FireWall Namespace


AnimationCanceledCount Property

Interactions..::..AnimationCanceledCount Property

Gets the animation canceled count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int AnimationCanceledCount { get; }

Field Value

The animation canceled count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


AnimationStartedCount Property

Interactions..::..AnimationStartedCount Property

Gets the animation started count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int AnimationStartedCount { get; }

Field Value

The animation started count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


ClickCount Property

Interactions..::..ClickCount Property

Gets the click count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int ClickCount { get; }

Field Value

The click count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Cookies Property

Interactions..::..Cookies Property

Cookies read

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Cookies { get; set; }

See Also

Interactions Structure
Walter.Web.FireWall Namespace


CopyCount Property

Interactions..::..CopyCount Property

Gets the copy count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int CopyCount { get; }

Field Value

The copy count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


CutCount Property

Interactions..::..CutCount Property

Gets the cut count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int CutCount { get; }

Field Value

The cut count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


JavaExecuted Property

Interactions..::..JavaExecuted Property

count how often we had feedback from the page script

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int JavaExecuted { get; set; }

See Also

Interactions Structure
Walter.Web.FireWall Namespace


KeypressedCount Property

Interactions..::..KeypressedCount Property

Gets the keys pressed count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int KeypressedCount { get; }

Field Value

The key pressed count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


MediaPlayedCount Property

Interactions..::..MediaPlayedCount Property

Gets the media played count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int MediaPlayedCount { get; }

Field Value

The media played count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


MouseMovedCount Property

Interactions..::..MouseMovedCount Property

Gets the mouse moved count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int MouseMovedCount { get; }

Field Value

The mouse moved count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


MouseWheelCount Property

Interactions..::..MouseWheelCount Property

Gets the mouse wheel count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int MouseWheelCount { get; }

Field Value

The mouse wheel count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


PageHiddenCount Property

Interactions..::..PageHiddenCount Property

Gets the page hidden count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int PageHiddenCount { get; }

Field Value

The page hidden count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


PageShowCount Property

Interactions..::..PageShowCount Property

Gets the page show count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int PageShowCount { get; }

Field Value

The page show count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


PastCount Property

Interactions..::..PastCount Property

Gets the past count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int PastCount { get; }

Field Value

The past count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


SecondsViewed Property

Interactions..::..SecondsViewed Property

Gets the seconds viewed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double SecondsViewed { get; set; }

Field Value

The seconds viewed.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


TouchMoveCount Property

Interactions..::..TouchMoveCount Property

Gets the touch move count.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int TouchMoveCount { get; }

Field Value

The touch move count.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


Updates Property

Interactions..::..Updates Property

Gets the updates that have been recorded.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public JavaScriptUpdatesIsUserDiscoveries Updates { get; set; }

Field Value

The updates.

Remarks

JavaScriptUpdatesIsUserDiscoveries is a flags enumerator so you need to test if a flag is set rather than use a == comparison

See Also

Interactions Structure
Walter.Web.FireWall Namespace


UsesKeyboard Property

Interactions..::..UsesKeyboard Property

Gets a value indicating whether [uses keyboard].

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UsesKeyboard { get; }

Field Value

true if [uses keyboard]; otherwise, false.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


UsesMouse Property

Interactions..::..UsesMouse Property

Gets a value indicating whether [uses mouse].

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UsesMouse { get; }

Field Value

true if [uses mouse]; otherwise, false.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


UsesTabs Property

Interactions..::..UsesTabs Property

Gets a value indicating whether [uses tabs].

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UsesTabs { get; }

Field Value

true if [uses tabs]; otherwise, false.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


UsesTouch Property

Interactions..::..UsesTouch Property

Gets a value indicating whether [uses touch].

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UsesTouch { get; }

Field Value

true if [uses touch]; otherwise, false.

See Also

Interactions Structure
Walter.Web.FireWall Namespace


IPageRequest Interface

Interface IPageRequest contains the meta data in as the firewall managed this page and it's access to it, a custom implementation of this Interface will be rejected by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IPageRequest : IInstrumented

Remarks

A instance of IPageRequest is contract that contains scoped data storage populated with data related to the requesting user and is used when delivering a given page and is valid only for a given page request and is the class that is passed between the web application, the firewall, and the guard engines and is ultimately passed to storage and reporting interfaces.

Examples

The bellow example shows how the IPageRequest can be used to access the requester related data as well as the firewall
C#
namespace MyWeb.Controllers
{
    using Walter.Web.FireWall;
    using Walter.Web.FireWall.Annotations;
    using Walter.Web.FireWall.Filters;
    using Walter.Web.FireWall.Geo;
    using Walter.Web.FireWall.RuleEngine.Rules;

    [BlockDuration(seconds: 60, sliding: true, doubleDurationPerIncident: true)]
    public class HomeController : Controller
    {
        private readonly IPageRequest _page;
        private ILatLongRepository _latLongRepository;

        public HomeController(IPageRequest page, ILatLongRepository latLongRepository)
        {
            _page = page;
            _latLongRepository = latLongRepository;
        }

        [GeoIgnore(maxRequest: 5)]
        [Ignore(skip: FireWallGuardActions.RejectPenetrationAttempts
                     | FireWallGuardActions.RejectRepeatViolations
                     | FireWallGuardActions.RejectWrongUserType
            , skipCount: 5)]
        public IActionResult Blocked(BlockingReason id)
        {

            if (_page.User.AsFirewallUser().UserType.HasFlag(UserTypes.IsMalicious))
            {
                return View("_Malicious", id);
            }
            return View(id);
        }

        [Minify]
        [HttpGet]
        [Users(blocked: UserTypes.IsMalicious
                 , allow: UserTypes.IsHuman | UserTypes.IsSearchEngine | UserTypes.NotDiscovered
                 , redirectToController: "home", redirectAction: "blocked", id: (int)BlockingReason.WrongConsumerType)]
        public async Task<IActionResult> Index()
        {

            if (!_page.User.TryReadCookie("Telephone", out var phone))
            {
                phone = "001.123.567.89 ext 123";
            }

            await _page.User.WriteCookieAsync("Telephone", phone, TimeSpan.FromSeconds(60)).ConfigureAwait(false);

            //_fireWall.SendEmail(EMailRoles.ProductUpdates, "test mail", "this is a test email", false);var model = new IndexModel();
            model.UserQuery = new Query() { IPAddress = _page.IPAddress.ToString() };
            model.UserResult = await _page.FireWall.WhoisAsync(_page).ConfigureAwait(false);
            model.Geography = _latLongRepository.QueryMapLocation(_page.IPAddress);
            return View(model);
        }
    }
}

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Members
Walter.Web.FireWall Namespace


IPageRequest Members

The IPageRequest type exposes the following members.

Methods

 | Name | Description
Public method | AddDocumentation | Allows you to add proprietary documentation to a PageRequest and access this from anywhere in your code
Public method | Block | Use block to Manually trigger a blocking indecent for a user. All future requests that fall in a time span to be redirected
Public method | ContainsBlockCookie | Queries the page cookies and tests if it contains a block cookie
Public method | ExpireActiveIncidents(DateTime) | Expires the users active incidents on a given date.
Public method | ExpireActiveIncidents()()()() | Expires the users active incidents now.
Public method | GetAbuseContact | Gets the abuse contact details of the requesting IP address Internet Service Provider (ISP).
Public method | GetAbuseContactAsync | Gets the abuse contact details of the requesting IP address Internet Service Provider (ISP) asynchronous.
Public method | GetDns | Get the DNS entry for this page request
Public method | GetDocumentation | Access the documentation if any documentation was added by you to a IPageRequest instance
Public method | GetGuardValuations | Gets the firewall guard valuations that have executed on this page.
Public method | GetHostEntry | Returns the DNS lookup of the host
Public method | GetISP | Retrieve the whole WHOIS dataset for the Internet Service Provider (ISP) that owns the IP address
Public method | GetSessionHash | Gets the session hash.
Public method | HasActiveIncidents | Indicates true if the user has active incidents
Public method | HasExecuted | Determines whether the specified step has executed.
Public method | HasViolated | Determines whether the specified module has been flagged as being violated.
Public method | Incidents | Incidents previously logged on this page that was requested.
Public method | IsWhiteList | Test to see if a module or set of modules is white-listed for the page source IP address
Public method | MaximumViolationsReached | Tests if the Maximum the violations for the page consumer has been reached and a block should be triggered.
Public method | PageShouldBeGeoBlocked | Looks at the Routing rules as well as the firewall configuration and indicates that as far as the page is concerned the page should not be served
Public method | RenderThenBlock | Use RenderThenBlock to Manually trigger a blocking indecent for a user after rendering the page.
Public method | ToString | Generates a human friendly representation of the request that's being processed
Public method | TryGetLocation | tries to get the GEO location of the consumer of the page
Public method | TryHasHeader | Determines whether the specified header with a given name has the provided value.
Public method | TryLogBeacon | Log and process the beacon data
Public method | TryLogDiscovery | log the discovery
Public method | TryLogSiteMap | log the page request
Public method | TryUpdateUser | Tries to update the user with the session and cookie stores, this method must be called before the context response has been send to the user.
Public method | Visits | A history visits to this endpoint, page, or controller action in a session or 20 minute time frame if sessions are not used.

Properties

 | Name | Description
Public property | CIDR | Gets the IP's address in CIDR format (Classless Inter-Domain Routing)
Public property | Compression | Compression contains the value that the response was compressed by when using the MinifyAtribute
Public property | Country | Gets the country that the request originated from or null if no GEO plug-in is used.
Public property | CreatedUtc | Gets the time-stamp that the firewall understood the request to have been created in UTC.
Public property | DurationCurrentSession | Gets the duration current session if session is configured in the application.
Public property | Exception | Gets or sets the last exception that happened to the page.
Public property | Exceptions | Gets the Exceptions from the page.
Public property | FireWall | Access the firewall instance that is managing this web application
Public property | FireWallRoute | Gets the FireWall route if it was discovered.
Public property | HttpStatusCode | The HTTP status code that the response is given
Public property | Interactions | Gets the interactions on the page and is set when you implement User discovery.
Public property | IPAddress | Gets the IP address of the user requesting the page.
Public property | IsLocalFile | indicated that the page is working with a physical file
Public property | IsLocalRequest | Determines whether the request is made locally (calling LocalHost or from the IIS server via public url) or from a remote device.
Public property | IsWhiteListed | if true the page was white-listed by the firewalls rule engine
Public property | LatLong | simple LatLong for the request
Public property | Method | Gets protocol method of the request.
Public property | NotFoundRequest | Contains the not found data for a URL that does not map to the application
Public property | OriginalUrl | Gets the original URL requested for this request.
Public property | PageRequestGroupId | Gets the page request group identifier, a page request group is the id used to associate the source page that was used to download scripts as well as post-backs by JavaScript against API endpoints.
Public property | PageRequestId | A identifier for this page, together with the date it can be used to uniquely identify this request
Public property | PageTraceId | Gets the page trace identifier set by the .net framework.
Public property | PlausibleHeaders | The request uses headers are possible
Public property | PortStatus | The status of the port in relation to the firewall's port detection configuration, see HoneyPotListners for details
Public property | PreviousPage | access the previous page that was visited or was redirected from
Public property | ProcessedUtc | The date the page was unloaded by the request pipeline, if null then processing is still underway
Public property | Referrer | Referrer that the user last came from when loading this page
Public property | RootPage | Gets the root page that initiated this request, can be null if this is the first page in the page request pipeline.
Public property | SessionAvailable | Gets a value indicating whether the ISession is configured and is available.
Public property | SessionId | Gets the firewall session identifier for the user representing the users firewall session.
Public property | SiteMapStatus | Site-map search result contains information on the navigation by the user in relation to his traveling in the site
Public property | TransferedTo | Gets or sets the Url the request is or should be transfered to. If assigned it will maintain the transfered URL, any additional assignments are ignored
Public property | Triggered | Gets the triggered rules during the request regardless if user code suppressed the incident using events.
Public property | User | Gets the user wrapper instance of the user that is requesting the page.
Public property | ViolationsStack | A collection of violations discovered while processing the page, will not contain data if no issues

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IPageRequest Methods

The IPageRequest type exposes the following members.

Methods

 | Name | Description
Public method | AddDocumentation | Allows you to add proprietary documentation to a PageRequest and access this from anywhere in your code
Public method | Block | Use block to Manually trigger a blocking indecent for a user. All future requests that fall in a time span to be redirected
Public method | ContainsBlockCookie | Queries the page cookies and tests if it contains a block cookie
Public method | ExpireActiveIncidents(DateTime) | Expires the users active incidents on a given date.
Public method | ExpireActiveIncidents()()()() | Expires the users active incidents now.
Public method | GetAbuseContact | Gets the abuse contact details of the requesting IP address Internet Service Provider (ISP).
Public method | GetAbuseContactAsync | Gets the abuse contact details of the requesting IP address Internet Service Provider (ISP) asynchronous.
Public method | GetDns | Get the DNS entry for this page request
Public method | GetDocumentation | Access the documentation if any documentation was added by you to a IPageRequest instance
Public method | GetGuardValuations | Gets the firewall guard valuations that have executed on this page.
Public method | GetHostEntry | Returns the DNS lookup of the host
Public method | GetISP | Retrieve the whole WHOIS dataset for the Internet Service Provider (ISP) that owns the IP address
Public method | GetSessionHash | Gets the session hash.
Public method | HasActiveIncidents | Indicates true if the user has active incidents
Public method | HasExecuted | Determines whether the specified step has executed.
Public method | HasViolated | Determines whether the specified module has been flagged as being violated.
Public method | Incidents | Incidents previously logged on this page that was requested.
Public method | IsWhiteList | Test to see if a module or set of modules is white-listed for the page source IP address
Public method | MaximumViolationsReached | Tests if the Maximum the violations for the page consumer has been reached and a block should be triggered.
Public method | PageShouldBeGeoBlocked | Looks at the Routing rules as well as the firewall configuration and indicates that as far as the page is concerned the page should not be served
Public method | RenderThenBlock | Use RenderThenBlock to Manually trigger a blocking indecent for a user after rendering the page.
Public method | ToString | Generates a human friendly representation of the request that's being processed
Public method | TryGetLocation | tries to get the GEO location of the consumer of the page
Public method | TryHasHeader | Determines whether the specified header with a given name has the provided value.
Public method | TryLogBeacon | Log and process the beacon data
Public method | TryLogDiscovery | log the discovery
Public method | TryLogSiteMap | log the page request
Public method | TryUpdateUser | Tries to update the user with the session and cookie stores, this method must be called before the context response has been send to the user.
Public method | Visits | A history visits to this endpoint, page, or controller action in a session or 20 minute time frame if sessions are not used.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


AddDocumentation Method

IPageRequest..::..AddDocumentation Method

Allows you to add proprietary documentation to a PageRequest and access this from anywhere in your code

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddDocumentation(
    string message,
    Nullable<string> member,
    Nullable<string> filenName,
    Nullable<int> line
)

Parameters

message
Type: String
The documentation to add to the page
member
Type: Nullable <(Of <(<' String >)>)>
The member that added the documentation, if left null this will be populated by the compiler
filenName
Type: Nullable <(Of <(<' String >)>)>
The file that the code executed from, if left null this will be populated by the compiler
line
Type: Nullable <(Of <(<' Int32 >)>)>
The line number that set the documentation, if left null this will be populated by the compiler

Remarks

This method is particularly useful for developers that like to investigate or log pages when a page is processed

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Block Method

IPageRequest..::..Block Method

Use block to Manually trigger a blocking indecent for a user. All future requests that fall in a time span to be redirected

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Block(
    UserBlockingRule reason,
    string description,
    TimeSpan duration,
    Nullable<Uri> redirect
)

Parameters

reason
Type: Walter.Web.FireWall.RuleEngine.Rules..::..UserBlockingRule
the reason and type of incident to generate
description
Type: String
a description of the incident used for reporting reference
duration
Type: TimeSpan
duration for the blocking
redirect
Type: Nullable <(Of <(<'Uri>)>)>
redirect to location for this the user that triggered the incident

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


ContainsBlockCookie Method

IPageRequest..::..ContainsBlockCookie Method

Queries the page cookies and tests if it contains a block cookie

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool ContainsBlockCookie(
    out Nullable<string> value
)

Parameters

value
Type: Nullable <(Of <(<' String >)>)>%
Will contain the descriptions of the blocked reasons that where used when the cookie was set

Return Value

True if a block cookie was generated for this user

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


ExpireActiveIncidents Method

IPageRequest..::..ExpireActiveIncidents Method

Overload List

 | Name | Description
Public method | ExpireActiveIncidents(DateTime) | Expires the users active incidents on a given date.
Public method | ExpireActiveIncidents()()()() | Expires the users active incidents now.

See Also

IPageRequest Interface
IPageRequest Members
Walter.Web.FireWall Namespace


ExpireActiveIncidents Method (DateTime)

IPageRequest..::..ExpireActiveIncidents Method (DateTime)

Expires the users active incidents on a given date.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ExpireActiveIncidents(
    DateTime expireOn
)

Parameters

expireOn
Type: DateTime
The UTC date time to expire on.

See Also

IPageRequest Interface
ExpireActiveIncidents Overload
Walter.Web.FireWall Namespace


ExpireActiveIncidents Method

IPageRequest..::..ExpireActiveIncidents Method

Expires the users active incidents now.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ExpireActiveIncidents()

See Also

IPageRequest Interface
ExpireActiveIncidents Overload
Walter.Web.FireWall Namespace


GetAbuseContact Method

IPageRequest..::..GetAbuseContact Method

Gets the abuse contact details of the requesting IP address Internet Service Provider (ISP).

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IWhoisContactDetails> GetAbuseContact()

Return Value

BOM.IWhoisContactDetails

Remarks

Requires licensed firewall

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


GetAbuseContactAsync Method

IPageRequest..::..GetAbuseContactAsync Method

Gets the abuse contact details of the requesting IP address Internet Service Provider (ISP) asynchronous.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<Nullable<IWhoisContactDetails>> GetAbuseContactAsync()

Return Value

Task<BOM.IWhoisContactDetails>.

Remarks

Requires licensed firewall

Thread Safety

Static members of this type are not safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


GetDns Method

IPageRequest..::..GetDns Method

Get the DNS entry for this page request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DnsEntry GetDns()

Return Value

DNS entry

Remarks

DNS entry is like a host entry and a NSLookup combined allowing to validate reverse DNS requests discovering spoofing or man in the middle issues

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


GetDocumentation Method

IPageRequest..::..GetDocumentation Method

Access the documentation if any documentation was added by you to a IPageRequest instance

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<Documentation> GetDocumentation()

Return Value

List with the current documentation assigned to the page

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


GetGuardValuations Method

IPageRequest..::..GetGuardValuations Method

Gets the firewall guard valuations that have executed on this page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<GuardValuation> GetGuardValuations()

Return Value

IReadOnlyList<GuardValuation>.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


GetHostEntry Method

IPageRequest..::..GetHostEntry Method

Returns the DNS lookup of the host

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPHostEntry GetHostEntry()

Return Value

IP host entry

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
IPageRequest..::..GetDns()()()()


GetISP Method

IPageRequest..::..GetISP Method

Retrieve the whole WHOIS dataset for the Internet Service Provider (ISP) that owns the IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IWhois GetISP()

Return Value

The IWhois record for the IP address

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
IPageRequest..::..GetAbuseContact()()()()
IPageRequest..::..GetAbuseContactAsync()()()()
[IWhois]


GetSessionHash Method

IPageRequest..::..GetSessionHash Method

Gets the session hash.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string GetSessionHash()

Return Value

System.String.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


HasActiveIncidents Method

IPageRequest..::..HasActiveIncidents Method

Indicates true if the user has active incidents

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool HasActiveIncidents()

Return Value

True if active incidents

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


HasExecuted Method

IPageRequest..::..HasExecuted Method

Determines whether the specified step has executed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool HasExecuted(
    FireWallModules task
)

Parameters

task
Type: Walter.Web.FireWall..::..FireWallModules
The step.

Return Value

true if the specified step has executed; otherwise, false.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


HasViolated Method

IPageRequest..::..HasViolated Method

Determines whether the specified module has been flagged as being violated.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool HasViolated(
    FireWallGuardActions guardModule
)

Parameters

guardModule
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The module.

Return Value

true if the specified module has violated; otherwise, false.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Incidents Method

IPageRequest..::..Incidents Method

Incidents previously logged on this page that was requested.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Incidents()

Return Value

IList<IIncident>.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IsWhiteList Method

IPageRequest..::..IsWhiteList Method

Test to see if a module or set of modules is white-listed for the page source IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsWhiteList(
    FireWallGuardActions modules
)

Parameters

modules
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
the modules to validate

Return Value

True if white listed for a module

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
DiscoveredRout..::..WhiteList
Walter.Web.FireWall.Annotations..::..WhiteListIPAttribute


MaximumViolationsReached Method

IPageRequest..::..MaximumViolationsReached Method

Tests if the Maximum the violations for the page consumer has been reached and a block should be triggered.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool MaximumViolationsReached()

Return Value

true if XXXX, false otherwise.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


PageShouldBeGeoBlocked Method

IPageRequest..::..PageShouldBeGeoBlocked Method

Looks at the Routing rules as well as the firewall configuration and indicates that as far as the page is concerned the page should not be served

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<bool> PageShouldBeGeoBlocked()

Return Value

Returns a verdict if it knows what should be done, the middleware will enforce redirect desired

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


RenderThenBlock Method

IPageRequest..::..RenderThenBlock Method

Use RenderThenBlock to Manually trigger a blocking indecent for a user after rendering the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void RenderThenBlock(
    UserBlockingRule reason,
    string description,
    TimeSpan duration,
    Nullable<Uri> redirect
)

Parameters

reason
Type: Walter.Web.FireWall.RuleEngine.Rules..::..UserBlockingRule
the reason and type of incident to generate
description
Type: String
a description of the incident used for reporting reference
duration
Type: TimeSpan
duration for the blocking
redirect
Type: Nullable <(Of <(<'Uri>)>)>
redirect to location for this the user that triggered the incident leave blank to block

Remarks

This method it will render the page but after that, all future requests that fall in a time span to be redirected or blocked

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


ToString Method

IPageRequest..::..ToString Method

Generates a human friendly representation of the request that's being processed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ToString()

Return Value

string value with the information of the page

Remarks

Page text can't be used to parse a new page and is only informational value

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


TryGetLocation Method

IPageRequest..::..TryGetLocation Method

tries to get the GEO location of the consumer of the page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation TryGetLocation()

Return Value

Returns the GeoLocation,will return GeoLocation.None if failed

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
GeoLocation..::..UnKnown


TryHasHeader Method

IPageRequest..::..TryHasHeader Method

Determines whether the specified header with a given name has the provided value.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryHasHeader(
    string headerName,
    string headerValue,
    out ItemCompairs result
)

Parameters

headerName
Type: String
Name of the header.
headerValue
Type: String
The header value.
result
Type: Walter.Web.FireWall..::..ItemCompairs %
true if the specified header has the same value; otherwise, false.

Return Value

True if the comparison was possible

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


TryLogBeacon Method

IPageRequest..::..TryLogBeacon Method

Log and process the beacon data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogBeacon(
    Nullable<string> json
)

Parameters

json
Type: Nullable <(Of <(<' String >)>)>

Return Value

true if valid

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


TryLogDiscovery Method

IPageRequest..::..TryLogDiscovery Method

log the discovery

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogDiscovery(
    Nullable<string> json
)

Parameters

json
Type: Nullable <(Of <(<' String >)>)>

Return Value

true if valid

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


TryLogSiteMap Method

IPageRequest..::..TryLogSiteMap Method

log the page request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogSiteMap(
    Nullable<string> json
)

Parameters

json
Type: Nullable <(Of <(<' String >)>)>

Return Value

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


TryUpdateUser Method

IPageRequest..::..TryUpdateUser Method

Tries to update the user with the session and cookie stores, this method must be called before the context response has been send to the user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryUpdateUser()

Return Value

true if called before the context response has been send to the user, false otherwise.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Visits Method

IPageRequest..::..Visits Method

A history visits to this endpoint, page, or controller action in a session or 20 minute time frame if sessions are not used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IVisitStats> Visits()

Return Value

IReadOnlyList<VisitStats>.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IPageRequest Properties

The IPageRequest type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets the IP's address in CIDR format (Classless Inter-Domain Routing)
Public property | Compression | Compression contains the value that the response was compressed by when using the MinifyAtribute
Public property | Country | Gets the country that the request originated from or null if no GEO plug-in is used.
Public property | CreatedUtc | Gets the time-stamp that the firewall understood the request to have been created in UTC.
Public property | DurationCurrentSession | Gets the duration current session if session is configured in the application.
Public property | Exception | Gets or sets the last exception that happened to the page.
Public property | Exceptions | Gets the Exceptions from the page.
Public property | FireWall | Access the firewall instance that is managing this web application
Public property | FireWallRoute | Gets the FireWall route if it was discovered.
Public property | HttpStatusCode | The HTTP status code that the response is given
Public property | Interactions | Gets the interactions on the page and is set when you implement User discovery.
Public property | IPAddress | Gets the IP address of the user requesting the page.
Public property | IsLocalFile | indicated that the page is working with a physical file
Public property | IsLocalRequest | Determines whether the request is made locally (calling LocalHost or from the IIS server via public url) or from a remote device.
Public property | IsWhiteListed | if true the page was white-listed by the firewalls rule engine
Public property | LatLong | simple LatLong for the request
Public property | Method | Gets protocol method of the request.
Public property | NotFoundRequest | Contains the not found data for a URL that does not map to the application
Public property | OriginalUrl | Gets the original URL requested for this request.
Public property | PageRequestGroupId | Gets the page request group identifier, a page request group is the id used to associate the source page that was used to download scripts as well as post-backs by JavaScript against API endpoints.
Public property | PageRequestId | A identifier for this page, together with the date it can be used to uniquely identify this request
Public property | PageTraceId | Gets the page trace identifier set by the .net framework.
Public property | PlausibleHeaders | The request uses headers are possible
Public property | PortStatus | The status of the port in relation to the firewall's port detection configuration, see HoneyPotListners for details
Public property | PreviousPage | access the previous page that was visited or was redirected from
Public property | ProcessedUtc | The date the page was unloaded by the request pipeline, if null then processing is still underway
Public property | Referrer | Referrer that the user last came from when loading this page
Public property | RootPage | Gets the root page that initiated this request, can be null if this is the first page in the page request pipeline.
Public property | SessionAvailable | Gets a value indicating whether the ISession is configured and is available.
Public property | SessionId | Gets the firewall session identifier for the user representing the users firewall session.
Public property | SiteMapStatus | Site-map search result contains information on the navigation by the user in relation to his traveling in the site
Public property | TransferedTo | Gets or sets the Url the request is or should be transfered to. If assigned it will maintain the transfered URL, any additional assignments are ignored
Public property | Triggered | Gets the triggered rules during the request regardless if user code suppressed the incident using events.
Public property | User | Gets the user wrapper instance of the user that is requesting the page.
Public property | ViolationsStack | A collection of violations discovered while processing the page, will not contain data if no issues

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


CIDR Property

IPageRequest..::..CIDR Property

Gets the IP's address in CIDR format (Classless Inter-Domain Routing)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

Field Value

The CIDR.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Compression Property

IPageRequest..::..Compression Property

Compression contains the value that the response was compressed by when using the MinifyAtribute

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
double Compression { get; }

Remarks

Minification will improve your page speed over the network and in the browser as there is less data to send and less data read.

The minification has the nice effect that the page will be harder to parse for bots and humans.

This value is only set on HTTPGet requests

Examples

Minify the rendered Razor view. You can access the compressed in the post processing as well as in the page reporting.
C#
[Minify]
public async Task<IActionResult> Index()
{
  var model= await Factory.NavigationModel().ConfigureAwayt(false);
  return View(model);
}

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Country Property

IPageRequest..::..Country Property

Gets the country that the request originated from or null if no GEO plug-in is used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoLocation> Country { get; }

Field Value

The country.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


CreatedUtc Property

IPageRequest..::..CreatedUtc Property

Gets the time-stamp that the firewall understood the request to have been created in UTC.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime CreatedUtc { get; }

Field Value

The created UTC.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


DurationCurrentSession Property

IPageRequest..::..DurationCurrentSession Property

Gets the duration current session if session is configured in the application.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<TimeSpan> DurationCurrentSession { get; }

Field Value

The duration current session.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Exception Property

IPageRequest..::..Exception Property

Gets or sets the last exception that happened to the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Exception> Exception { get; set; }

Field Value

The exception.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Exceptions Property

IPageRequest..::..Exceptions Property

Gets the Exceptions from the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<Exception> Exceptions { get; }

Field Value

The Exception.

Remarks

The is empty if no exceptions have been recorded

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


FireWall Property

IPageRequest..::..FireWall Property

Access the firewall instance that is managing this web application

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWall FireWall { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


FireWallRoute Property

IPageRequest..::..FireWallRoute Property

Gets the FireWall route if it was discovered.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DiscoveredRout> FireWallRoute { get; }

Field Value

The fire wall route.

Remarks

In the documentation this is often refereed to as discovered endpoint

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


HttpStatusCode Property

IPageRequest..::..HttpStatusCode Property

The HTTP status code that the response is given

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HttpStatusCode HttpStatusCode { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Interactions Property

IPageRequest..::..Interactions Property

Gets the interactions on the page and is set when you implement User discovery.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Interactions Interactions { get; }

Field Value

The interactions the user had with the page.

Remarks

Interactions that the user had with a rendered page (only applicable when you use UserDiscovery)

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IPAddress Property

IPageRequest..::..IPAddress Property

Gets the IP address of the user requesting the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IPAddress { get; }

Field Value

The IP address.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IsLocalFile Property

IPageRequest..::..IsLocalFile Property

indicated that the page is working with a physical file

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsLocalFile { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IsLocalRequest Property

IPageRequest..::..IsLocalRequest Property

Determines whether the request is made locally (calling LocalHost or from the IIS server via public url) or from a remote device.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsLocalRequest { get; }

Return Value

true if then this is a local request; otherwise, false.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IsWhiteListed Property

IPageRequest..::..IsWhiteListed Property

if true the page was white-listed by the firewalls rule engine

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsWhiteListed { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


LatLong Property

IPageRequest..::..LatLong Property

simple LatLong for the request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SimpleLatLong LatLong { get; }

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


Method Property

IPageRequest..::..Method Property

Gets protocol method of the request.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ProtocolMethod Method { get; }

Field Value

The method.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


NotFoundRequest Property

IPageRequest..::..NotFoundRequest Property

Contains the not found data for a URL that does not map to the application

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<INotFoundRequest> NotFoundRequest { get; }

Remarks

You can use the SetCorrectedPath(String) to fix links that used to be OK but no-longer work. Also this gives you some incite of how often the URL is being triggered

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


OriginalUrl Property

IPageRequest..::..OriginalUrl Property

Gets the original URL requested for this request.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri OriginalUrl { get; }

Field Value

The original URL.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
IPageRequest..::..TransferedTo


PageRequestGroupId Property

IPageRequest..::..PageRequestGroupId Property

Gets the page request group identifier, a page request group is the id used to associate the source page that was used to download scripts as well as post-backs by JavaScript against API endpoints.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageRequestGroupId { get; }

Field Value

The page request group.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


PageRequestId Property

IPageRequest..::..PageRequestId Property

A identifier for this page, together with the date it can be used to uniquely identify this request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageRequestId { get; }

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


PageTraceId Property

IPageRequest..::..PageTraceId Property

Gets the page trace identifier set by the .net framework.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string PageTraceId { get; }

Field Value

The page trace identifier.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


PlausibleHeaders Property

IPageRequest..::..PlausibleHeaders Property

The request uses headers are possible

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool PlausibleHeaders { get; }

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


PortStatus Property

IPageRequest..::..PortStatus Property

The status of the port in relation to the firewall's port detection configuration, see HoneyPotListners for details

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
PortStatus PortStatus { get; }

Remarks

The application configured to be using the firewall must be configured to be listing to more than 1 port via Kestrel or IIS.

Examples

Enable multi-port binding
Use Web.Config for adding bunding data
/*
   To append port bindings to IIS Express applicationhost.config file. Supported for Visual Studio 2015 and later
   1. Locate applicationhost.config, usually located at [solutionfolder]/.vs/[solution name]/config/applicationhost.config*/

   <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
     <system.applicationHost>
       <sites>
         <site id="2" xdt:Locator="Match(id)"> <!-- replace id with your site id -->
           <bindings xdt:Transform="Remove" />
           <bindings xdt:Transform="InsertIfMissing">
           <binding protocol="http" bindingInformation="*:9328:localhost" /> <!-- repeat this line for every port you would like to bind to your web app -->
           <binding protocol="http" bindingInformation="*:9329:localhost" />
           </bindings>
         </site>
       </sites>
     </system.applicationHost>
  </configuration>
Configure Apache Web Site to Use Multiple Ports
/*
   Open Apache configuration File httpd.conf (on my windows host, it’s located here: “c:\Program Files\Apache Group\Apache2\conf”)

   Find the VirtualHost portion for your Website config and Add *:[your port]*/

   listen 80
   listen 443
  listen [your port]
set ports using WebBuilder
public class Program
   {
       public static void Main(string[] args)
       {
           CreateHostBuilder(args).Build().Run();
       }

       public static IHostBuilder CreateHostBuilder(string[] args) =>
           Host.CreateDefaultBuilder(args)
               .ConfigureWebHostDefaults(webBuilder =>
               {
                   webBuilder.UseStartup<Startup>();
                   webBuilder.UseUrls("http://localhost:5003", "https://localhost:5004");
               });
  }
using launchSettings.json
/*
   launchSettings.json provides an easy way to set the application URLs via the applicationUrl property -
   you can see one under the iisSettings for IIS express
   , and one under TestApp (the name of the application for this file).

   See that the application is monitoring https under port 8000
   */

   {
     "iisSettings": {
       "windowsAuthentication": false,
       "anonymousAuthentication": true,
       "iisExpress": {
         "applicationUrl": "http://localhost:38327",
         "sslPort": 44310
       }
     },
     "profiles": {
       "IIS Express": {
         "commandName": "IISExpress",
         "launchBrowser": true,
         "environmentVariables": {
           "ASPNETCORE_ENVIRONMENT": "Development"
         }
       },
       "TestApp": {
         "commandName": "Project",
         "launchBrowser": true,
         "applicationUrl": "https://localhost:5001;http://localhost:5000;https://localhost:8000",
         "environmentVariables": {
           "ASPNETCORE_ENVIRONMENT": "Development"
         }
       }
     }
   }

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
RulesConfig..::..HoneyPotListners


PreviousPage Property

IPageRequest..::..PreviousPage Property

access the previous page that was visited or was redirected from

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> PreviousPage { get; }

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


ProcessedUtc Property

IPageRequest..::..ProcessedUtc Property

The date the page was unloaded by the request pipeline, if null then processing is still underway

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> ProcessedUtc { get; }

Remarks

To get the active processing time deduct DateTime.UtcNow from the CreatedUtc

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
IPageRequest..::..CreatedUtc


Referrer Property

IPageRequest..::..Referrer Property

Referrer that the user last came from when loading this page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> Referrer { get; }

Remarks

Referrers may not be set if the browser does not support it or if the request is not using SSL. Bots rarely set referrers, also you can validate that the referrer must be set if the page only allows human users as humans use browsers especially on Endpoints that are map methods other than HttpGet

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


RootPage Property

IPageRequest..::..RootPage Property

Gets the root page that initiated this request, can be null if this is the first page in the page request pipeline.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IPageRequest> RootPage { get; }

Field Value

The root page.

Remarks

If this value is not null the root page will be the related to the item (usually a razor page) that initiated the request. in the case of embedded resources or AJAX JavaScript interaction

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


SessionAvailable Property

IPageRequest..::..SessionAvailable Property

Gets a value indicating whether the ISession is configured and is available.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool SessionAvailable { get; }

Field Value

true if [session available]; otherwise, false.

Remarks

ISession and FireWall session are different, firewall session documents the user session on the database where ISession is storage on the web application

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


SessionId Property

IPageRequest..::..SessionId Property

Gets the firewall session identifier for the user representing the users firewall session.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string SessionId { get; }

Field Value

The session identifier.

Remarks

This value does not represent a server cookie and does not implement any storage backing like ISession

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


SiteMapStatus Property

IPageRequest..::..SiteMapStatus Property

Site-map search result contains information on the navigation by the user in relation to his traveling in the site

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SiteMapSearchResult SiteMapStatus { get; }

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


TransferedTo Property

IPageRequest..::..TransferedTo Property

Gets or sets the Url the request is or should be transfered to. If assigned it will maintain the transfered URL, any additional assignments are ignored

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> TransferedTo { get; set; }

Field Value

The URL transfered to is null if no violation demanded it.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
IInstrumented..::..GuardAction


Triggered Property

IPageRequest..::..Triggered Property

Gets the triggered rules during the request regardless if user code suppressed the incident using events.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Triggered { get; }

Field Value

The triggered.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


User Property

IPageRequest..::..User Property

Gets the user wrapper instance of the user that is requesting the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUserIdentity User { get; }

Field Value

The user.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace
IUserIdentity..::..AsFirewallUser()()()()


ViolationsStack Property

IPageRequest..::..ViolationsStack Property

A collection of violations discovered while processing the page, will not contain data if no issues

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<FireWallStackItem> ViolationsStack { get; }

Remarks

If this is a RootPage then the page stack will contain all violation of all requests that are subsequently served to resources loaded by the page. You are able to differentiate by the Route and the URL.

Unlike a exception stack the order is not really important as all items are in violation and even though you normally find items in the same order there is no guaranty that "test A" is before "test B"

This page is the owner of other requests, meaning that this page may initiate Ajax call's from Java script or the loading of embedded resources or files. If that's the case it will collect the incidents of it's child requests it self end even though this request doesn't not cause a incident directly, the resources it owns may.

It is therefore always interesting to test page owner incident stacks as well

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IPageRequest Interface
Walter.Web.FireWall Namespace


IPageRequestGroupIdValidation Interface

Indicates that the model contains a PageRequestGroupId or PageRequestId value

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IPageRequestGroupIdValidation

See Also

IPageRequestGroupIdValidation Members
Walter.Web.FireWall Namespace
IPageRequest..::..PageRequestGroupId
IPageRequest..::..PageRequestId


IPageRequestGroupIdValidation Members

The IPageRequestGroupIdValidation type exposes the following members.

Properties

 | Name | Description
Public property | PageRequestGroupId | The page request group

See Also

IPageRequestGroupIdValidation Interface
Walter.Web.FireWall Namespace


IPageRequestGroupIdValidation Properties

The IPageRequestGroupIdValidation type exposes the following members.

Properties

 | Name | Description
Public property | PageRequestGroupId | The page request group

See Also

IPageRequestGroupIdValidation Interface
Walter.Web.FireWall Namespace


PageRequestGroupId Property

IPageRequestGroupIdValidation..::..PageRequestGroupId Property

The page request group

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageRequestGroupId { get; }

See Also

IPageRequestGroupIdValidation Interface
Walter.Web.FireWall Namespace


IPageRequestsReposiory Interface

Interface IPageRequestsReposiory stores page requests, the request as well as the fulfillment

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IPageRequestsReposiory

See Also

IPageRequestsReposiory Members
Walter.Web.FireWall Namespace


IPageRequestsReposiory Members

The IPageRequestsReposiory type exposes the following members.

Methods

 | Name | Description
Public method | TryLogPageRequest | Tries the log page request, this needs to be stored before the page is send to the client.

See Also

IPageRequestsReposiory Interface
Walter.Web.FireWall Namespace


IPageRequestsReposiory Methods

The IPageRequestsReposiory type exposes the following members.

Methods

 | Name | Description
Public method | TryLogPageRequest | Tries the log page request, this needs to be stored before the page is send to the client.

See Also

IPageRequestsReposiory Interface
Walter.Web.FireWall Namespace


TryLogPageRequest Method

IPageRequestsReposiory..::..TryLogPageRequest Method

Tries the log page request, this needs to be stored before the page is send to the client.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogPageRequest(
    IPageRequest pageRequest
)

Parameters

pageRequest
Type: Walter.Web.FireWall..::..IPageRequest
The page that was used to process the request

Remarks

TryLogServedPageRequest will send the data to the backing storage for later processing and needs this data to be able to make a match

See Also

IPageRequestsReposiory Interface
Walter.Web.FireWall Namespace


IProxyProvider Interface

Proxy provider allows you to implement your own proxy provider for the firewall, Use IFireWall.Set() method to register your own

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IProxyProvider

See Also

IProxyProvider Members
Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..IFireWall


IProxyProvider Members

The IProxyProvider type exposes the following members.

Methods

 | Name | Description
Public method | GetCountry | Gets the country of a proxy/ VPN user.

See Also

IProxyProvider Interface
Walter.Web.FireWall Namespace


IProxyProvider Methods

The IProxyProvider type exposes the following members.

Methods

 | Name | Description
Public method | GetCountry | Gets the country of a proxy/ VPN user.

See Also

IProxyProvider Interface
Walter.Web.FireWall Namespace


GetCountry Method

IProxyProvider..::..GetCountry Method

Gets the country of a proxy/ VPN user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation GetCountry(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

See Also

IProxyProvider Interface
Walter.Web.FireWall Namespace


IRequester Interface

Interface IRequester

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IRequester

See Also

IRequester Members
Walter.Web.FireWall Namespace


IRequester Members

The IRequester type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | IpAddress | Gets the IP address.
Public property | LoggedOnUser | Gets or sets the logged on user.
Public property | LoggedOnUserId | Gets or sets the logged on user identifier.
Public property | SessionHash | Gets or sets the session hash.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


IRequester Methods

The IRequester type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


ToString Method

IRequester..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ToString()

Return Value

A [System.String] that represents this instance.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


IRequester Properties

The IRequester type exposes the following members.

Properties

 | Name | Description
Public property | IpAddress | Gets the IP address.
Public property | LoggedOnUser | Gets or sets the logged on user.
Public property | LoggedOnUserId | Gets or sets the logged on user identifier.
Public property | SessionHash | Gets or sets the session hash.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


IpAddress Property

IRequester..::..IpAddress Property

Gets the IP address.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IpAddress { get; }

Field Value

The IP address.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


LoggedOnUser Property

IRequester..::..LoggedOnUser Property

Gets or sets the logged on user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> LoggedOnUser { get; set; }

Field Value

The logged on user.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


LoggedOnUserId Property

IRequester..::..LoggedOnUserId Property

Gets or sets the logged on user identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<int> LoggedOnUserId { get; set; }

Field Value

The logged on user identifier.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


SessionHash Property

IRequester..::..SessionHash Property

Gets or sets the session hash.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string SessionHash { get; set; }

Field Value

The session hash.

See Also

IRequester Interface
Walter.Web.FireWall Namespace


ISessionIdValidation Interface

Indicates that the model contains a SessionId with the value containing the IPageRequest.SessionId

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISessionIdValidation

See Also

ISessionIdValidation Members
Walter.Web.FireWall Namespace
IPageRequest..::..SessionId


ISessionIdValidation Members

The ISessionIdValidation type exposes the following members.

Properties

 | Name | Description
Public property | SessionId | The session ID if sessions are active

See Also

ISessionIdValidation Interface
Walter.Web.FireWall Namespace


ISessionIdValidation Properties

The ISessionIdValidation type exposes the following members.

Properties

 | Name | Description
Public property | SessionId | The session ID if sessions are active

See Also

ISessionIdValidation Interface
Walter.Web.FireWall Namespace


SessionId Property

ISessionIdValidation..::..SessionId Property

The session ID if sessions are active

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> SessionId { get; }

See Also

ISessionIdValidation Interface
Walter.Web.FireWall Namespace


ISiteMapLogger Interface

logger for site map model on the source page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISiteMapLogger

See Also

ISiteMapLogger Members
Walter.Web.FireWall Namespace


ISiteMapLogger Members

The ISiteMapLogger type exposes the following members.

Methods

 | Name | Description
Public method | TryLogSiteMap | provides a way to map possible links the user chose from when visiting a given page

See Also

ISiteMapLogger Interface
Walter.Web.FireWall Namespace


ISiteMapLogger Methods

The ISiteMapLogger type exposes the following members.

Methods

 | Name | Description
Public method | TryLogSiteMap | provides a way to map possible links the user chose from when visiting a given page

See Also

ISiteMapLogger Interface
Walter.Web.FireWall Namespace


TryLogSiteMap Method

ISiteMapLogger..::..TryLogSiteMap Method

provides a way to map possible links the user chose from when visiting a given page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogSiteMap(
    IPageRequest page,
    SiteMapDiscovery model
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
the page visited
model
Type: Walter.Web.FireWall..::..SiteMapDiscovery
the model containing the data

Return Value

See Also

ISiteMapLogger Interface
Walter.Web.FireWall Namespace


ISPIncident Class

Incidents associated to a CIDR

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ISPIncident

See Also

ISPIncident Members
Walter.Web.FireWall Namespace


ISPIncident Members

The ISPIncident type exposes the following members.

Methods

 | Name | Description
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

ISPIncident Class
Walter.Web.FireWall Namespace


ISPIncident Methods

The ISPIncident type exposes the following members.

Methods

 | Name | Description
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

ISPIncident Class
Walter.Web.FireWall Namespace


SetId Method

ISPIncident..::..SetId Method

Sets the technical identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

ISPIncident Class
Walter.Web.FireWall Namespace


SetValues Method

ISPIncident..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

ISPIncident Class
Walter.Web.FireWall Namespace


ToString Method

ISPIncident..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

ISPIncident Class
Walter.Web.FireWall Namespace


ItemCompairs Enumeration

Enum ItemCompairs tests how an item compares to it's dictionary value

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ItemCompairs

Members

Member name | Description
None | The not set
ItemNotExists | The item not exists
ItemExists | The item exists
ValueMatches | The value matches
ValueIsNotMatch | Value exists but the value does not match the projected value

Examples

The following example looks at the page header and tests if the header contains the user salt key
C#
public class HealthController : Controller
   {

       IPageRequest _page;
       IFireWall _fireWall;

       public HealthController(IPageRequest page)
       {
           _page = page;
           _fireWall = page.FireWall;

       }

       [HttpGet]
       [Produces("text/plain")]
       public string Index()
       {
           if (_page.TryHasHeader(_fireWall.Configuration.UseHeaderNames[HeaderName.UserEncryptionSalt], _page.User.GetUserSalt(), out var headerOk)
               &&  headerOk.HasFlag(ItemCompairs.ValueMatches))
           {
               return _fireWall.Report(ReportTypes.ALL);
           }
           return _fireWall.Report(ReportTypes.DEFAULT);
       }
   }

See Also

Walter.Web.FireWall Namespace
Walter.Web.FireWall..::..ItemCompairs


IUnblock Interface

Interface IUnblock interface carries information about the IP address and user combination that can be allowed to access a system

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUnblock

See Also

IUnblock Members
Walter.Web.FireWall Namespace


IUnblock Members

The IUnblock type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | CIDR | The IP address to a CIDR format (Classless Inter-Domain Routing)
Public property | OnlyUserId | Gets the user identifier, null if any user from the IP is allowed.
Public property | Reason | Gets the reason.
Public property | TriggerDate | Gets or sets the trigger date.

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


IUnblock Properties

The IUnblock type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | CIDR | The IP address to a CIDR format (Classless Inter-Domain Routing)
Public property | OnlyUserId | Gets the user identifier, null if any user from the IP is allowed.
Public property | Reason | Gets the reason.
Public property | TriggerDate | Gets or sets the trigger date.

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


Address Property

IUnblock..::..Address Property

Gets the address.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress Address { get; }

Field Value

The address.

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


CIDR Property

IUnblock..::..CIDR Property

The IP address to a CIDR format (Classless Inter-Domain Routing)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


OnlyUserId Property

IUnblock..::..OnlyUserId Property

Gets the user identifier, null if any user from the IP is allowed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<long> OnlyUserId { get; }

Field Value

The user identifier.

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


Reason Property

IUnblock..::..Reason Property

Gets the reason.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallAllowReasons Reason { get; }

Field Value

The reason.

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


TriggerDate Property

IUnblock..::..TriggerDate Property

Gets or sets the trigger date.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime TriggerDate { get; set; }

Field Value

The trigger date.

See Also

IUnblock Interface
Walter.Web.FireWall Namespace


IUriResolverDictionary Interface

Interface IUriResolver

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUriResolverDictionary

See Also

Walter.Web.FireWall Namespace


IUserIdentity Interface

Interface IUserIdentity allows interaction with the user of a given request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserIdentity

See Also

IUserIdentity Members
Walter.Web.FireWall Namespace


IUserIdentity Members

The IUserIdentity type exposes the following members.

Methods

 | Name | Description
Public method | AsFirewallUser | returns this user as a firewall user.
Public method | GetFireWallUserId | Gets the fire wall user identifier.
Public method | GetRequestor | Gets the requester, type of user with less data.
Public method | GetUserId | Gets the user identifier, null if the user is not logged in, or if the identity system does not assign integers to the users id's but strings or Guid's are used.
Public method | GetUserName | Gets the name of the user from underlying identity system.
Public method | GetUserSalt | Gets the user salt, a personal cipher key for a user and is based on the firewall identifier.
Public method | IsSpoofing | Finds-out if the user is using a fake user-agent
Public method | IsUserInRole | Determines whether [is user in role] [the specified role], implies the projects has roles enabled.
Public method | TryGetFromSession<(Of <<'(T>)>>) | Tries the get a type of T from the users session.
Public method | TryReadCookie | Try and read the cookie, the value will be deciphered and provided as the output value
Public method | TryRemoveFromSession | Tries to remove stored items from session, will return true if no exception was raised
Public method | TryStoreInSession | Tries the store the object in the users session.
Public method | WriteCookie(String, String, TimeSpan, Boolean) | Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password
Public method | WriteCookie(String, String, Boolean) | Write the string to a session cookie using the GDPR compliant cipher with the users Salt as password
Public method | WriteCookieAsync | Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password

Properties

 | Name | Description
Public property | CookiePoisoning | Cookie poisoning is the act of manipulating or forging session cookies for the purpose of bypassing security measures and achieving impersonation and breach of privacy. By forging these cookies, an attacker can impersonate a valid client, and thus gain information and perform actions on behalf of the victim
Public property | IsAuthenticated | Gets or sets a value indicating whether this instance is authenticated.
Public property | IsSearchEngine | Return one of the major supported search engine that could be discovered by the firewall
Public property | LastViolation | Gets the date-time of the last violation this user generated on the firewall rules.
Public property | PoisonesCookiesDetected | Contains the number of poisoned cookies that are in the current requests
Public property | RequestCookies | Cookies returned on the HTTP request
Public property | UserAgent | The browser that's being used by the user or bot

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


IUserIdentity Methods

The IUserIdentity type exposes the following members.

Methods

 | Name | Description
Public method | AsFirewallUser | returns this user as a firewall user.
Public method | GetFireWallUserId | Gets the fire wall user identifier.
Public method | GetRequestor | Gets the requester, type of user with less data.
Public method | GetUserId | Gets the user identifier, null if the user is not logged in, or if the identity system does not assign integers to the users id's but strings or Guid's are used.
Public method | GetUserName | Gets the name of the user from underlying identity system.
Public method | GetUserSalt | Gets the user salt, a personal cipher key for a user and is based on the firewall identifier.
Public method | IsSpoofing | Finds-out if the user is using a fake user-agent
Public method | IsUserInRole | Determines whether [is user in role] [the specified role], implies the projects has roles enabled.
Public method | TryGetFromSession<(Of <<'(T>)>>) | Tries the get a type of T from the users session.
Public method | TryReadCookie | Try and read the cookie, the value will be deciphered and provided as the output value
Public method | TryRemoveFromSession | Tries to remove stored items from session, will return true if no exception was raised
Public method | TryStoreInSession | Tries the store the object in the users session.
Public method | WriteCookie(String, String, TimeSpan, Boolean) | Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password
Public method | WriteCookie(String, String, Boolean) | Write the string to a session cookie using the GDPR compliant cipher with the users Salt as password
Public method | WriteCookieAsync | Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


AsFirewallUser Method

IUserIdentity..::..AsFirewallUser Method

returns this user as a firewall user.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallUser AsFirewallUser()

Return Value

IFirewallUser.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


GetFireWallUserId Method

IUserIdentity..::..GetFireWallUserId Method

Gets the fire wall user identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long GetFireWallUserId()

Return Value

System.Int64.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


GetRequestor Method

IUserIdentity..::..GetRequestor Method

Gets the requester, type of user with less data.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IRequester GetRequestor()

Return Value

Requester.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


GetUserId Method

IUserIdentity..::..GetUserId Method

Gets the user identifier, null if the user is not logged in, or if the identity system does not assign integers to the users id's but strings or Guid's are used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<int> GetUserId()

Return Value

System.Nullable<System.Int32>.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


GetUserName Method

IUserIdentity..::..GetUserName Method

Gets the name of the user from underlying identity system.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> GetUserName()

Return Value

System.String.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


GetUserSalt Method

IUserIdentity..::..GetUserSalt Method

Gets the user salt, a personal cipher key for a user and is based on the firewall identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string GetUserSalt()

Return Value

System.String.

Examples

Use the ability to send users a reset email after getting blocked by using a reset key specific to the user
C#
public class RejectController : Controller
   {
       private IPageRequest _page;
       private IFireWall _fireWall;
       public RejectController(IPageRequest page, IFireWall fireWall)
       {
           _page = page;
           _fireWall = fireWall;
       }

       [DisableFirewall]
       public IActionResult ResetBlockedUsers(string resetKey)
       {
          //test if the resetKey belongs to the userif (_page.User.GetUserSalt() == resetKey)
          {
             var user= _page.User.AsFirewallUser();
             _fireWall.ResetFireWallBlocking(user);
          }
          return RedirectToAction("index", "Home");
       }
   }

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


IsSpoofing Method

IUserIdentity..::..IsSpoofing Method

Finds-out if the user is using a fake user-agent

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsSpoofing()

Return Value

True if impersonating

Examples

The bellow sample makes use of the IsSpofing() method to alter the duration of blocking for the firewall blocking rules.
C#
private void FireWall_OnGuardAction(object sender, GuardActionEventArgs e)
{
   if (e.Page.User.IsSpoofing())
   {
       foreach (var item in e.Page.Incidents())
       {
           item.Expires = DateTime.UtcNow.AddDays(300);
       }
    }
}

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


IsUserInRole Method

IUserIdentity..::..IsUserInRole Method

Determines whether [is user in role] [the specified role], implies the projects has roles enabled.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsUserInRole(
    string role
)

Parameters

role
Type: String
The role.

Return Value

true if [is user in role] [the specified role]; otherwise, false.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


TryGetFromSession(T) Method

IUserIdentity..::..TryGetFromSession<(Of <(<'T>)>)> Method

Tries the get a type of T from the users session.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetFromSession<T>(
    string key,
    out Nullable<T> data
)

Type Parameters

T
The type to populate

Parameters

key
Type: String
The key to use.
data
Type: Nullable <(Of <(<'T>)>)>%
The data to convert into.

Return Value

true if successful, false otherwise.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


TryReadCookie Method

IUserIdentity..::..TryReadCookie Method

Try and read the cookie, the value will be deciphered and provided as the output value

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryReadCookie(
    string name,
    out Nullable<string> value
)

Parameters

name
Type: String
the name of the cookie
value
Type: Nullable <(Of <(<' String >)>)>%
the value as clear-text

Return Value

True if the cookie exists and could be deciphered

Remarks

if deciphering failed as a alternative cipher method was used the value will be populated and false will be returned

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


TryRemoveFromSession Method

IUserIdentity..::..TryRemoveFromSession Method

Tries to remove stored items from session, will return true if no exception was raised

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryRemoveFromSession(
    string key
)

Parameters

key
Type: String
the data with key to remove

Return Value

True if no exception

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


TryStoreInSession Method

IUserIdentity..::..TryStoreInSession Method

Tries the store the object in the users session.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryStoreInSession(
    string key,
    Object data
)

Parameters

key
Type: String
The key to use.
data
Type: Object
The data to store.

Return Value

true if successful, false otherwise.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


WriteCookie Method

IUserIdentity..::..WriteCookie Method

Overload List

 | Name | Description
Public method | WriteCookie(String, String, TimeSpan, Boolean) | Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password
Public method | WriteCookie(String, String, Boolean) | Write the string to a session cookie using the GDPR compliant cipher with the users Salt as password

See Also

IUserIdentity Interface
IUserIdentity Members
Walter.Web.FireWall Namespace


WriteCookie Method (String, String, TimeSpan, Boolean)

IUserIdentity..::..WriteCookie Method (String, String, TimeSpan, Boolean)

Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void WriteCookie(
    string name,
    string value,
    TimeSpan expires,
    bool isEssential
)

Parameters

name
Type: String
Cookie Name
value
Type: String
Cookie value
expires
Type: TimeSpan
set the expire options to use
isEssential
Type: Boolean
indicates the cookie is essential default is false

Remarks

This will cookie will not be accessible in JavaScript as it can't decipher the value

Examples

This sample shows how the user stores GDPR specific data securely using the users unique cypher key
C#
public class ShopController : Controller
{
   private readonly IPageRequest _page;
   private ILatLongRepository _latLongRepository;

   public ShopController(IPageRequest page, ILatLongRepository latLongRepository)
   {
       _page = page;
       _latLongRepository = latLongRepository;
   }

   public async Task<IActionResult> Index(ShoppingCard data)
   {
        int cardId = -1;
        if (_page.User.TryReadCookie("CredidCardId", out var sValue) && int.TryParse(sValue, out cardId))
        {
            //some magic code
        }

        _page.User.WriteCookie("CredidCardId", cardId.ToString(CultureInfo.InvariantCulture), TimeSpan.FromDays(30));

   }

See Also

IUserIdentity Interface
WriteCookie Overload
Walter.Web.FireWall Namespace


WriteCookie Method (String, String, Boolean)

IUserIdentity..::..WriteCookie Method (String, String, Boolean)

Write the string to a session cookie using the GDPR compliant cipher with the users Salt as password

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void WriteCookie(
    string name,
    string value,
    bool isEssential
)

Parameters

name
Type: String
Cookie Name
value
Type: String
Cookie value
isEssential
Type: Boolean
indicates the cookie is essential default is false

Examples

This sample shows how the user stores GDPR specific data securely using the users unique cypher key
C#
public class ShopController : Controller
{
   private readonly IPageRequest _page;
   private ILatLongRepository _latLongRepository;

   public ShopController(IPageRequest page, ILatLongRepository latLongRepository)
   {
       _page = page;
       _latLongRepository = latLongRepository;
   }

   public async Task<IActionResult> Index(ShoppingCard data)
   {
        int cardId = -1;
        if (_page.User.TryReadCookie("CredidCardId", out var sValue) && int.TryParse(sValue, out cardId))
        {
            //some magic code
        }

        _page.User.WriteCookie("CredidCardId", cardId.ToString(CultureInfo.InvariantCulture));

   }

See Also

IUserIdentity Interface
WriteCookie Overload
Walter.Web.FireWall Namespace


WriteCookieAsync Method

IUserIdentity..::..WriteCookieAsync Method

Write the string to a persistent cookie using the GDPR compliant cipher with the users Salt as password

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task WriteCookieAsync(
    string name,
    string value,
    TimeSpan expires,
    bool isEssential,
    CancellationToken cancellationToken
)

Parameters

name
Type: String
Cookie Name
value
Type: String
Cookie value
expires
Type: TimeSpan
set the expire options to use
isEssential
Type: Boolean
indicates the cookie is essential default is false
cancellationToken
Type: CancellationToken
optionally propagates notification that operations should be canceled.

Remarks

This will cookie will not be accessible in JavaScript as it can't decipher the value

Examples

This sample shows how the user stores GDPR specific data securely using the users unique cypher key
C#
public class ShopController : Controller
   {
      private readonly IPageRequest _page;
      private ILatLongRepository _latLongRepository;

      public ShopController(IPageRequest page, ILatLongRepository latLongRepository)
      {
          _page = page;
          _latLongRepository = latLongRepository;
      }

      public async Task<IActionResult> Index(ShoppingCard data)
      {
           int cardId = -1;
           if (_page.User.TryReadCookie("CredidCardId", out var sValue) && int.TryParse(sValue, out cardId))
           {
               //some magic code
           }

          await  _page.User.WriteCookieAsync("CredidCardId", cardId.ToString(CultureInfo.InvariantCulture)).ConfigureAwait(false);

      }

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


IUserIdentity Properties

The IUserIdentity type exposes the following members.

Properties

 | Name | Description
Public property | CookiePoisoning | Cookie poisoning is the act of manipulating or forging session cookies for the purpose of bypassing security measures and achieving impersonation and breach of privacy. By forging these cookies, an attacker can impersonate a valid client, and thus gain information and perform actions on behalf of the victim
Public property | IsAuthenticated | Gets or sets a value indicating whether this instance is authenticated.
Public property | IsSearchEngine | Return one of the major supported search engine that could be discovered by the firewall
Public property | LastViolation | Gets the date-time of the last violation this user generated on the firewall rules.
Public property | PoisonesCookiesDetected | Contains the number of poisoned cookies that are in the current requests
Public property | RequestCookies | Cookies returned on the HTTP request
Public property | UserAgent | The browser that's being used by the user or bot

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


CookiePoisoning Property

IUserIdentity..::..CookiePoisoning Property

Cookie poisoning is the act of manipulating or forging session cookies for the purpose of bypassing security measures and achieving impersonation and breach of privacy. By forging these cookies, an attacker can impersonate a valid client, and thus gain information and perform actions on behalf of the victim

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ICookiePoisoningRuleEngine CookiePoisoning { get; }

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


IsAuthenticated Property

IUserIdentity..::..IsAuthenticated Property

Gets or sets a value indicating whether this instance is authenticated.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsAuthenticated { get; }

Field Value

true if this instance is authenticated; otherwise, false.

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


IsSearchEngine Property

IUserIdentity..::..IsSearchEngine Property

Return one of the major supported search engine that could be discovered by the firewall

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SearchEngine IsSearchEngine { get; }

Remarks

If you need another search engine send a request and we may add it

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


LastViolation Property

IUserIdentity..::..LastViolation Property

Gets the date-time of the last violation this user generated on the firewall rules.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastViolation { get; }

Field Value

The last violation.

Remarks

The date is in UTC format use DateTime.ToLocalTime() for server time

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace
[DateTime.ToLocalTime()]


PoisonesCookiesDetected Property

IUserIdentity..::..PoisonesCookiesDetected Property

Contains the number of poisoned cookies that are in the current requests

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int PoisonesCookiesDetected { get; }

Remarks

The property CookiePoisoning allows you to access the session wide violations via the ICookiePoisoningRuleEngine

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace
IUserIdentity..::..CookiePoisoning


RequestCookies Property

IUserIdentity..::..RequestCookies Property

Cookies returned on the HTTP request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<Cookie> RequestCookies { get; }

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


UserAgent Property

IUserIdentity..::..UserAgent Property

The browser that's being used by the user or bot

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUserAgent UserAgent { get; }

See Also

IUserIdentity Interface
Walter.Web.FireWall Namespace


JavaScriptUpdatesIsUserDiscoveries Enumeration

maintains the value of the User Discovery framework JavaScript Updates that have been executed by the Page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum JavaScriptUpdatesIsUserDiscoveries

Members

Member name | Description
None | none executed
Discovery | The discovery scrip posted back
SiteMap | The site map scrip posted back
Beacon | The beacon scrip posted back

Remarks

Value is only set if using user discovery and the browser supports JavaScript

See Also

Walter.Web.FireWall Namespace


LicenseEventArgs Class

Class LicenseEventArgs is used when a license event is triggered by the firewall. Implements the [System.EventArgs]

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class LicenseEventArgs

See Also

LicenseEventArgs Members
Walter.Web.FireWall Namespace
[System.EventArgs]


LicenseEventArgs Members

The LicenseEventArgs type exposes the following members.

Constructors

 | Name | Description
Public method | LicenseEventArgs | Initializes a new instance of the LicenseEventArgs class.

Properties

 | Name | Description
Public property | DomainName | Gets the name of the domain.
Public property | Expires | Gets the expires.
Public property | HeaderName | Gets the name of the header.
Public property | Keys | Gets the keys.
Public property | LicenseLevel | Gets the license level.
Public property | Status | Gets the status.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


LicenseEventArgs Constructor

Initializes a new instance of the LicenseEventArgs class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LicenseEventArgs(
    string domainName,
    FireWallLicencedFeatures licenseLevel,
    IList<IKeyRingKey> keys,
    string headerName,
    LicenseStatus status,
    DateTime expires
)

Parameters

domainName
Type: String
Name of the domain.
licenseLevel
Type: FireWallLicencedFeatures
The license level.
keys
Type: IList<(Of <(<'IKeyRingKey>)>)>
The keys.
headerName
Type: String
Name of the header.
status
Type: Walter.BOM..::..LicenseStatus
The status.
expires
Type: DateTime
The expires.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


LicenseEventArgs Properties

The LicenseEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | DomainName | Gets the name of the domain.
Public property | Expires | Gets the expires.
Public property | HeaderName | Gets the name of the header.
Public property | Keys | Gets the keys.
Public property | LicenseLevel | Gets the license level.
Public property | Status | Gets the status.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


DomainName Property

LicenseEventArgs..::..DomainName Property

Gets the name of the domain.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DomainName { get; }

Field Value

The name of the domain.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


Expires Property

LicenseEventArgs..::..Expires Property

Gets the expires.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Expires { get; }

Field Value

The expires.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


HeaderName Property

LicenseEventArgs..::..HeaderName Property

Gets the name of the header.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string HeaderName { get; }

Field Value

The name of the header.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


Keys Property

LicenseEventArgs..::..Keys Property

Gets the keys.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<IKeyRingKey> Keys { get; }

Field Value

The keys.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


LicenseLevel Property

LicenseEventArgs..::..LicenseLevel Property

Gets the license level.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallLicencedFeatures LicenseLevel { get; }

Field Value

The license level.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


Status Property

LicenseEventArgs..::..Status Property

Gets the status.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LicenseStatus Status { get; }

Field Value

The status.

See Also

LicenseEventArgs Class
Walter.Web.FireWall Namespace


LicenseLevelChangedEventArgs Class

Class LicenseLevelChangedArgs occurs when a license lever change has been detected.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class LicenseLevelChangedEventArgs

See Also

LicenseLevelChangedEventArgs Members
Walter.Web.FireWall Namespace


LicenseLevelChangedEventArgs Members

The LicenseLevelChangedEventArgs type exposes the following members.

Constructors

 | Name | Description
Public method | LicenseLevelChangedEventArgs | Initializes a new instance of the LicenseLevelChangedEventArgs class.

Properties

 | Name | Description
Public property | DomainName | Gets the name of the domain.
Public property | Expires | Gets the expires.
Public property | LicenseLevel | Gets the license level.
Public property | Status | Gets the status.

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


LicenseLevelChangedEventArgs Constructor

Initializes a new instance of the LicenseLevelChangedEventArgs class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LicenseLevelChangedEventArgs(
    LicenseEventArgs e
)

Parameters

e
Type: Walter.Web.FireWall..::..LicenseEventArgs
The LicenseEventArgs instance containing the event data.

Exceptions

Exception | Condition
[ArgumentNullException] | e

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


LicenseLevelChangedEventArgs Properties

The LicenseLevelChangedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | DomainName | Gets the name of the domain.
Public property | Expires | Gets the expires.
Public property | LicenseLevel | Gets the license level.
Public property | Status | Gets the status.

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


DomainName Property

LicenseLevelChangedEventArgs..::..DomainName Property

Gets the name of the domain.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DomainName { get; set; }

Field Value

The name of the domain.

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


Expires Property

LicenseLevelChangedEventArgs..::..Expires Property

Gets the expires.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Expires { get; set; }

Field Value

The expires.

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


LicenseLevel Property

LicenseLevelChangedEventArgs..::..LicenseLevel Property

Gets the license level.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallLicencedFeatures LicenseLevel { get; set; }

Field Value

The license level.

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


Status Property

LicenseLevelChangedEventArgs..::..Status Property

Gets the status.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LicenseStatus Status { get; set; }

Field Value

The status.

See Also

LicenseLevelChangedEventArgs Class
Walter.Web.FireWall Namespace


LicenseSource Enumeration

Enum LicenseSource

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum LicenseSource

Members

Member name | Description
Default | The default
Disk | The disk
LicenseServer | The license server

See Also

Walter.Web.FireWall Namespace


LicenseViolation Class

Class LicenseViolation is used to count firewall license violations.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class LicenseViolation

See Also

Walter.Web.FireWall Namespace


ModelValidationErrors Structure

Model violation errors and score

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public struct ModelValidationErrors

See Also

ModelValidationErrors Members
Walter.Web.FireWall Namespace


ModelValidationErrors Members

The ModelValidationErrors type exposes the following members.

Constructors

 | Name | Description
Public method | ModelValidationErrors | create a model violation errors entry

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(ModelValidationErrors) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | BlockingContext | The context or reasons why the issue exists
Public property | BlockingSeverityScore | Score between 1 and 100 where 100 indicates a severe violation
Public property | Reason | How we found out the reason of the blocking context was generated

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


ModelValidationErrors Constructor

create a model violation errors entry

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ModelValidationErrors(
    FirewallBlockReasons reason,
    FireWallContexts blockingContext,
    int severityScore
)

Parameters

reason
Type: Walter.BOM..::..FirewallBlockReasons
The reason.
blockingContext
Type: Walter.BOM..::..FireWallContexts
The blocking context.
severityScore
Type: Int32
The severity score.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


ModelValidationErrors Methods

The ModelValidationErrors type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(ModelValidationErrors) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


Equals Method

ModelValidationErrors..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(ModelValidationErrors) | Indicates whether the current object is equal to another object of the same type.

See Also

ModelValidationErrors Structure
ModelValidationErrors Members
Walter.Web.FireWall Namespace


Equals Method (Nullable(Object))

ModelValidationErrors..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

ModelValidationErrors Structure
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (ModelValidationErrors)

ModelValidationErrors..::..Equals Method (ModelValidationErrors)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    ModelValidationErrors other
)

Parameters

other
Type: Walter.Web.FireWall..::..ModelValidationErrors
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

ModelValidationErrors Structure
Equals Overload
Walter.Web.FireWall Namespace


GetHashCode Method

ModelValidationErrors..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


ModelValidationErrors Operators

The ModelValidationErrors type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


Equality Operator

ModelValidationErrors..::..Equality Operator

Implements the == operator.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator ==(
    ModelValidationErrors left,
    ModelValidationErrors right
)

Parameters

left
Type: Walter.Web.FireWall..::..ModelValidationErrors
The left.
right
Type: Walter.Web.FireWall..::..ModelValidationErrors
The right.

Return Value

The result of the operator.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


Inequality Operator

ModelValidationErrors..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator !=(
    ModelValidationErrors left,
    ModelValidationErrors right
)

Parameters

left
Type: Walter.Web.FireWall..::..ModelValidationErrors
The left.
right
Type: Walter.Web.FireWall..::..ModelValidationErrors
The right.

Return Value

The result of the operator.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


ModelValidationErrors Properties

The ModelValidationErrors type exposes the following members.

Properties

 | Name | Description
Public property | BlockingContext | The context or reasons why the issue exists
Public property | BlockingSeverityScore | Score between 1 and 100 where 100 indicates a severe violation
Public property | Reason | How we found out the reason of the blocking context was generated

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


BlockingContext Property

ModelValidationErrors..::..BlockingContext Property

The context or reasons why the issue exists

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts BlockingContext { get; }

Field Value

The blocking context.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


BlockingSeverityScore Property

ModelValidationErrors..::..BlockingSeverityScore Property

Score between 1 and 100 where 100 indicates a severe violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int BlockingSeverityScore { get; }

Field Value

The blockin severity score.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


Reason Property

ModelValidationErrors..::..Reason Property

How we found out the reason of the blocking context was generated

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; }

Field Value

The reason.

See Also

ModelValidationErrors Structure
Walter.Web.FireWall Namespace


NetworkInformationType Enumeration

the type of connection a device is using to communicate with the network. It will be one of the following values

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum NetworkInformationType

Members

Member name | Description
None | none
Other | Other type
Unknown | unknown type
Bluetooth | Bluetooth network
Cellular | Cellular
Ethernet | Ethernet
Wifi | Wifi
Wimax | WiMAX Internet

See Also

Walter.Web.FireWall Namespace


PoisonedCookie Class

Class PoisonedCookie contains cookies that have been poisoned as well as the method of poisoning used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class PoisonedCookie

See Also

PoisonedCookie Members
Walter.Web.FireWall Namespace


PoisonedCookie Members

The PoisonedCookie type exposes the following members.

Constructors

 | Name | Description
Public method | PoisonedCookie | Initializes a new instance of the PoisonedCookie class.

Properties

 | Name | Description
Public property | Name | Gets the cookies name.
Public property | OriginalValue | Gets the original value.
Public property | PoisonedValue | Gets the poisoned value.
Public property | PoisoningMethod | Gets the poisoning method.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


PoisonedCookie Constructor

Initializes a new instance of the PoisonedCookie class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PoisonedCookie(
    Cookie data
)

Parameters

data
Type: Walter.Web.FireWall..::..Cookie
The data.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


PoisonedCookie Properties

The PoisonedCookie type exposes the following members.

Properties

 | Name | Description
Public property | Name | Gets the cookies name.
Public property | OriginalValue | Gets the original value.
Public property | PoisonedValue | Gets the poisoned value.
Public property | PoisoningMethod | Gets the poisoning method.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


Name Property

PoisonedCookie..::..Name Property

Gets the cookies name.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Name { get; }

Field Value

The name.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


OriginalValue Property

PoisonedCookie..::..OriginalValue Property

Gets the original value.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string OriginalValue { get; }

Field Value

The original value.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


PoisonedValue Property

PoisonedCookie..::..PoisonedValue Property

Gets the poisoned value.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string PoisonedValue { get; }

Field Value

The poisoned value.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


PoisoningMethod Property

PoisonedCookie..::..PoisoningMethod Property

Gets the poisoning method.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CookiePoisoningMethod PoisoningMethod { get; }

Field Value

The poisoning method.

See Also

PoisonedCookie Class
Walter.Web.FireWall Namespace


RecordedInteractions Enumeration

Enum Recorded Interactions

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RecordedInteractions

Members

Member name | Description
None | None action recored
UsesMouse | The user uses his mouse
UsesTabs | The user uses his tabs
UsesKeyboard | The user uses his keyboard
UsesTouch | The user uses his touch
Scrolls | The user uses scrolls
UsesJava | The user uses java
UsesCookies | The uses cookies

See Also

Walter.Web.FireWall Namespace


RequestersAssociations Enumeration

describes association between a resource and a requester

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RequestersAssociations

Members

Member name | Description
None | Not set
NoAssociation | No link between requested object and requester
ServedToIpAddress | The resource was send to some one or something using the given IP address
ServedToUser | The resource was send the given user on the current or on a different IP address
InCurrentSession | Was send to user or IP in the current session. This is based on session duration if session is used or 20 minutes if no session state is used
InCurrentPage | Indicates that the response is a Ajax type post-back from the current page

See Also

Walter.Web.FireWall Namespace


RoutingEndpoint Enumeration

Enum RoutingEndpoints

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RoutingEndpoint

Members

Member name | Description
None | none
IsUserApi | The is user API
SiteMapApi | Site-map API endpoint
RegisterUrlApi | The register URL discovery API

See Also

Walter.Web.FireWall Namespace


RuleNumber Enumeration

A static class used to map rule numbers to rule names (reference only)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RuleNumber

Members

Member name | Description
None | No rule applied
CrossSiteRequest | Accessing a resource from outside the domain (cross site) is rejected if the domain is not white-listed
SaltHeader | If Request contains a Salt header then Match UserSalt with header
SaltCookie | If Request contains a Salt header as well as a Salt Cookie then Match UserSalt with header and salt cookie
SessionHeader | If Request has SessionId header then it should Match the Page Session Hash
SessionCookie | If Request has SessionId header then Match Page Session Hash and user Cookie Session hash
PageGroupHeader | If Request has PageRequest Group Header then Match to Page was send to user
PageGroupCookie | If Request has PageRequest Group Header and CookieWas set then Match to Page was send to user
AddHockRequests | If resource referred by other domain then this must be enabled on the endpoint
DistributedDenialOfService | The same page would only be visited a given time in a given time span by users that do not interact with the page
HitRatioViolation | The same page would only be visited so many times by a user in a given time in a given time span
RejectKnowsMaliciousUsers | The user should not be flagged as malicious by database, cookie or session storage
RefreshViolations | The same page has been refreshed to often
PenetrationAttempt | The user provided a url that looks like a penetration attempt was made
Scrubbing | The user is not supposed to data-mine the provided data
WrongProtocol | The wrong protocol
WrongUserType | Wrong user type
BlockedGeography | If the requested resource or the firewall doesn't allow access from a geographical region then intervene
UserGenerated | User generated block request
FilterActionProtectorViolation | Action Protector filters rejected the request
ModelFilterViolation | Model did not contain a page request in the proper association
LimitedReferrersOnly | The resource or AJAX endpoint is accessed from a location that was not white-listed for the endpoint with the annotation
NotSupportedHandler | A Handler was called that is not supported
PhishyRequest | A Phishy request was detected
AgentsConsideredMalicious | A bad browser was used
PoisonedCookies | The user provided a cookies have been altered, looks penetration attempt are made
AgentsReputationBlocksAccess | the agents reputation blocks access to the resource
NavigationOutsideRenederedSiteMap | The user navigated to a link that was not provided to him
RejectPortScanners | The reject port scanners
RejectHoneyPotTraps | accessed a link that was set to be a honey pot
RejectAPIAccess | API access is not allowed
RejectAccessForISP | Internet service provider is blocked
RejectAccessUAForISP | Internet service provider blocks User Agent
RejectTCPResetAttacks | a possible TCP reset attack received
TCPResetAttack | A TCP reset attack detected
BlacklistedUser | The user was blacklisted
BlacklistedIPAddress | The IP address was blacklisted
BlacklistedInterNetServiceProvider | The Internet service provider was blacklisted
BlacklistedCountry | The country was blacklisted
CSPReportGeneratedByBrowser | The browser triggered a CSP violation
PortPhishyRequest | A request from a source intercepted that attempted to access the application as well as monitored non application ports
CommonVulnerabilitiesExposuresExploits | A known Common Vulnerabilities and Exposures exploits (CVE)

Remarks

Please note that rule numbers can be updated when the firewall get's updated or the subscription engine provides rules that are not included in this list

See Also

Walter.Web.FireWall Namespace


SecurityViolationException Class

Security violations exceptions are raised to communicate violations to the consumer and contain information on the violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class SecurityViolationException

See Also

SecurityViolationException Members
Walter.Web.FireWall Namespace


SecurityViolationException Members

The SecurityViolationException type exposes the following members.

Constructors

 | Name | Description
Public method | SecurityViolationException(String, IPageRequest) | Initializes a new instance of the SecurityViolationException class.
Public method | SecurityViolationException(String, IPageRequest, IEnumerable<(Of <<'(FirewallBlockReasons>)>>)) | Initializes a new instance of the SecurityViolationException class.

Properties

 | Name | Description
Public property | Page | Details about the page
Public property | Reasons | Reasons the violations occurred

See Also

SecurityViolationException Class
Walter.Web.FireWall Namespace


SecurityViolationException Constructor

Overload List

 | Name | Description
Public method | SecurityViolationException(String, IPageRequest) | Initializes a new instance of the SecurityViolationException class.
Public method | SecurityViolationException(String, IPageRequest, IEnumerable<(Of <<'(FirewallBlockReasons>)>>)) | Initializes a new instance of the SecurityViolationException class.

See Also

SecurityViolationException Class
SecurityViolationException Members
Walter.Web.FireWall Namespace


SecurityViolationException Constructor (String, IPageRequest)

Initializes a new instance of the SecurityViolationException class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SecurityViolationException(
    string message,
    IPageRequest page
)

Parameters

message
Type: String
The message.
page
Type: Walter.Web.FireWall..::..IPageRequest
The page.

See Also

SecurityViolationException Class
SecurityViolationException Overload
Walter.Web.FireWall Namespace


SecurityViolationException Constructor (String, IPageRequest, IEnumerable(FirewallBlockReasons))

SecurityViolationException Constructor (String, IPageRequest, IEnumerable<(Of <(<'FirewallBlockReasons>)>)>)

Initializes a new instance of the SecurityViolationException class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SecurityViolationException(
    string message,
    IPageRequest page,
    IEnumerable<FirewallBlockReasons> reasons
)

Parameters

message
Type: String
The message.
page
Type: Walter.Web.FireWall..::..IPageRequest
The page.
reasons
Type: IEnumerable<(Of <(<' FirewallBlockReasons >)>)>
The reasons.

See Also

SecurityViolationException Class
SecurityViolationException Overload
Walter.Web.FireWall Namespace


SecurityViolationException Properties

The SecurityViolationException type exposes the following members.

Properties

 | Name | Description
Public property | Page | Details about the page
Public property | Reasons | Reasons the violations occurred

See Also

SecurityViolationException Class
Walter.Web.FireWall Namespace


Page Property

SecurityViolationException..::..Page Property

Details about the page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Page { get; }

Field Value

The page.

See Also

SecurityViolationException Class
Walter.Web.FireWall Namespace


Reasons Property

SecurityViolationException..::..Reasons Property

Reasons the violations occurred

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<FirewallBlockReasons> Reasons { get; }

Field Value

The reasons.

See Also

SecurityViolationException Class
Walter.Web.FireWall Namespace


SiteMapDiscovery Class

Class used for the site-map discovery firewall Url validation.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class SiteMapDiscovery : IModelValidationContext,
    ISiteMapDiscovery

See Also

SiteMapDiscovery Members
Walter.Web.FireWall Namespace


SiteMapDiscovery Members

The SiteMapDiscovery type exposes the following members.

Constructors

 | Name | Description
Public method | SiteMapDiscovery()()()() | creates a site-map discovery object used with url validation

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(SiteMapDiscovery>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | IsValid | Model validation for a given model in context to the user that might have been sending it. It can be that a model contains good data, but the model was generated by a re-play or generated during a penetration attempt

Properties

 | Name | Description
Public property | PageRequestGroupId | Gets or sets the page request group identifier.
Public property | Path | the path in the site, this is a "relative" URL of the page sending the linked pages.
Public property | Root | The root of the page sending the linked pages
Public property | SessionId | session Id assigned by ASP.net to the users session
Public property | TraceIdentifier | Gets or sets the trace identifier for the page.
Public property | Url | The full URL of the page sending the linked pages.
Public property | UserId | The user ID as set by the script

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


SiteMapDiscovery Constructor

creates a site-map discovery object used with url validation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapDiscovery()

See Also

SiteMapDiscovery Class
#ctor Overload
Walter.Web.FireWall Namespace


SiteMapDiscovery Methods

The SiteMapDiscovery type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(SiteMapDiscovery>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | IsValid | Model validation for a given model in context to the user that might have been sending it. It can be that a model contains good data, but the model was generated by a re-play or generated during a penetration attempt

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


Equals Method

SiteMapDiscovery..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(SiteMapDiscovery>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

SiteMapDiscovery Class
SiteMapDiscovery Members
Walter.Web.FireWall Namespace


Equals Method (Nullable(Object))

SiteMapDiscovery..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

SiteMapDiscovery Class
Equals Overload
Walter.Web.FireWall Namespace


Equals Method (Nullable(SiteMapDiscovery))

SiteMapDiscovery..::..Equals Method (Nullable<(Of <(<'SiteMapDiscovery>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<SiteMapDiscovery> other
)

Parameters

other
Type: Nullable <(Of <(<' SiteMapDiscovery >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

SiteMapDiscovery Class
Equals Overload
Walter.Web.FireWall Namespace


GetHashCode Method

SiteMapDiscovery..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


IsValid Method

SiteMapDiscovery..::..IsValid Method

Model validation for a given model in context to the user that might have been sending it. It can be that a model contains good data, but the model was generated by a re-play or generated during a penetration attempt

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsValid(
    out IReadOnlyList<ModelValidationErrors> modelErrors
)

Parameters

modelErrors
Type: IReadOnlyList<(Of <(<' ModelValidationErrors >)>)>%
The errors discovered if any

Return Value

TRue if valid, false if not

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


SiteMapDiscovery Properties

The SiteMapDiscovery type exposes the following members.

Properties

 | Name | Description
Public property | PageRequestGroupId | Gets or sets the page request group identifier.
Public property | Path | the path in the site, this is a "relative" URL of the page sending the linked pages.
Public property | Root | The root of the page sending the linked pages
Public property | SessionId | session Id assigned by ASP.net to the users session
Public property | TraceIdentifier | Gets or sets the trace identifier for the page.
Public property | Url | The full URL of the page sending the linked pages.
Public property | UserId | The user ID as set by the script

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


PageRequestGroupId Property

SiteMapDiscovery..::..PageRequestGroupId Property

Gets or sets the page request group identifier.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestGroupId { get; set; }

Field Value

The page request group identifier.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


Path Property

SiteMapDiscovery..::..Path Property

the path in the site, this is a "relative" URL of the page sending the linked pages.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Path { get; set; }

Field Value

The path.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


Root Property

SiteMapDiscovery..::..Root Property

The root of the page sending the linked pages

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Root { get; set; }

Field Value

The root.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


SessionId Property

SiteMapDiscovery..::..SessionId Property

session Id assigned by ASP.net to the users session

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> SessionId { get; set; }

Field Value

The session identifier.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


TraceIdentifier Property

SiteMapDiscovery..::..TraceIdentifier Property

Gets or sets the trace identifier for the page.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> TraceIdentifier { get; set; }

Field Value

The trace identifier.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


Url Property

SiteMapDiscovery..::..Url Property

The full URL of the page sending the linked pages.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> Url { get; }

Field Value

The URL.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


UserId Property

SiteMapDiscovery..::..UserId Property

The user ID as set by the script

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UserId { get; set; }

Field Value

The user identifier.

See Also

SiteMapDiscovery Class
Walter.Web.FireWall Namespace


TrustingSites Enumeration

Sites that are trusted by the firewall a allowed site will not raise as violation for cross site scripting. Please note that you have no control over 3rd party sites and a compromised 3rd party site will be able to inject malicious content in your page without you knowing,

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum TrustingSites

Members

Member name | Description
None | not a valid option
Self | will trust the site and the url and content in it's sub folders
SubDomains | trust own sub domains
Google | will add *.googleapis.com and *.google.com
Jquery | will add *.jquery.com
YouTube | will trust *.youTube.com ///
AspNetCDN | will trust aspnetcdn.com
Bootstrap | will trust *.bootstrapcdn.com
Facebook | Will trust facebook.com

See Also

Walter.Web.FireWall Namespace


UserTypes Enumeration

Types of users that are discovered and that can be filtered on. ///

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum UserTypes

Members

Member name | Description
None | No user type filter is defined and no checking based on user type will be done.
NotDiscovered | The user type is not been discovered at this moment
IsHuman | The user type has been discovered and is a human
IsSearchEngine | The user is a search engine supported by the SearchEngine enum
IsIsp | The user is coming from a cloud data center, could be an Internet service provider or a scrubbing engine
IsBot | The user type is a automated process interacting with your endpoint
IsMalicious | The is consumer is known to be malicious (is a behavior and not a user type therefore not included in anyone)
IsUsingDeveloperTools | The is consumer is known to be using developer tools (is a behavior and not a user type therefore not included in anyone)
IsCrossSiteUser | User is consuming resources from like script from another domain
IsCrossSiteSubmitting | User executed a HttpPost, HttpDelete, or an HttpPut to the web application from a another domain
IsUsingPortScanning | The is using port scanning tools to access the application via a port he is not intended to do
IsAcessingHoneypotEndpoints | The is accessing on of the application honey-pot endpoints
IsTriggeringCSPViolationsInTheBrowser | The user is triggering CSP violation in the browser
Anyone | Anyone has access, this is different from None as not defined is only valid if no firewall attribute is set and does not include users flagged with suspicious activity like cross-site actions or IsMalicious or IsUsingDeveloperTools flaggs
All | all options

Remarks

When used in the context of a filtered the user must be a given group. You can specify access to controllers, pages and actions on given user types.

The IFireWall.Configuration.Rules class can be used to configure default rules to allow or disallow access to endpoints to static files.

See Also

Walter.Web.FireWall Namespace


ViolationStatusCode Enumeration

configurable status codes used by Denial of Service Status Codes used by Firewall rather then returning a regular status codes masking the fact that we have discovered the intend.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ViolationStatusCode

Members

Member name | Description
None | application failed to retrieve status code due to exception
OK | The okay status codes, should be avoided as it will only make them try harder....
NoContent | The no content status codes
Unauthorized | The unauthorized status codes
Forbidden | The forbidden status codes
NotFound | The not found status codes
MethodNotAllowed | The method not allowed status codes
NotAcceptable | The not acceptable status codes
Conflict | The conflict status codes
Gone | The gone status code
InternalServerError | The internal server error status codes
NotImplemented | The not implemented status codes
ServiceUnavailable | The service unavailable status codes
BandwidthLimitExceeded | The bandwidth limit exceeded status codes

See Also

Walter.Web.FireWall Namespace
[Microsoft.AspNetCore.Http.StatusCodes]


Walter.Web.FireWall.Administration Namespace

Classes

 | Class | Description
Public class | AbuseBaseController | Class AbuseBaseController is a abstract controller that can be used to easily read reports from disk. Implements the [Microsoft.AspNetCore.Mvc.Controller]
Public class | AbuseReportViewModel | Class AbuseReportViewModel. is returned by the AbuseBaseController controller when calling the GetReport method/>.

Enumerations

 | Enumeration | Description
Public enumeration | ReportStorageLocation | The settings indicating report storage location


AbuseBaseController Class

Class AbuseBaseController is a abstract controller that can be used to easily read reports from disk. Implements the [Microsoft.AspNetCore.Mvc.Controller]

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class AbuseBaseController

See Also

AbuseBaseController Members
Walter.Web.FireWall.Administration Namespace
[Microsoft.AspNetCore.Mvc.Controller]


AbuseBaseController Members

The AbuseBaseController type exposes the following members.

Methods

 | Name | Description
 | GetPdf(FileInfo) | Gets the PDF and return this to the user for download.
 | GetPdf(String) | Gets the PDF and return this to the user for download.
 | GetPdf(FileInfo, String) | Gets the PDF and return this to the user for download.
 | GetPdf(String, String) | Gets the PDF and return this to the user for download.
Protected method | GetReport | Gets the PDF based on the GUID of the report ID.
 | GetReports()()()() | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
 | GetReports(TimeSpan) | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
 | GetReports(IWhois) | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
 | GetReports(Int64) | Gets the reports.

See Also

AbuseBaseController Class
Walter.Web.FireWall.Administration Namespace


AbuseBaseController Methods

The AbuseBaseController type exposes the following members.

Methods

 | Name | Description
 | GetPdf(FileInfo) | Gets the PDF and return this to the user for download.
 | GetPdf(String) | Gets the PDF and return this to the user for download.
 | GetPdf(FileInfo, String) | Gets the PDF and return this to the user for download.
 | GetPdf(String, String) | Gets the PDF and return this to the user for download.
Protected method | GetReport | Gets the PDF based on the GUID of the report ID.
 | GetReports()()()() | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
 | GetReports(TimeSpan) | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
 | GetReports(IWhois) | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
 | GetReports(Int64) | Gets the reports.

See Also

AbuseBaseController Class
Walter.Web.FireWall.Administration Namespace


GetPdf Method

AbuseBaseController..::..GetPdf Method

Overload List

Name | Description
GetPdf(FileInfo) | Gets the PDF and return this to the user for download.
GetPdf(String) | Gets the PDF and return this to the user for download.
GetPdf(FileInfo, String) | Gets the PDF and return this to the user for download.
GetPdf(String, String) | Gets the PDF and return this to the user for download.

See Also

AbuseBaseController Class
AbuseBaseController Members
Walter.Web.FireWall.Administration Namespace


GetPdf Method (FileInfo)

AbuseBaseController..::..GetPdf Method (FileInfo)

Gets the PDF and return this to the user for download.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static FileContentResult GetPdf(
    FileInfo file
)

Parameters

file
Type: FileInfo
The file.

Return Value

FileResult.

Exceptions

Exception | Condition
[System.ArgumentNullException] | file

See Also

AbuseBaseController Class
GetPdf Overload
Walter.Web.FireWall.Administration Namespace


GetPdf Method (String)

AbuseBaseController..::..GetPdf Method (String)

Gets the PDF and return this to the user for download.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static FileContentResult GetPdf(
    string fileName
)

Parameters

fileName
Type: String
The file.

Return Value

FileResult.

Exceptions

Exception | Condition
[System.ArgumentException] | fileName

See Also

AbuseBaseController Class
GetPdf Overload
Walter.Web.FireWall.Administration Namespace


GetPdf Method (FileInfo, String)

AbuseBaseController..::..GetPdf Method (FileInfo, String)

Gets the PDF and return this to the user for download.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static FileStreamResult GetPdf(
    FileInfo file,
    string downloadFileName
)

Parameters

file
Type: FileInfo
The file.
downloadFileName
Type: String
the file name to suggest

Return Value

FileResult.

Exceptions

Exception | Condition
[System.ArgumentNullException] | file
[System.ArgumentException] | '{nameof(downloadFileName)}' cannot be null or empty. - downloadFileName

See Also

AbuseBaseController Class
GetPdf Overload
Walter.Web.FireWall.Administration Namespace


GetPdf Method (String, String)

AbuseBaseController..::..GetPdf Method (String, String)

Gets the PDF and return this to the user for download.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static FileStreamResult GetPdf(
    string fileName,
    string downloadFileName
)

Parameters

fileName
Type: String
The file.
downloadFileName
Type: String
the file name to suggest

Return Value

FileStreamResult.

See Also

AbuseBaseController Class
GetPdf Overload
Walter.Web.FireWall.Administration Namespace


GetReport Method

AbuseBaseController..::..GetReport Method

Gets the PDF based on the GUID of the report ID.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[IgnoreAttribute]
protected IActionResult GetReport(
    string id
)

Parameters

id
Type: String
The identifier.

Return Value

IActionResult.

See Also

AbuseBaseController Class
Walter.Web.FireWall.Administration Namespace


GetReports Method

AbuseBaseController..::..GetReports Method

Overload List

Name | Description
GetReports()()()() | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
GetReports(TimeSpan) | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
GetReports(IWhois) | Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.
GetReports(Int64) | Gets the reports.

See Also

AbuseBaseController Class
AbuseBaseController Members
Walter.Web.FireWall.Administration Namespace


GetReports Method

AbuseBaseController..::..GetReports Method

Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static IReadOnlyList<AbuseReportViewModel> GetReports()

Return Value

IReadOnlyList<System.ValueTuple<IWhois, AbuseReportMetaData, FileInfo>>.

Examples

sample implementation
implement the AbuseController using the AbuseBaseController
public class AbuseController : AbuseBaseController
   {
       const string cashKey = "__AbuseReports";
       private readonly IMemoryCache _memory;
       List<AbuseReportViewModel> _data;

       public AbuseController(IMemoryCache memory,IFireWallConfig config )
       {
           _memory = memory;
           if (!memory.TryGetValue<List<AbuseReportViewModel>>(cashKey, out var data))
           {

               data = new List<AbuseReportViewModel>( base.GetReports());
               memory.Set<List<AbuseReportViewModel>>(cashKey, data,config.Cashing.UserSession);
           }
           _data = data;

       }

       public IActionResult Index()
       {
           return View(_data);
       }

       public IActionResult Download(string id)
       {
            //pass a string using index isp and index report avoiding the need to show file paths to users of the site
           string[] values = id.Split('.');
           if (values.Length == 2 && int.TryParse(values[0], out int isp)
               && isp>-1
               && int.TryParse(values[1], out int report)
               && report>-1
               && _data.Count > isp
               && _data[isp].Reports.Count > report
               && System.IO.File.Exists(_data[isp].Reports[report].Pdf) )
           {
               return File(System.IO.File.ReadAllBytes(_data[isp].Reports[report].Pdf),"application/pdf",System.IO.Path.GetFileName(_data[isp].Reports[report].Pdf));
           }

           return RedirectToAction(nameof(Index));
       }

   }

See Also

AbuseBaseController Class
GetReports Overload
Walter.Web.FireWall.Administration Namespace


GetReports Method (TimeSpan)

AbuseBaseController..::..GetReports Method (TimeSpan)

Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static IReadOnlyList<AbuseReportViewModel> GetReports(
    TimeSpan age
)

Parameters

age
Type: TimeSpan
The age of how old the report may be

Return Value

IReadOnlyList<System.ValueTuple<IWhois, AbuseReportMetaData, FileInfo>>.

See Also

AbuseBaseController Class
GetReports Overload
Walter.Web.FireWall.Administration Namespace


GetReports Method (IWhois)

AbuseBaseController..::..GetReports Method (IWhois)

Gets all reports stored on disk in combination with the WHOIS data and a link to the Pdf file.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static IReadOnlyList<AbuseReportViewModel> GetReports(
    IWhois ISP
)

Parameters

ISP
Type: IWhois
The ISP that you are interested in

Return Value

IReadOnlyList<System.ValueTuple<IWhois, AbuseReportMetaData, FileInfo>>.

Exceptions

Exception | Condition
[System.ArgumentNullException] | ISP

See Also

AbuseBaseController Class
GetReports Overload
Walter.Web.FireWall.Administration Namespace


GetReports Method (Int64)

AbuseBaseController..::..GetReports Method (Int64)

Gets the reports.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static IReadOnlyList<AbuseReportViewModel> GetReports(
    long rangeId
)

Parameters

rangeId
Type: Int64
The range identifier.

Return Value

IReadOnlyList<AbuseReportViewModel>.

See Also

AbuseBaseController Class
GetReports Overload
Walter.Web.FireWall.Administration Namespace


AbuseReportViewModel Class

Class AbuseReportViewModel. is returned by the AbuseBaseController controller when calling the GetReport method/>.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class AbuseReportViewModel

See Also

AbuseReportViewModel Members
Walter.Web.FireWall.Administration Namespace


AbuseReportViewModel Members

The AbuseReportViewModel type exposes the following members.

Properties

 | Name | Description
Public property | County | Gets the county.
Public property | First | Gets the first possible date in the report scope.
Public property | ICAN | Gets the ican.
Public property | IPRangeEnds | Gets the ip range ends.
Public property | IPRangeStart | Gets the ip range start.
Public property | Last | Gets the last possible date the report date scope.
Public property | Organization | Gets the organization.
Public property | OrganizationAddress | Gets the organization address.
Public property | RangeId | Gets the range identifier.
Public property | RangeName | Gets the name of the range.
Public property | Reports | Gets the reports.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


AbuseReportViewModel Properties

The AbuseReportViewModel type exposes the following members.

Properties

 | Name | Description
Public property | County | Gets the county.
Public property | First | Gets the first possible date in the report scope.
Public property | ICAN | Gets the ican.
Public property | IPRangeEnds | Gets the ip range ends.
Public property | IPRangeStart | Gets the ip range start.
Public property | Last | Gets the last possible date the report date scope.
Public property | Organization | Gets the organization.
Public property | OrganizationAddress | Gets the organization address.
Public property | RangeId | Gets the range identifier.
Public property | RangeName | Gets the name of the range.
Public property | Reports | Gets the reports.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


County Property

AbuseReportViewModel..::..County Property

Gets the county.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string County { get; }

Field Value

The county.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


First Property

AbuseReportViewModel..::..First Property

Gets the first possible date in the report scope.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime First { get; set; }

Field Value

The first.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


ICAN Property

AbuseReportViewModel..::..ICAN Property

Gets the ican.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri ICAN { get; }

Field Value

The ican.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


IPRangeEnds Property

AbuseReportViewModel..::..IPRangeEnds Property

Gets the ip range ends.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress IPRangeEnds { get; }

Field Value

The ip range ends.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


IPRangeStart Property

AbuseReportViewModel..::..IPRangeStart Property

Gets the ip range start.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress IPRangeStart { get; }

Field Value

The ip range start.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


Last Property

AbuseReportViewModel..::..Last Property

Gets the last possible date the report date scope.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Last { get; set; }

Field Value

The last.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


Organization Property

AbuseReportViewModel..::..Organization Property

Gets the organization.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Organization { get; }

Field Value

The organization.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


OrganizationAddress Property

AbuseReportViewModel..::..OrganizationAddress Property

Gets the organization address.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string OrganizationAddress { get; }

Field Value

The organization address.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


RangeId Property

AbuseReportViewModel..::..RangeId Property

Gets the range identifier.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long RangeId { get; }

Field Value

The range identifier.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


RangeName Property

AbuseReportViewModel..::..RangeName Property

Gets the name of the range.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RangeName { get; }

Field Value

The name of the range.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


Reports Property

AbuseReportViewModel..::..Reports Property

Gets the reports.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<AbuseReportMetaData> Reports { get; }

Field Value

The reports.

See Also

AbuseReportViewModel Class
Walter.Web.FireWall.Administration Namespace


ReportStorageLocation Enumeration

The settings indicating report storage location

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ReportStorageLocation

Members

Member name | Description
StoredOnDisk | Data stored from or on disk
StoredInTable | Data stored from or in a table

See Also

Walter.Web.FireWall.Administration Namespace


Walter.Web.FireWall.Annotations Namespace

Classes

 | Class | Description
Public class | ActionProtectorAttribute | Class ActionProtectorAttribute allows you to discover malicious activity against actions and the models that are posted to these actions
Public class | AddhockAttribute | Reject add-hock requests
Public class | BaseFireWallAttribute | base class for firewall annotation attributes
Public class | BlockDurationAttribute | This attribute allows you to configure a specific rule on a controller or a specific action end enables you to specify how long something should be blocked. Implements the [System.Attribute]
Public class | BrowserIntentionsAttribute | Block content based on the user-agent's reputation
Public class | CrossSiteAttribute | Prevents Cross-site request (or CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported!
Public class | DisableFirewallAttribute | Disables all rules and validations on an endpoint(s) by the firewall, basically it's an Always-Off for an endpoint
Public class | FireWallAttribute | Protects and block any requests that are in violation on URL type pattern attacks and allow only a the specified user types
Public class | FireWallConfigurationAttribute | FireWall configuration element
Public class | GeoBlockAttribute | This annotation allows for the granular control GEO blocking in the firewall if GEO blocking modules are registered in service configuration
Public class | GeoIgnoreAttribute | Tells the Firewall to ignore geographically access filters to an endpoint Implements the [System.Attribute]
Public class | HitRatioAttribute | The hit ratio attribute set rule of how often a user is allowed to access the action in a given time. This method specifically helps when protecting probing password recovery or logins or resubmitting the same page scrubbing for data.
Public class | HoneyPotTrapAttribute | annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious
Public class | IgnoreAttribute | Tells the firewall to ignore this controller or action and perform no actions at all. This is especially use full for those endpoints that do error handling. Implements the [System.Attribute]
Public class | ISPTrustLevelAttribute | Internet service provider reputation level filter
Public class | KnownBadBoysAttribute | Reject known malicious users
Public class | LimitReffererAttribute | Attribute used to limit the locations where your API or Action can be called from. to a singe resource
Public class | MaliciousUserAgentsAttribute | Will reject all requests from UserAgents used by bots or browsers that are considered to me malicious
Public class | MinifyAttribute | Will minify the Razor output if the request is a HTTPGet and does not contain an error.
Public class | ModelFilterAttribute | Validates that the model send back to the application is in the right scope
Public class | NoCacheAttribute | Tells the razor engine to include not cash the response in any form or way guarantying that the action is re-executed
Public class | PageRefreshAttribute | Tells the firewall how ofter a page can be refreshed by the user during a page visit. Implements the [System.Attribute]
Public class | PageScrubbingAttribute | Page scrubbing attribute indicates that the endpoint will be protected from data scrubbing
Public class | PoisonedCookiesAttribute | Rule for dealing with poisoned cookies
Public class | SecureCookiesAttribute | Ensure that all cookies are secure unless explicitly specified and data in the cookie is GDPR protected if at all possible
Public class | SiteMapAttribute | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)
Public class | UsersAttribute | Class FireWallAttribute stating what type of consumers are allowed. Helps mitigate scrubbing and bots reading the sites data
Public class | WhiteListIPAttribute | White-List IP address single or ranges for a specific guard action
Public class | WhiteListSubnetAttribute | AllowRaiseIncident access only to all resources if they are in the same subnet as the server

Structures

 | Structure | Description
Public structure | WhiteListSubnetAttribute..::..IPRange | Struct IPRange

Interfaces

 | Interface | Description
Public interface | IEndpointBlockRule | the blocking rule assigned to an endpoint
Public interface | IEndpointRule | the rule assigned to an endpoint

Enumerations

 | Enumeration | Description
Public enumeration | FireWallConfigurationElement | Configuration element informing the firewall of the capability the endpoint


ActionProtectorAttribute Class

Class ActionProtectorAttribute allows you to discover malicious activity against actions and the models that are posted to these actions

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ActionProtectorAttribute : ProtectorBase

Remarks

At the moment the framework only supports actions with 1 parameter. We expect you to have a view model that will satisfy ModelState property of a controller

Examples

This sample comes from the getting started manual. This manual does contain quite a few samples for you to use in your projects
C#
[HttpPost]
   [Ignore(skip: FireWallGuardActions.RejectWrongUserType)]
   [ActionProtector(blockAfterInvalidModelCount: 5
   , redirectToController: "home"
   , redirectToAction: "blocked", passModel: false)]
   [ValidateAntiForgeryToken]
   public IActionResult Captcha(CaptchaModel model)
   {
   var user = _page.User.AsFirewallUser();
   //1. Make sure the page came from the web application
   if (_page.Referrer is null
   || !_fireWall.License.IsLicensedDomain(_page.Referrer)
   || !_page.Referrer.AbsolutePath.Contains("Captcha", StringComparison.Ordinal))
   {
   //if was triggered by a search engine then ignore it else flag it
   if (_page.User.IsSearchEngine != SearchEngine.NotSure)
   {
   user.UserType |= UserTypes.IsMalicious | UserTypes.IsUsingDeveloperTools;
   }
   }
   // 2. Make sure the user passed the simple test
   if (!ModelState.IsValid)
   {
   if (user.ModelBlockCount - model.ErrorCount > 3)
   {
   user.UserType |= UserTypes.IsMalicious;
   }
   return View(model);
   }
   // 3. Reject to the blocked action for user error
   //    message if we discovered spoofing or other unwanted
   //    activities.
   if (_page.User.IsSpoofing()
   || user.UserType.HasFlag(UserTypes.IsMalicious)
   || user.UserType.HasFlag(UserTypes.IsUsingDeveloperTools))
   {
   return RedirectToActionPermanent("Blocked");
   }
   switch (user.UserType)
   {
   case UserTypes.IsHuman:
   case UserTypes.IsSearchEngine:
   return Redirect(model.RedirectTo);
   case UserTypes.NotDiscovered:
   return View(model);
   default:
   return RedirectToAction("Blocked");
   }
   }

Inheritance Hierarchy

Walter.Web.FireWall.Filters..::..ProtectorBase
Walter.Web.FireWall.Annotations..::..ActionProtectorAttribute

See Also

ActionProtectorAttribute Members
Walter.Web.FireWall.Annotations Namespace
[Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute]
[Microsoft.AspNetCore.Mvc.Filters.IActionFilter]
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


ActionProtectorAttribute Members

The ActionProtectorAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | ActionProtectorAttribute()()()() | Initializes a new instance of the ActionProtectorAttribute class.
Public method | ActionProtectorAttribute(Int32, String, String, Boolean) | Initializes a new instance of the ActionProtectorAttribute class.

Properties

 | Name | Description
Public property | BlockAfterInvalidModelCount | Gets or sets the block after invalid model count.
Public property | BlockDuration | Gets or sets the duration of the block.
Public property | PassModel | If true the model will be passed to the endpoint if the call is not valid, else null will be provided making it safe for users and prevent malicious model being send to the web application
Public property | RedirectToAction | Optionally redirect to a given action or the index of a controller
Public property | RedirectToController | Optionally redirect to a given controller

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


ActionProtectorAttribute Constructor

Overload List

 | Name | Description
Public method | ActionProtectorAttribute()()()() | Initializes a new instance of the ActionProtectorAttribute class.
Public method | ActionProtectorAttribute(Int32, String, String, Boolean) | Initializes a new instance of the ActionProtectorAttribute class.

See Also

ActionProtectorAttribute Class
ActionProtectorAttribute Members
Walter.Web.FireWall.Annotations Namespace


ActionProtectorAttribute Constructor

Initializes a new instance of the ActionProtectorAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ActionProtectorAttribute()

See Also

ActionProtectorAttribute Class
ActionProtectorAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


ActionProtectorAttribute Constructor (Int32, String, String, Boolean)

Initializes a new instance of the ActionProtectorAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ActionProtectorAttribute(
    int blockAfterInvalidModelCount,
    string redirectToController,
    string redirectToAction,
    bool passModel
)

Parameters

blockAfterInvalidModelCount
Type: Int32
The block after invalid model count.
redirectToController
Type: String
The redirect to controller.
redirectToAction
Type: String
The redirect to action.
passModel
Type: Boolean
if set to true it will try and pass the model to the redirected action.

See Also

ActionProtectorAttribute Class
ActionProtectorAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


ActionProtectorAttribute Properties

The ActionProtectorAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockAfterInvalidModelCount | Gets or sets the block after invalid model count.
Public property | BlockDuration | Gets or sets the duration of the block.
Public property | PassModel | If true the model will be passed to the endpoint if the call is not valid, else null will be provided making it safe for users and prevent malicious model being send to the web application
Public property | RedirectToAction | Optionally redirect to a given action or the index of a controller
Public property | RedirectToController | Optionally redirect to a given controller

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockAfterInvalidModelCount Property

ActionProtectorAttribute..::..BlockAfterInvalidModelCount Property

Gets or sets the block after invalid model count.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int BlockAfterInvalidModelCount { get; }

Field Value

The block after invalid model count.

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockDuration Property

ActionProtectorAttribute..::..BlockDuration Property

Gets or sets the duration of the block.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<TimeSpan> BlockDuration { get; set; }

Field Value

The duration of the block.

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


PassModel Property

ActionProtectorAttribute..::..PassModel Property

If true the model will be passed to the endpoint if the call is not valid, else null will be provided making it safe for users and prevent malicious model being send to the web application

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool PassModel { get; }

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


RedirectToAction Property

ActionProtectorAttribute..::..RedirectToAction Property

Optionally redirect to a given action or the index of a controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectToAction { get; }

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


RedirectToController Property

ActionProtectorAttribute..::..RedirectToController Property

Optionally redirect to a given controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectToController { get; }

See Also

ActionProtectorAttribute Class
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Class

Reject add-hock requests

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class AddhockAttribute : BaseFireWallAttribute

Remarks

Add-hock requests are requests that are "coming from nowhere" and can be used to protect things like down loadable resources

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..AddhockAttribute

See Also

AddhockAttribute Members
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Members

The AddhockAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | AddhockAttribute()()()() | Reject add-hock requests allow only internal and trusted cross site domains
Public method | AddhockAttribute(String, String) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller
Public method | AddhockAttribute(String, String, Int32, TimeSpan) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller
Public method | AddhockAttribute(String, String, Int32, Int32) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller
Public method | AddhockAttribute(Uri, Int32) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL
Public method | AddhockAttribute(Uri, Int32, TimeSpan) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL
Public method | AddhockAttribute(Uri) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | Equals(Nullable<(Of <<'(AddhockAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

AddhockAttribute Class
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor

Overload List

 | Name | Description
Public method | AddhockAttribute()()()() | Reject add-hock requests allow only internal and trusted cross site domains
Public method | AddhockAttribute(String, String) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller
Public method | AddhockAttribute(String, String, Int32, TimeSpan) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller
Public method | AddhockAttribute(String, String, Int32, Int32) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller
Public method | AddhockAttribute(Uri, Int32) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL
Public method | AddhockAttribute(Uri, Int32, TimeSpan) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL
Public method | AddhockAttribute(Uri) | Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL

See Also

AddhockAttribute Class
AddhockAttribute Members
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor

Reject add-hock requests allow only internal and trusted cross site domains

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute()

Remarks

Requests are only allowed if coming from the application or white-listed domains in TrustedCrossSiteDomains

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor (String, String)

Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute(
    string redirectToController,
    string redirectToAction
)

Parameters

redirectToController
Type: String
controller
redirectToAction
Type: String
action

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor (String, String, Int32, TimeSpan)

Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute(
    string redirectToController,
    string redirectToAction,
    int maximumAttempts,
    TimeSpan maximumAttemptsIn
)

Parameters

redirectToController
Type: String
controller
redirectToAction
Type: String
action
maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsIn
Type: TimeSpan
time span to count the violations in

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor (String, String, Int32, Int32)

Reject add-hock requests allow only internal and trusted cross site domains and redirect to an action and controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute(
    string redirectToController,
    string redirectToAction,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

redirectToController
Type: String
controller
redirectToAction
Type: String
action
maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsInSeconds
Type: Int32
time span in seconds to count the violations in

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor (Uri, Int32)

Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute(
    Uri redirectToUrl,
    int maximumAttempts
)

Parameters

redirectToUrl
Type: Uri
the redirect url to use
maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor (Uri, Int32, TimeSpan)

Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute(
    Uri redirectToUrl,
    int maximumAttempts,
    TimeSpan maximumAttemptsIn
)

Parameters

redirectToUrl
Type: Uri
the url to use
maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user
maximumAttemptsIn
Type: TimeSpan
The time-frame of how often are you willing to redirect

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Constructor (Uri)

Reject add-hock requests allow only internal and trusted cross site domains and redirect to an external URL

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AddhockAttribute(
    Uri redirectToUrl
)

Parameters

redirectToUrl
Type: Uri
the url to use

See Also

AddhockAttribute Class
AddhockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Methods

The AddhockAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | Equals(Nullable<(Of <<'(AddhockAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

AddhockAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

AddhockAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | Equals(Nullable<(Of <<'(AddhockAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

AddhockAttribute Class
AddhockAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

AddhockAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Returns a value that indicates whether this instance is equal to a specified object

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object.

Return Value

true if 2 instances are equal

See Also

AddhockAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(AddhockAttribute))

AddhockAttribute..::..Equals Method (Nullable<(Of <(<'AddhockAttribute>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<AddhockAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' AddhockAttribute >)>)>
The other.

Return Value

bool

See Also

AddhockAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

AddhockAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

AddhockAttribute Class
Walter.Web.FireWall.Annotations Namespace


AddhockAttribute Properties

The AddhockAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

AddhockAttribute Class
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Class

base class for firewall annotation attributes

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class BaseFireWallAttribute : IEndpointRule

See Also

BaseFireWallAttribute Members
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Members

The BaseFireWallAttribute type exposes the following members.

Constructors

 | Name | Description
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons) | create a blocking entry based on Rule Engine rules
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons, TimeSpan) | create a blocking entry based on Rule Engine rules
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons, TimeSpan, Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the BaseFireWallAttribute class.
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons, Nullable<(Of <<'(Int32>)>>), TimeSpan, Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(Uri>)>>), Nullable<(Of <<'(Int32>)>>), TimeSpan) | set defaults

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute
 | Line | Get the line number

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire
Public property | Id | URL Query parameter
Public property | MaximumAttempts | if not assigned it will default to rule engine
Public property | MaximumAttemptsIn | Maximum attempts in
Public property | Modules | The guard module covered by the Attribute
Public property | Reasons | The firewall Block Reason for a given violation
Public property | RedirectToAction | redirect to action an action in the application
Public property | RedirectToController | Redirect to a controller in the application
Public property | redirectToUrl | If set, it will indicate to redirect to external URL
Public property | RepeatViolations | Control how to act when repeat violations are encountered
Public property | SlideExpiration | Slide the expiration

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Constructor

Overload List

 | Name | Description
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons) | create a blocking entry based on Rule Engine rules
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons, TimeSpan) | create a blocking entry based on Rule Engine rules
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons, TimeSpan, Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the BaseFireWallAttribute class.
Protected method | BaseFireWallAttribute(FireWallGuardActions, FirewallBlockReasons, Nullable<(Of <<'(Int32>)>>), TimeSpan, Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(Uri>)>>), Nullable<(Of <<'(Int32>)>>), TimeSpan) | set defaults

See Also

BaseFireWallAttribute Class
BaseFireWallAttribute Members
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Constructor (FireWallGuardActions, FirewallBlockReasons)

create a blocking entry based on Rule Engine rules

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected BaseFireWallAttribute(
    FireWallGuardActions module,
    FirewallBlockReasons reasons
)

Parameters

module
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
reasons
Type: Walter.BOM..::..FirewallBlockReasons

See Also

BaseFireWallAttribute Class
BaseFireWallAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Constructor (FireWallGuardActions, FirewallBlockReasons, TimeSpan)

create a blocking entry based on Rule Engine rules

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected BaseFireWallAttribute(
    FireWallGuardActions module,
    FirewallBlockReasons reasons,
    TimeSpan blockDuration
)

Parameters

module
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
reasons
Type: Walter.BOM..::..FirewallBlockReasons
blockDuration
Type: TimeSpan

See Also

BaseFireWallAttribute Class
BaseFireWallAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Constructor (FireWallGuardActions, FirewallBlockReasons, TimeSpan, Nullable(String))

BaseFireWallAttribute Constructor (FireWallGuardActions, FirewallBlockReasons, TimeSpan, Nullable<(Of <(<'String>)>)>)

Initializes a new instance of the BaseFireWallAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected BaseFireWallAttribute(
    FireWallGuardActions module,
    FirewallBlockReasons reasons,
    TimeSpan blockDuration,
    Nullable<string> redirectToUrl
)

Parameters

module
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The module.
reasons
Type: Walter.BOM..::..FirewallBlockReasons
The reasons.
blockDuration
Type: TimeSpan
Duration of the block.
redirectToUrl
Type: Nullable <(Of <(<' String >)>)>
The redirect to URL.

See Also

BaseFireWallAttribute Class
BaseFireWallAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Constructor (FireWallGuardActions, FirewallBlockReasons, Nullable(Int32), TimeSpan, Nullable(String), Nullable(String), Nullable(Uri), Nullable(Int32), TimeSpan)

BaseFireWallAttribute Constructor (FireWallGuardActions, FirewallBlockReasons, Nullable<(Of <(<'Int32>)>)>, TimeSpan, Nullable<(Of <(<'String>)>)>, Nullable<(Of <(<'String>)>)>, Nullable<(Of <(<'Uri>)>)>, Nullable<(Of <(<'Int32>)>)>, TimeSpan)

set defaults

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected BaseFireWallAttribute(
    FireWallGuardActions module,
    FirewallBlockReasons reasons,
    Nullable<int> maximumAttempts,
    TimeSpan maximumAttemptsIn,
    Nullable<string> redirectToController,
    Nullable<string> redirectToAction,
    Nullable<Uri> redirectToUrl,
    Nullable<int> id,
    TimeSpan blockDuration
)

Parameters

module
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The module covered by the attribute
reasons
Type: Walter.BOM..::..FirewallBlockReasons
maximumAttempts
Type: Nullable <(Of <(<' Int32 >)>)>
maximumAttemptsIn
Type: TimeSpan
redirectToController
Type: Nullable <(Of <(<' String >)>)>
redirect to controller
redirectToAction
Type: Nullable <(Of <(<' String >)>)>
redirect to action
redirectToUrl
Type: Nullable <(Of <(<'Uri>)>)>
redirect to the url
id
Type: Nullable <(Of <(<' Int32 >)>)>
optional query parameter value
blockDuration
Type: TimeSpan

See Also

BaseFireWallAttribute Class
BaseFireWallAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Methods

The BaseFireWallAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute
 | Line | Get the line number

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

BaseFireWallAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.

See Also

BaseFireWallAttribute Class
BaseFireWallAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

BaseFireWallAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other.

Return Value

bool

See Also

BaseFireWallAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(BaseFireWallAttribute))

BaseFireWallAttribute..::..Equals Method (Nullable<(Of <(<'BaseFireWallAttribute>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<BaseFireWallAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' BaseFireWallAttribute >)>)>
The other.

Return Value

bool

See Also

BaseFireWallAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

BaseFireWallAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


GetRedirect Method

BaseFireWallAttribute..::..GetRedirect Method

the redirect assigned to the attribute

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> GetRedirect(
    Uri originalUrl
)

Parameters

originalUrl
Type: Uri

Return Value

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


Line Method

BaseFireWallAttribute..::..Line Method

Get the line number

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static int Line(
    Nullable<int> line
)

Parameters

line
Type: Nullable <(Of <(<' Int32 >)>)>
set by compiler

Return Value

line executing

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


BaseFireWallAttribute Properties

The BaseFireWallAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire
Public property | Id | URL Query parameter
Public property | MaximumAttempts | if not assigned it will default to rule engine
Public property | MaximumAttemptsIn | Maximum attempts in
Public property | Modules | The guard module covered by the Attribute
Public property | Reasons | The firewall Block Reason for a given violation
Public property | RedirectToAction | redirect to action an action in the application
Public property | RedirectToController | Redirect to a controller in the application
Public property | redirectToUrl | If set, it will indicate to redirect to external URL
Public property | RepeatViolations | Control how to act when repeat violations are encountered
Public property | SlideExpiration | Slide the expiration

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockDuration Property

BaseFireWallAttribute..::..BlockDuration Property

The duration for the violation to expire

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan BlockDuration { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


Id Property

BaseFireWallAttribute..::..Id Property

URL Query parameter

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> Id { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


MaximumAttempts Property

BaseFireWallAttribute..::..MaximumAttempts Property

if not assigned it will default to rule engine

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> MaximumAttempts { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


MaximumAttemptsIn Property

BaseFireWallAttribute..::..MaximumAttemptsIn Property

Maximum attempts in

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan MaximumAttemptsIn { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


Modules Property

BaseFireWallAttribute..::..Modules Property

The guard module covered by the Attribute

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Modules { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


Reasons Property

BaseFireWallAttribute..::..Reasons Property

The firewall Block Reason for a given violation

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reasons { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


RedirectToAction Property

BaseFireWallAttribute..::..RedirectToAction Property

redirect to action an action in the application

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectToAction { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


RedirectToController Property

BaseFireWallAttribute..::..RedirectToController Property

Redirect to a controller in the application

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectToController { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


redirectToUrl Property

BaseFireWallAttribute..::..redirectToUrl Property

If set, it will indicate to redirect to external URL

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> redirectToUrl { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


RepeatViolations Property

BaseFireWallAttribute..::..RepeatViolations Property

Control how to act when repeat violations are encountered

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RepeatViolations RepeatViolations { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


SlideExpiration Property

BaseFireWallAttribute..::..SlideExpiration Property

Slide the expiration

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool SlideExpiration { get; set; }

See Also

BaseFireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockDurationAttribute Class

This attribute allows you to configure a specific rule on a controller or a specific action end enables you to specify how long something should be blocked. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BlockDurationAttribute

Examples

Annotate a controller with Firewall annotations
using Microsoft.AspNetCore.Mvc;
   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)]
   [User(allow: UserTypes.IsHuman | UserTypes.IsSearchEngine)]
   [BlockDuration(duration: 60, sliding: true, doubleDurationPerIncident: true)]
   public sealed class HomeController : Controller
   {
   private readonly ILogger<HomeController> _logger;
   public HomeController(ILogger<HomeController> logger)
   {
   _logger = logger;
   }
   public IActionResult Index()
   {
   return View();
   }
   public IActionResult Privacy()
   {
   return View();
   }
   [Ignore]
   [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
   public IActionResult Error()
   {
   return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
   }
   }
   }

See Also

BlockDurationAttribute Members
Walter.Web.FireWall.Annotations Namespace
[System.Attribute]
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


BlockDurationAttribute Members

The BlockDurationAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | BlockDurationAttribute(Int32, Boolean, Boolean) | Initializes a new instance of the BlockDurationAttribute class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | Equals(Nullable<(Of <<'(BlockDurationAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | GetHashCode | Returns a hash code for this instance.

Properties

 | Name | Description
Public property | DoubleDurationPerIncident | Gets a value indicating whether double the blocking duration per incident.
Public property | Seconds | The duration override for the blocking of request on the endpoint in relation to the firewall rules configuration
Public property | Sliding | Gets a value indicating whether this BlockDurationAttribute is sliding in it's Duration. If false the counter will not be reset, if true it will be

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockDurationAttribute Constructor (Int32, Boolean, Boolean)

Initializes a new instance of the BlockDurationAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BlockDurationAttribute(
    int seconds,
    bool sliding,
    bool doubleDurationPerIncident
)

Parameters

seconds
Type: Int32
The duration in seconds (must be positive).
sliding
Type: Boolean
Indicates that the blocking duration is sliding default = true
doubleDurationPerIncident
Type: Boolean
If true the duration for the blocking will double each time a request is made and the user was blocked default is true

See Also

BlockDurationAttribute Class
#ctor Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter


BlockDurationAttribute Methods

The BlockDurationAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | Equals(Nullable<(Of <<'(BlockDurationAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | GetHashCode | Returns a hash code for this instance.

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

BlockDurationAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object
Public method | Equals(Nullable<(Of <<'(BlockDurationAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object

See Also

BlockDurationAttribute Class
BlockDurationAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

BlockDurationAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Returns a value that indicates whether this instance is equal to a specified object

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object.

Return Value

true if 2 instances are equal

See Also

BlockDurationAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(BlockDurationAttribute))

BlockDurationAttribute..::..Equals Method (Nullable<(Of <(<'BlockDurationAttribute>)>)>)

Returns a value that indicates whether this instance is equal to a specified object

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<BlockDurationAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' BlockDurationAttribute >)>)>
The other BlockDurationAttribute.

Return Value

true if 2 instances are equal

See Also

BlockDurationAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

BlockDurationAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockDurationAttribute Properties

The BlockDurationAttribute type exposes the following members.

Properties

 | Name | Description
Public property | DoubleDurationPerIncident | Gets a value indicating whether double the blocking duration per incident.
Public property | Seconds | The duration override for the blocking of request on the endpoint in relation to the firewall rules configuration
Public property | Sliding | Gets a value indicating whether this BlockDurationAttribute is sliding in it's Duration. If false the counter will not be reset, if true it will be

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


DoubleDurationPerIncident Property

BlockDurationAttribute..::..DoubleDurationPerIncident Property

Gets a value indicating whether double the blocking duration per incident.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool DoubleDurationPerIncident { get; set; }

Field Value

true if [double duration per incident]; otherwise, false.

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


Seconds Property

BlockDurationAttribute..::..Seconds Property

The duration override for the blocking of request on the endpoint in relation to the firewall rules configuration

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Seconds { get; set; }

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


Sliding Property

BlockDurationAttribute..::..Sliding Property

Gets a value indicating whether this BlockDurationAttribute is sliding in it's Duration. If false the counter will not be reset, if true it will be

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Sliding { get; set; }

Field Value

true if sliding; otherwise, false.

See Also

BlockDurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Class

Block content based on the user-agent's reputation

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BrowserIntentionsAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..BrowserIntentionsAttribute

See Also

BrowserIntentionsAttribute Members
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall.TagHelpers..::..BrowserIntentionsTagHelper


BrowserIntentionsAttribute Members

The BrowserIntentionsAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | BrowserIntentionsAttribute(KnownIntentions) | Block content based on the user-agent's reputation allowing only those that have a set value
Public method | BrowserIntentionsAttribute(KnownIntentions, Boolean) | Block content based on the user-agent's reputation allowing only those that have a set value
Public method | BrowserIntentionsAttribute(KnownIntentions, KnownIntentions, Boolean) | Initializes a new instance of the BrowserIntentionsAttribute class.
Public method | BrowserIntentionsAttribute(KnownIntentions, KnownIntentions, Int32, Int32, Int32, Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(String>)>>), Boolean) | Initializes a new instance of the BrowserIntentionsAttribute class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | IntentionsAllowed | Gets the intentions that are considered to be allowed.
Public property | IntentionsBlocked | block the request based on reputation of the user agent used
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | MustBeAssigned | If true then the firewall is instructed to execute only if the User-Agent reputation is manually confirmed and is not inferred based only on statistics
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

BrowserIntentionsAttribute Class
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Constructor

Overload List

 | Name | Description
Public method | BrowserIntentionsAttribute(KnownIntentions) | Block content based on the user-agent's reputation allowing only those that have a set value
Public method | BrowserIntentionsAttribute(KnownIntentions, Boolean) | Block content based on the user-agent's reputation allowing only those that have a set value
Public method | BrowserIntentionsAttribute(KnownIntentions, KnownIntentions, Boolean) | Initializes a new instance of the BrowserIntentionsAttribute class.
Public method | BrowserIntentionsAttribute(KnownIntentions, KnownIntentions, Int32, Int32, Int32, Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(String>)>>), Boolean) | Initializes a new instance of the BrowserIntentionsAttribute class.

See Also

BrowserIntentionsAttribute Class
BrowserIntentionsAttribute Members
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Constructor (KnownIntentions)

Block content based on the user-agent's reputation allowing only those that have a set value

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BrowserIntentionsAttribute(
    KnownIntentions intentionsAllowed
)

Parameters

intentionsAllowed
Type: Walter.BOM..::..KnownIntentions
The intentions allowed.

See Also

BrowserIntentionsAttribute Class
BrowserIntentionsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Constructor (KnownIntentions, Boolean)

Block content based on the user-agent's reputation allowing only those that have a set value

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BrowserIntentionsAttribute(
    KnownIntentions intentionsAllowed,
    bool mustBeAssigned
)

Parameters

intentionsAllowed
Type: Walter.BOM..::..KnownIntentions
The intentions allowed.
mustBeAssigned
Type: Boolean
The user-agents reputation must be assigned and not inferred (default is false).

See Also

BrowserIntentionsAttribute Class
BrowserIntentionsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Constructor (KnownIntentions, KnownIntentions, Boolean)

Initializes a new instance of the BrowserIntentionsAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BrowserIntentionsAttribute(
    KnownIntentions intentionsAllowed,
    KnownIntentions intentionsBlocked,
    bool mustBeAssigned
)

Parameters

intentionsAllowed
Type: Walter.BOM..::..KnownIntentions
The intentions allowed.
intentionsBlocked
Type: Walter.BOM..::..KnownIntentions
The intentions blocked.
mustBeAssigned
Type: Boolean
The user-agents reputation must be assigned and not inferred (default is false).

See Also

BrowserIntentionsAttribute Class
BrowserIntentionsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Constructor (KnownIntentions, KnownIntentions, Int32, Int32, Int32, Nullable(String), Nullable(String), Boolean)

BrowserIntentionsAttribute Constructor (KnownIntentions, KnownIntentions, Int32, Int32, Int32, Nullable<(Of <(<'String>)>)>, Nullable<(Of <(<'String>)>)>, Boolean)

Initializes a new instance of the BrowserIntentionsAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BrowserIntentionsAttribute(
    KnownIntentions intentionsAllowed,
    KnownIntentions intentionsBlocked,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds,
    Nullable<string> redirectController,
    Nullable<string> redirectToAction,
    bool mustBeAssigned
)

Parameters

intentionsAllowed
Type: Walter.BOM..::..KnownIntentions
The intentions allowed.
intentionsBlocked
Type: Walter.BOM..::..KnownIntentions
The intentions blocked.
maximumAttempts
Type: Int32
The maximum attempts for user agents with the wrong reputation.
maximumAttemptsInSeconds
Type: Int32
The maximum attempts in seconds for user agents with the wrong reputation.
blockDurationInSeconds
Type: Int32
The block duration in seconds for user agents with the wrong reputation.
redirectController
Type: Nullable <(Of <(<' String >)>)>
The redirect controller for user agents with the wrong reputation.
redirectToAction
Type: Nullable <(Of <(<' String >)>)>
The redirect to action for user agents with the wrong reputation.
mustBeAssigned
Type: Boolean
The user-agents reputation must be assigned and not inferred (default is false).

See Also

BrowserIntentionsAttribute Class
BrowserIntentionsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Methods

The BrowserIntentionsAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

BrowserIntentionsAttribute Class
Walter.Web.FireWall.Annotations Namespace


BrowserIntentionsAttribute Properties

The BrowserIntentionsAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | IntentionsAllowed | Gets the intentions that are considered to be allowed.
Public property | IntentionsBlocked | block the request based on reputation of the user agent used
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | MustBeAssigned | If true then the firewall is instructed to execute only if the User-Agent reputation is manually confirmed and is not inferred based only on statistics
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

BrowserIntentionsAttribute Class
Walter.Web.FireWall.Annotations Namespace


IntentionsAllowed Property

BrowserIntentionsAttribute..::..IntentionsAllowed Property

Gets the intentions that are considered to be allowed.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownIntentions IntentionsAllowed { get; }

Field Value

The intentions allowed.

See Also

BrowserIntentionsAttribute Class
Walter.Web.FireWall.Annotations Namespace
BrowserIntentionsAttribute..::..MustBeAssigned


IntentionsBlocked Property

BrowserIntentionsAttribute..::..IntentionsBlocked Property

block the request based on reputation of the user agent used

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownIntentions IntentionsBlocked { get; }

Field Value

The intentions blocked.

See Also

BrowserIntentionsAttribute Class
Walter.Web.FireWall.Annotations Namespace


MustBeAssigned Property

BrowserIntentionsAttribute..::..MustBeAssigned Property

If true then the firewall is instructed to execute only if the User-Agent reputation is manually confirmed and is not inferred based only on statistics

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool MustBeAssigned { get; }

Field Value

The must be assigned.

Remarks

The firewall assumes intentions based on navigational history on your own application. You can set the value in code by setting IPageRequest.User.UserAgent.MetaData.AssumedIntentions|= KnownIntentions.Assigned

Examples

The code shows how to access a given user agent in code when a IPageRequest is injected in a page
Set flag on
page.User.UserAgent.MetaData.AssumedIntentions|= KnownIntentions.Assigned;
Turn the flag off
page.User.UserAgent.MetaData.AssumedIntentions &=~ KnownIntentions.Assigned;

See Also

BrowserIntentionsAttribute Class
Walter.Web.FireWall.Annotations Namespace


CrossSiteAttribute Class

Prevents Cross-site request (or CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported!

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CrossSiteAttribute : BaseFireWallAttribute

Remarks

The default is false, typically this attribute will be used on all API endpoints that are supposed to be accessed only by code in the application's JavaScript

Only HTTPS requests are supported, in some case it may capture without HTTPS requests but not it's not reliable and therefore not recommended

Examples

The below example limits the updating of a user profile to only JavaScript updates on scripts coming from this site.
C#
[HttpPost]
   [CrossSite(useDefaultRedirect:false)]
   [Ignore(skip: FireWallGuardActions.ALL
   &~FireWallGuardActions.RejectCrossSiteRequests)]
   public IActionResult UpdateProfile([FromBody] UserViewModel model)
   {
   ...
   }

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..CrossSiteAttribute

See Also

CrossSiteAttribute Members
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Members

The CrossSiteAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | CrossSiteAttribute(Boolean) | Prevents and configure the action when detecting cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported!
Public method | CrossSiteAttribute(String, String) | Redirect Cross-site request (or CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported
Public method | CrossSiteAttribute(Boolean, array<String>[]()[][]) | Prevents Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains. Only HTTPS requests are supported!
Public method | CrossSiteAttribute(String, String, array<String>[]()[][]) | Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.
Public method | CrossSiteAttribute(Int32, Int32, String, String, array<String>[]()[][]) | Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.
Public method | CrossSiteAttribute(Int32, Int32, String, array<String>[]()[][]) | Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(CrossSiteAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | ExternalDomains | List of domains that are allowed to do cross site requests
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | UseDefaultRedirect | Indicates that the default from the firewall configuration is to be used

See Also

CrossSiteAttribute Class
Walter.Web.FireWall.Annotations Namespace


CrossSiteAttribute Constructor

Overload List

 | Name | Description
Public method | CrossSiteAttribute(Boolean) | Prevents and configure the action when detecting cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported!
Public method | CrossSiteAttribute(String, String) | Redirect Cross-site request (or CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported
Public method | CrossSiteAttribute(Boolean, array<String>[]()[][]) | Prevents Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains. Only HTTPS requests are supported!
Public method | CrossSiteAttribute(String, String, array<String>[]()[][]) | Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.
Public method | CrossSiteAttribute(Int32, Int32, String, String, array<String>[]()[][]) | Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.
Public method | CrossSiteAttribute(Int32, Int32, String, array<String>[]()[][]) | Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.

See Also

CrossSiteAttribute Class
CrossSiteAttribute Members
Walter.Web.FireWall.Annotations Namespace


CrossSiteAttribute Constructor (Boolean)

Prevents and configure the action when detecting cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported!

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteAttribute(
    bool useDefaultRedirect
)

Parameters

useDefaultRedirect
Type: Boolean
Use default redirect from firewall configuration

Remarks

The default is false, typically this attribute will be used on all API endpoints that are supposed to be accessed only by code in the application's JavaScript

Only HTTPS requests are supported, in some case it may capture without HTTPS requests but not it's not reliable and therefore not recommended

Examples

The below example limits the updating of a user profile to only JavaScript updates on scripts coming from this site.
C#
[HttpPost]
   [CrossSite(useDefaultRedirect:false)]
   [Ignore(skip: FireWallGuardActions.ALL
   &~FireWallGuardActions.RejectCrossSiteRequests)]
   public IActionResult UpdateProfile([FromBody] UserViewModel model)
   {
   ...
   }

See Also

CrossSiteAttribute Class
CrossSiteAttribute Overload
Walter.Web.FireWall.Annotations Namespace
Redirect used if not assigned to route
Walter.Web.FireWall.Annotations..::..CrossSiteAttribute
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Constructor (String, String)

Redirect Cross-site request (or CSRF) disallow an attacker to induce actions that they do not intend to. Only HTTPS requests are supported

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteAttribute(
    string redirectToController,
    string redirectToAction
)

Parameters

redirectToController
Type: String
The controller to redirect to
redirectToAction
Type: String
The action to redirect to

Remarks

Only HTTPS requests are supported

Examples

the below sample shows external scripts can't access a endpoint even if the javascript tricks the browser to authenticate the user to auto-submit login credentials .
C#
[HttpGet]
   [CrossSite(redirectToController="home",redirectToAction="index" )]
   [Authorized]
   public IActionResult UserProfile()
   {
   ...
   }

See Also

CrossSiteAttribute Class
CrossSiteAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Constructor (Boolean, String[])

CrossSiteAttribute Constructor (Boolean, array<String>[]()[][])

Prevents Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains. Only HTTPS requests are supported!

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteAttribute(
    bool useDefaultRedirect,
    params string[] externalDomains
)

Parameters

useDefaultRedirect
Type: Boolean
Use default redirect from firewall configuration
externalDomains
Type: array< String >[]()[][]
fully qualified External domains that are allowed to access resource (format= "https://www.domain1.com", "https://www.domain2.com",...)

Exceptions

Exception | Condition
[System.ArgumentException] | The provided URL {url} is not a valid absolute uniform resource identifier (URI)

Remarks

The default is false, typically this attribute will be used on all API endpoints that are supposed to be accessed only by code in the application's JavaScript

Only HTTPS requests are supported, in some case it may capture without HTTPS requests but not it's not reliable and therefore not recommended

Only HTTPS requests are supported,Only HTTPS requests are supported, HTTP requests may work in some circumstances like submits from external domains, false positives may occur and you need to use events to fine-tune this

Examples

The below example limits the access to the API endpoint to a external payment gateway as well as two other domains considered internal.
C#
[HttpPost]
   [CrossSite(useDefaultRedirect:false, "https://www.myDomain.com", "https://membership.myDomain.com", "https://gateway.payment-provider.com")]
   [Ignore(skip: FireWallGuardActions.ALL
   &~FireWallGuardActions.RejectCrossSiteRequests)]
   public IActionResult GetLicense(string id)
   {
   ...
   }

See Also

CrossSiteAttribute Class
CrossSiteAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Constructor (String, String, String[])

CrossSiteAttribute Constructor (String, String, array<String>[]()[][])

Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteAttribute(
    string redirectToController,
    string redirectToAction,
    params string[] externalDomains
)

Parameters

redirectToController
Type: String
The controller to redirect to
redirectToAction
Type: String
The action to redirect to
externalDomains
Type: array< String >[]()[][]
fully qualified External domains that are allowed to access resource (format= "https://www.domain1.com", "https://www.domain2.com",...)

Exceptions

Exception | Condition
[System.ArgumentException] | The provided URL {url} is not a valid absolute uniform resource identifier (URI)

Remarks

Only HTTPS requests are supported,Only HTTPS requests are supported, HTTP requests may work in some circumstances like submits from external domains, false positives may occur and you need to use events to fine-tune this

See Also

CrossSiteAttribute Class
CrossSiteAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Constructor (Int32, Int32, String, String, String[])

CrossSiteAttribute Constructor (Int32, Int32, String, String, array<String>[]()[][])

Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    string redirectToController,
    string redirectToAction,
    params string[] externalDomains
)

Parameters

maximumAttempts
Type: Int32
maximum times you will allow access
maximumAttemptsInSeconds
Type: Int32
Maximum attempts allowed in a given timespan
redirectToController
Type: String
The controller to redirect to
redirectToAction
Type: String
The action to redirect to
externalDomains
Type: array< String >[]()[][]
fully qualified External domains that are allowed to access resource (format= "https://www.domain1.com", "https://www.domain2.com",...)

Exceptions

Exception | Condition
[System.ArgumentException] | The provided URL {url} is not a valid absolute uniform resource identifier (URI)

Remarks

Only HTTPS requests are supported,Only HTTPS requests are supported, HTTP requests may work in some circumstances like submits from external domains, false positives may occur and you need to use events to fine-tune this

See Also

CrossSiteAttribute Class
CrossSiteAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Constructor (Int32, Int32, String, String[])

CrossSiteAttribute Constructor (Int32, Int32, String, array<String>[]()[][])

Redirect Cross-site request (XSS and CSRF) disallow an attacker to induce actions that they do not intend to unless they come from the domains white-listed in the external domains.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    string redirectToUrl,
    params string[] externalDomains
)

Parameters

maximumAttempts
Type: Int32
maximum times you will allow access
maximumAttemptsInSeconds
Type: Int32
Maximum attempts allowed in a given timespan
redirectToUrl
Type: String
The URL to transfer the request to
externalDomains
Type: array< String >[]()[][]
fully qualified External domains that are allowed to access resource (format= "https://www.domain1.com", "https://www.domain2.com",...)

Exceptions

Exception | Condition
[System.ArgumentException] | The provided URL {url} is not a valid absolute uniform resource identifier (URI)

Remarks

Only HTTPS requests are supported,Only HTTPS requests are supported, HTTP requests may work in some circumstances like submits from external domains, false positives may occur and you need to use events to fine-tune this

See Also

CrossSiteAttribute Class
CrossSiteAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


CrossSiteAttribute Methods

The CrossSiteAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(CrossSiteAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

CrossSiteAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

CrossSiteAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(CrossSiteAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

CrossSiteAttribute Class
CrossSiteAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

CrossSiteAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other.

Return Value

bool

See Also

CrossSiteAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(CrossSiteAttribute))

CrossSiteAttribute..::..Equals Method (Nullable<(Of <(<'CrossSiteAttribute>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<CrossSiteAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' CrossSiteAttribute >)>)>
The other.

Return Value

bool

See Also

CrossSiteAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

CrossSiteAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

CrossSiteAttribute Class
Walter.Web.FireWall.Annotations Namespace


CrossSiteAttribute Properties

The CrossSiteAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | ExternalDomains | List of domains that are allowed to do cross site requests
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | UseDefaultRedirect | Indicates that the default from the firewall configuration is to be used

See Also

CrossSiteAttribute Class
Walter.Web.FireWall.Annotations Namespace


ExternalDomains Property

CrossSiteAttribute..::..ExternalDomains Property

List of domains that are allowed to do cross site requests

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<Uri> ExternalDomains { get; }

See Also

CrossSiteAttribute Class
Walter.Web.FireWall.Annotations Namespace


UseDefaultRedirect Property

CrossSiteAttribute..::..UseDefaultRedirect Property

Indicates that the default from the firewall configuration is to be used

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UseDefaultRedirect { get; }

See Also

CrossSiteAttribute Class
Walter.Web.FireWall.Annotations Namespace


DisableFirewallAttribute Class

Disables all rules and validations on an endpoint(s) by the firewall, basically it's an Always-Off for an endpoint

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class DisableFirewallAttribute

Remarks

using this attribute will expose the endpoint to DOS, CRS and Injection type of attacks

Examples

Tell the firewall to disable on this endpoint
[DisableFirewall]
[ResponseCache(Duration = 60,VaryByQueryKeys = new[] { "reason" })]
public IActionResult Blocked(BlockingReasons reason)
{
return View(reason);
}

See Also

DisableFirewallAttribute Members
Walter.Web.FireWall.Annotations Namespace


DisableFirewallAttribute Members

The DisableFirewallAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | DisableFirewallAttribute | Sometimes you like the firewall not to intervene on a endpoint, this annotation will disable it

See Also

DisableFirewallAttribute Class
Walter.Web.FireWall.Annotations Namespace


DisableFirewallAttribute Constructor

Sometimes you like the firewall not to intervene on a endpoint, this annotation will disable it

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DisableFirewallAttribute()

Remarks

The request will be used in the firewall pipeline like statistics and user tracking.

Examples

Tell the firewall to disable on this endpoint
[DisableFirewall]
[ResponseCache(Duration = 60,VaryByQueryKeys = new[] { "reason" })]
public IActionResult Blocked(BlockingReasons reason)
{
return View(reason);
}

See Also

DisableFirewallAttribute Class
Walter.Web.FireWall.Annotations Namespace


FireWallAttribute Class

Protects and block any requests that are in violation on URL type pattern attacks and allow only a the specified user types

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallAttribute

Remarks

This method will work even if you do not specify app.UseFireWall() in startup.cs of your project, however you will need to integrate the firewall in the services by calling services.AddFireWall as the dependent objects need to be registered

Examples

The sample shows how to enable the firewall on a single controller and all the endpoints in it.
C#
[Walter.Web.FireWall.Annotations.FireWall]
public class HomeController : Controller
{
// your controller here
}

See Also

FireWallAttribute Members
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


FireWallAttribute Members

The FireWallAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | FireWallAttribute | Early penetration blocking the firewall

See Also

FireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


FireWallAttribute Constructor

Early penetration blocking the firewall

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallAttribute()

See Also

FireWallAttribute Class
Walter.Web.FireWall.Annotations Namespace


FireWallConfigurationAttribute Class

FireWall configuration element

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallConfigurationAttribute

See Also

FireWallConfigurationAttribute Members
Walter.Web.FireWall.Annotations Namespace


FireWallConfigurationAttribute Members

The FireWallConfigurationAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | FireWallConfigurationAttribute | Inform the firewall what configuration element this endpoint provides

Properties

 | Name | Description
Public property | ConfigurationElement | The particular capability the endpoint is configured for

See Also

FireWallConfigurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


FireWallConfigurationAttribute Constructor

Inform the firewall what configuration element this endpoint provides

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallConfigurationAttribute(
    FireWallConfigurationElement configurationElement
)

Parameters

configurationElement
Type: Walter.Web.FireWall.Annotations..::..FireWallConfigurationElement

Remarks

You should have maxim 1 of each implement every one or use the default endpoints

See Also

FireWallConfigurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


FireWallConfigurationAttribute Properties

The FireWallConfigurationAttribute type exposes the following members.

Properties

 | Name | Description
Public property | ConfigurationElement | The particular capability the endpoint is configured for

See Also

FireWallConfigurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


ConfigurationElement Property

FireWallConfigurationAttribute..::..ConfigurationElement Property

The particular capability the endpoint is configured for

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallConfigurationElement ConfigurationElement { get; }

See Also

FireWallConfigurationAttribute Class
Walter.Web.FireWall.Annotations Namespace


FireWallConfigurationElement Enumeration

Configuration element informing the firewall of the capability the endpoint

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FireWallConfigurationElement

Members

Member name | Description
DiscoveryJavaScript | the java script
DiscoveryModel | the discovery model being send by the JavaScript informing the discovered capabilities
SiteMapModel | The page site-map
Beacon | the beacon informing the firewall to not accept data from the page anymore
CSPReport | The CSP report

See Also

Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Class

This annotation allows for the granular control GEO blocking in the firewall if GEO blocking modules are registered in service configuration

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoBlockAttribute : BaseFireWallAttribute

Remarks

Download any of the GEO blocking NuGet packages provided for the Firewall or write and register your own. Following NuGet packages are available but do require you to have your own data subscription:

Package Name | API | Database | File
Walter.Web.FireWall.Geo.MaxMind | X | - | X
Walter.Web.FireWall.Geo.IP2Location | X | X | -
Walter.Web.FireWall.Geo.Google | X | - | -

To create your own GEO provider implement one of these interfaces 1. ILatLongRepository (city and map coordinates), 2. IGeoAPIFactory (country code via API) 3. IGeoFactory (country code via database or file)

Examples

Register your own GEO blocking middleware
public static IServiceCollection AddGeoBlocking(this IServiceCollection serviceCollection, GeoMethod useMethod)
   {
   //update configuration and set the type of call it makes.
   serviceCollection.Configure<IFireWallConfig>(opt => opt.Geography.UseMethod = useMethod);
   serviceCollection.AddSingleton(typeof(IGeoFactory), typeof(MyGeoRepository));
   return serviceCollection;
   }

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..GeoBlockAttribute

See Also

GeoBlockAttribute Members
Walter.Web.FireWall.Annotations Namespace
[System.Attribute]
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


GeoBlockAttribute Members

The GeoBlockAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | GeoBlockAttribute(Int32, Int32) | Allow access without redirects for a specific duration
Public method | GeoBlockAttribute(Int32, TimeSpan) | Allow access without redirects for a specific duration
Public method | GeoBlockAttribute(Int32, TimeSpan, String, String, Nullable<(Of <<'(Int32>)>>)) | Redirect the requests for a limited time untill blocking it
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][]) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], String, String) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], String, String, Int32) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], String) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], Uri) | Initializes a new instance of the GeoBlockAttribute class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(GeoBlockAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockAdditional | settings that are to be used other then the global GEO blocking settings
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

GeoBlockAttribute Class
Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Constructor

Overload List

 | Name | Description
Public method | GeoBlockAttribute(Int32, Int32) | Allow access without redirects for a specific duration
Public method | GeoBlockAttribute(Int32, TimeSpan) | Allow access without redirects for a specific duration
Public method | GeoBlockAttribute(Int32, TimeSpan, String, String, Nullable<(Of <<'(Int32>)>>)) | Redirect the requests for a limited time untill blocking it
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][]) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], String, String) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], String, String, Int32) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], String) | Initializes a new instance of the GeoBlockAttribute class.
Public method | GeoBlockAttribute(array<GeoLocation>[]()[][], Uri) | Initializes a new instance of the GeoBlockAttribute class.

See Also

GeoBlockAttribute Class
GeoBlockAttribute Members
Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Constructor (Int32, Int32)

Allow access without redirects for a specific duration

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

maximumAttempts
Type: Int32
maximumAttemptsInSeconds
Type: Int32

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Constructor (Int32, TimeSpan)

Allow access without redirects for a specific duration

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn
)

Parameters

maximumAttempts
Type: Int32
maximumAttemptsIn
Type: TimeSpan

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Constructor (Int32, TimeSpan, String, String, Nullable(Int32))

GeoBlockAttribute Constructor (Int32, TimeSpan, String, String, Nullable<(Of <(<'Int32>)>)>)

Redirect the requests for a limited time untill blocking it

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    string redirectToController,
    string redirectToAction,
    Nullable<int> id
)

Parameters

maximumAttempts
Type: Int32
maximumAttemptsIn
Type: TimeSpan
redirectToController
Type: String
The redirect to controller.
redirectToAction
Type: String
The redirect to action.
id
Type: Nullable <(Of <(<' Int32 >)>)>

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Constructor (GeoLocation[])

GeoBlockAttribute Constructor (array<GeoLocation>[]()[][])

Initializes a new instance of the GeoBlockAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    params GeoLocation[] blockAdditional
)

Parameters

blockAdditional
Type: array<GeoLocation>[]()[][]
Tell the firewall to block set of location.

Exceptions

Exception | Condition
Walter.Web.FireWall.Configurations..::..ConfigurationsException | Blocking configuration must contain elements
[System.ArgumentNullException] | blockLocation

Examples

Annotate a controller with Firewall annotations
using Microsoft.AspNetCore.Mvc;
   using Microsoft.Extensions.Logging;
   using System.Diagnostics;
   using Test.Dll.Direct.Models;
   namespace MyProject.Controllers
   {
       using Walter.Web.FireWall;
       using Walter.Web.FireWall.Annotations;
       using Walter.BOM.Geo;

       [GeoBlock(blockLocation:new[]{ GeoLocation.AFRICA , GeoLocation.LATIN_AMERICA , GeoLocation.Netherlands])]
       [BlockDuration(duration: 60, sliding: true, doubleDurationPerIncident: true)]
       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           public IActionResult Index()
           {
               return View();
           }
           public IActionResult Privacy()
           {
               return View();
           }

           [GeoIgnore]
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


GeoBlockAttribute Constructor (GeoLocation[], String, String)

GeoBlockAttribute Constructor (array<GeoLocation>[]()[][], String, String)

Initializes a new instance of the GeoBlockAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    GeoLocation[] blockLocation,
    string redirectToController,
    string redirectToAction
)

Parameters

blockLocation
Type: array<GeoLocation>[]()[][]
The geographical locations to block.
redirectToController
Type: String
The redirect to controller.
redirectToAction
Type: String
The redirect to action.

Exceptions

Exception | Condition
[System.ArgumentException] | if providing a controller you must assign one - redirectToController
[System.ArgumentException] | if providing a action you must assign one - redirectToAction

Examples

You can use the Geo features to redirect the users to the proper location as well as revoke access
C#
namespace MyProject.Controllers
   {
       using Walter.Web.FireWall;
       using Walter.Web.FireWall.Annotations;
       using Walter.BOM.Geo;

       [GeoBlock(new[] { GeoLocation.LATIN_AMERICA , GeoLocation.Spain }, redirectToAction:"Ola",redirectToController:"GeoFree")]
       [Users(users: UserTypes.IsHuman | UserTypes.IsSearchEngine)]
       [BlockDuration(duration: 60, sliding: true, doubleDurationPerIncident: 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 });
           }
       }
   }

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


GeoBlockAttribute Constructor (GeoLocation[], String, String, Int32)

GeoBlockAttribute Constructor (array<GeoLocation>[]()[][], String, String, Int32)

Initializes a new instance of the GeoBlockAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    GeoLocation[] blockLocation,
    string redirectToController,
    string redirectToAction,
    int id
)

Parameters

blockLocation
Type: array<GeoLocation>[]()[][]
The geographical locations to block.
redirectToController
Type: String
The redirect to controller.
redirectToAction
Type: String
The redirect to action.
id
Type: Int32
optional query string parameter used in the redirect url

Exceptions

Exception | Condition
[System.ArgumentException] | if providing a controller you must assign one - redirectToController
[System.ArgumentException] | if providing a action you must assign one - redirectToAction

Examples

You can use the Geo features to redirect the users to the proper location as well as revoke access
C#
namespace MyProject.Controllers
   {
       using Walter.Web.FireWall;
       using Walter.Web.FireWall.Annotations;
       using Walter.BOM.Geo;

       [GeoBlock(new[] { GeoLocation.LATIN_AMERICA , GeoLocation.Spain }, redirectToAction:"Ola",redirectToController:"GeoFree")]
       [Users(users: UserTypes.IsHuman | UserTypes.IsSearchEngine)]
       [BlockDuration(duration: 60, sliding: true, doubleDurationPerIncident: 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 intoreturn View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


GeoBlockAttribute Constructor (GeoLocation[], String)

GeoBlockAttribute Constructor (array<GeoLocation>[]()[][], String)

Initializes a new instance of the GeoBlockAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    GeoLocation[] blockLocation,
    string redirectToUrl
)

Parameters

blockLocation
Type: array<GeoLocation>[]()[][]
The geographical locations.
redirectToUrl
Type: String
Redirect to URL.

Exceptions

Exception | Condition
[System.ArgumentException] | Please provide a value to redirect to - redirectToUrl

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


GeoBlockAttribute Constructor (GeoLocation[], Uri)

GeoBlockAttribute Constructor (array<GeoLocation>[]()[][], Uri)

Initializes a new instance of the GeoBlockAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockAttribute(
    GeoLocation[] blockLocation,
    Uri redirectToUrl
)

Parameters

blockLocation
Type: array<GeoLocation>[]()[][]
The geographical locations.
redirectToUrl
Type: Uri
Redirect to URL.

Exceptions

Exception | Condition
[System.ArgumentException] | Please provide a value to redirect to - redirectToUrl

See Also

GeoBlockAttribute Class
GeoBlockAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


GeoBlockAttribute Methods

The GeoBlockAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(GeoBlockAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

GeoBlockAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

GeoBlockAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(GeoBlockAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

GeoBlockAttribute Class
GeoBlockAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

GeoBlockAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other to compare with.

Return Value

bool

See Also

GeoBlockAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(GeoBlockAttribute))

GeoBlockAttribute..::..Equals Method (Nullable<(Of <(<'GeoBlockAttribute>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<GeoBlockAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' GeoBlockAttribute >)>)>
The other.

Return Value

bool

See Also

GeoBlockAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

GeoBlockAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

GeoBlockAttribute Class
Walter.Web.FireWall.Annotations Namespace


GeoBlockAttribute Properties

The GeoBlockAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockAdditional | settings that are to be used other then the global GEO blocking settings
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

GeoBlockAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockAdditional Property

GeoBlockAttribute..::..BlockAdditional Property

settings that are to be used other then the global GEO blocking settings

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation[] BlockAdditional { get; }

Field Value

The regions to block

See Also

GeoBlockAttribute Class
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Class

Tells the Firewall to ignore geographically access filters to an endpoint Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoIgnoreAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..GeoIgnoreAttribute

See Also

GeoIgnoreAttribute Members
Walter.Web.FireWall.Annotations Namespace
[System.Attribute]


GeoIgnoreAttribute Members

The GeoIgnoreAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | GeoIgnoreAttribute()()()() | Tells the firewall to ignore blocking this endpoint based on it's geographical origins regardless of how often the endpoint was severed to the requester
Public method | GeoIgnoreAttribute(Int32) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified
Public method | GeoIgnoreAttribute(Int32, TimeSpan) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified
Public method | GeoIgnoreAttribute(Int32, TimeSpan, String, String, Nullable<(Of <<'(Int32>)>>)) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified
Public method | GeoIgnoreAttribute(Int32, TimeSpan, Uri) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

GeoIgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Constructor

Overload List

 | Name | Description
Public method | GeoIgnoreAttribute()()()() | Tells the firewall to ignore blocking this endpoint based on it's geographical origins regardless of how often the endpoint was severed to the requester
Public method | GeoIgnoreAttribute(Int32) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified
Public method | GeoIgnoreAttribute(Int32, TimeSpan) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified
Public method | GeoIgnoreAttribute(Int32, TimeSpan, String, String, Nullable<(Of <<'(Int32>)>>)) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified
Public method | GeoIgnoreAttribute(Int32, TimeSpan, Uri) | Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified

See Also

GeoIgnoreAttribute Class
GeoIgnoreAttribute Members
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Constructor

Tells the firewall to ignore blocking this endpoint based on it's geographical origins regardless of how often the endpoint was severed to the requester

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoIgnoreAttribute()

See Also

GeoIgnoreAttribute Class
GeoIgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Constructor (Int32)

Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoIgnoreAttribute(
    int maximumAttempts
)

Parameters

maximumAttempts
Type: Int32
The maximum request in session.

Exceptions

Exception | Condition
[System.ArgumentException] | Skipping requests only makes sense if you add a value grater that 0 - maxRequest
[ArgumentException] | maxRequest must be above 0

Remarks

You should combine this with a FireWall annotation excluding UserTypes as Bots will always be blocked as they ignores the session cookie

See Also

GeoIgnoreAttribute Class
GeoIgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Constructor (Int32, TimeSpan)

Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoIgnoreAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn
)

Parameters

maximumAttempts
Type: Int32
The maximum request in session.
maximumAttemptsIn
Type: TimeSpan
duration of the scoped session

Exceptions

Exception | Condition
[System.ArgumentException] | Skipping requests only makes sense if you add a value grater that 0 - maxRequest
[ArgumentException] | maxRequest must be above 0

Remarks

You should combine this with a FireWall annotation excluding UserTypes as Bots will always be blocked as they ignores the session cookie

See Also

GeoIgnoreAttribute Class
GeoIgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Constructor (Int32, TimeSpan, String, String, Nullable(Int32))

GeoIgnoreAttribute Constructor (Int32, TimeSpan, String, String, Nullable<(Of <(<'Int32>)>)>)

Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoIgnoreAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    string redirectToController,
    string redirectToAction,
    Nullable<int> id
)

Parameters

maximumAttempts
Type: Int32
The maximum request in session.
maximumAttemptsIn
Type: TimeSpan
duration of the scoped session
redirectToController
Type: String
The controller to redirect to
redirectToAction
Type: String
the action to redirect to
id
Type: Nullable <(Of <(<' Int32 >)>)>
Additional query string value

Exceptions

Exception | Condition
[System.ArgumentException] | Skipping requests only makes sense if you add a value grater that 0 - maxRequest
[ArgumentException] | maxRequest must be above 0

Remarks

You should combine this with a FireWall annotation excluding UserTypes as Bots will always be blocked as they ignores the session cookie

See Also

GeoIgnoreAttribute Class
GeoIgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Constructor (Int32, TimeSpan, Uri)

Tells the firewall to ignore this endpoint if the total times the page was requested in the current session is less than the maximum requests specified

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoIgnoreAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    Uri redirectToUrl
)

Parameters

maximumAttempts
Type: Int32
The maximum request in session.
maximumAttemptsIn
Type: TimeSpan
duration of the scoped session
redirectToUrl
Type: Uri
the fully qualified URI to redirect to

Exceptions

Exception | Condition
[System.ArgumentException] | Skipping requests only makes sense if you add a value grater that 0 - maxRequest
[ArgumentException] | maxRequest must be above 0

Remarks

You should combine this with a FireWall annotation excluding UserTypes as Bots will always be blocked as they ignores the session cookie

See Also

GeoIgnoreAttribute Class
GeoIgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Methods

The GeoIgnoreAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

GeoIgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


GeoIgnoreAttribute Properties

The GeoIgnoreAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

GeoIgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


HitRatioAttribute Class

The hit ratio attribute set rule of how often a user is allowed to access the action in a given time. This method specifically helps when protecting probing password recovery or logins or resubmitting the same page scrubbing for data.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class HitRatioAttribute : BaseFireWallAttribute

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

///

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..HitRatioAttribute

See Also

HitRatioAttribute Members
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Members

The HitRatioAttribute type exposes the following members.

Constructors

Name Description
Public method HitRatioAttribute(Int32, Int32)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed
Public method HitRatioAttribute(Int32, Int32, String, String)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed
Public method HitRatioAttribute(Int32, TimeSpan, String, String, Int32)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed
Public method HitRatioAttribute(Int32, TimeSpan, TimeSpan)
Redirect the connection if the user requested a given endpoint too many times in a given time period
Public method HitRatioAttribute(Int32, TimeSpan, String)
Redirect the connection if the user requested a given endpoint too many times in a given time period
Public method HitRatioAttribute(Int32, TimeSpan, Uri)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

HitRatioAttribute Class
Walter.Web.FireWall.Annotations Namespace


HitRatioAttribute Constructor

Overload List

Name Description
Public method HitRatioAttribute(Int32, Int32)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed
Public method HitRatioAttribute(Int32, Int32, String, String)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed
Public method HitRatioAttribute(Int32, TimeSpan, String, String, Int32)
Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed
Public method HitRatioAttribute(Int32, TimeSpan, TimeSpan)
Redirect the connection if the user requested a given endpoint too many times in a given time period
Public method HitRatioAttribute(Int32, TimeSpan, String)
Redirect the connection if the user requested a given endpoint too many times in a given time period
Public method HitRatioAttribute(Int32, TimeSpan, Uri)
Redirect the connection if the user requested a given endpoint too many times in a given time period

See Also

HitRatioAttribute Class
HitRatioAttribute Members
Walter.Web.FireWall.Annotations Namespace


HitRatioAttribute Constructor (Int32, Int32)

Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HitRatioAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

maximumAttempts
Type: Int32
The maximum allowed visits to the endpoint in a given timespan, minimal value =1.
maximumAttemptsInSeconds
Type: Int32
A time span in seconds in where we measure the access attempts.

See Also

HitRatioAttribute Class
HitRatioAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Constructor (Int32, Int32, String, String)

Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HitRatioAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    string redirectToController,
    string redirectAction
)

Parameters

maximumAttempts
Type: Int32
The maximum attempts.
maximumAttemptsInSeconds
Type: Int32
A time span in seconds in where we measure the access attempts.
redirectToController
Type: String
The redirect to controller.
redirectAction
Type: String
The redirect action.

See Also

HitRatioAttribute Class
HitRatioAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Constructor (Int32, TimeSpan, String, String, Int32)

Redirect the connection if the user requested a given endpoint too many times in a given time period

Remarks

Place this annotation on pages that make little sense to revisit even if the data is plausible like login pages.

A user logging-in with the right user name and password for several users is either a fake profile bot or someone or something that has accesses using a compromised password database

This annotation should not be used in pages that host frames as they are normally loaded frequently without a context to the data displayed

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HitRatioAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    string redirectToController,
    string redirectAction,
    int id
)

Parameters

maximumAttempts
Type: Int32
The maximum attempts.
maximumAttemptsIn
Type: TimeSpan
A time span in where we measure the access attempts.
redirectToController
Type: String
The redirect to controller.
redirectAction
Type: String
The redirect action.
id
Type: Int32
The optional argument to pass so the redirected action so this knows why he was redirected.

See Also

HitRatioAttribute Class
HitRatioAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Constructor (Int32, TimeSpan, TimeSpan)

Redirect the connection if the user requested a given endpoint too many times in a given time period

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HitRatioAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    TimeSpan blockDuration
)

Parameters

maximumAttempts
Type: Int32
The maximum attempts.
maximumAttemptsIn
Type: TimeSpan
A time span where we measure the access attempts.
blockDuration
Type: TimeSpan
how long the block should last

See Also

HitRatioAttribute Class
HitRatioAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Constructor (Int32, TimeSpan, String)

Redirect the connection if the user requested a given endpoint too many times in a given time period

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HitRatioAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    string redirectUrl
)

Parameters

maximumAttempts
Type: Int32
The maximum attempts.
maximumAttemptsIn
Type: TimeSpan
A timespan in where we measure the access attempts.
redirectUrl
Type: String
The url to redirect the user to if an endpoint is requested too often

See Also

HitRatioAttribute Class
HitRatioAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Constructor (Int32, TimeSpan, Uri)

Redirect the connection if the user requested a given endpoint too many times in a given time period

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HitRatioAttribute(
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    Uri redirectUrl
)

Parameters

maximumAttempts
Type: Int32
The maximum attempts.
maximumAttemptsIn
Type: TimeSpan
A timespan in where we measure the access attempts.
redirectUrl
Type: Uri
The url to redirect the user to if an endpoint is requested too often

See Also

HitRatioAttribute Class
HitRatioAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


HitRatioAttribute Methods

The HitRatioAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

HitRatioAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

HitRatioAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

HitRatioAttribute Class
HitRatioAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method

HitRatioAttribute..::..Equals Method

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

HitRatioAttribute Class
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

HitRatioAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

HitRatioAttribute Class
Walter.Web.FireWall.Annotations Namespace


HitRatioAttribute Properties

The HitRatioAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

HitRatioAttribute Class
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Class

annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class HoneyPotTrapAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..HoneyPotTrapAttribute

See Also

HoneyPotTrapAttribute Members
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Members

The HoneyPotTrapAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | HoneyPotTrapAttribute(Int32, Boolean) | indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious
Public method | HoneyPotTrapAttribute(Boolean, Int32, Int32, Int32) | indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious
Public method | HoneyPotTrapAttribute(Boolean, Int32, Int32, Int32, String, String, Nullable<(Of <<'(Int32>)>>)) | indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | IgnoreSearchEngines | if set to true it will ignore any of the supported search engines in SearchEngine
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

HoneyPotTrapAttribute Class
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Constructor

Overload List

 | Name | Description
Public method | HoneyPotTrapAttribute(Int32, Boolean) | indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious
Public method | HoneyPotTrapAttribute(Boolean, Int32, Int32, Int32) | indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious
Public method | HoneyPotTrapAttribute(Boolean, Int32, Int32, Int32, String, String, Nullable<(Of <<'(Int32>)>>)) | indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious

See Also

HoneyPotTrapAttribute Class
HoneyPotTrapAttribute Members
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Constructor (Int32, Boolean)

indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HoneyPotTrapAttribute(
    int blockDurationInDays,
    bool ignoreSearchEngines
)

Parameters

blockDurationInDays
Type: Int32
The duration all requests are to be blocked in days, the default is 30
ignoreSearchEngines
Type: Boolean
do not generate a incident when the user is a known search engine

See Also

HoneyPotTrapAttribute Class
HoneyPotTrapAttribute Overload
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Constructor (Boolean, Int32, Int32, Int32)

indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HoneyPotTrapAttribute(
    bool ignoreSearchEngines,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds
)

Parameters

ignoreSearchEngines
Type: Boolean
do not generate a incident when the user is a known search engine
maximumAttempts
Type: Int32
how often you will allow access to the endpoint
maximumAttemptsInSeconds
Type: Int32
the timespan used to measure the maximum attempts in
blockDurationInSeconds
Type: Int32
The duration all requests are to be blocked

See Also

HoneyPotTrapAttribute Class
HoneyPotTrapAttribute Overload
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Constructor (Boolean, Int32, Int32, Int32, String, String, Nullable(Int32))

HoneyPotTrapAttribute Constructor (Boolean, Int32, Int32, Int32, String, String, Nullable<(Of <(<'Int32>)>)>)

indicates that this endpoint is a honey-pot-trap and any access should be considered a malicious

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HoneyPotTrapAttribute(
    bool ignoreSearchEngines,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds,
    string redirectToController,
    string redirectToAction,
    Nullable<int> id
)

Parameters

ignoreSearchEngines
Type: Boolean
do not generate a incident when the user is a known search engine
maximumAttempts
Type: Int32
how often you will allow access to the endpoint
maximumAttemptsInSeconds
Type: Int32
the timespan used to measure the maximum attempts in
blockDurationInSeconds
Type: Int32
The duration all requests are to be blocked
redirectToController
Type: String
Controller to redirect to
redirectToAction
Type: String
action to redirect to
id
Type: Nullable <(Of <(<' Int32 >)>)>
Optional argument you would like to use in the query string

See Also

HoneyPotTrapAttribute Class
HoneyPotTrapAttribute Overload
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Methods

The HoneyPotTrapAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

HoneyPotTrapAttribute Class
Walter.Web.FireWall.Annotations Namespace


HoneyPotTrapAttribute Properties

The HoneyPotTrapAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | IgnoreSearchEngines | if set to true it will ignore any of the supported search engines in SearchEngine
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

HoneyPotTrapAttribute Class
Walter.Web.FireWall.Annotations Namespace


IgnoreSearchEngines Property

HoneyPotTrapAttribute..::..IgnoreSearchEngines Property

if set to true it will ignore any of the supported search engines in SearchEngine

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IgnoreSearchEngines { get; }

See Also

HoneyPotTrapAttribute Class
Walter.Web.FireWall.Annotations Namespace
Walter.BOM..::..SearchEngine


IEndpointBlockRule Interface

the blocking rule assigned to an endpoint

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEndpointBlockRule

See Also

IEndpointBlockRule Members
Walter.Web.FireWall.Annotations Namespace


IEndpointBlockRule Members

The IEndpointBlockRule type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire
Public property | Modules | The guard module covered by the Attribute
Public property | Reasons | The firewall Block Reason for a given violation
Public property | RepeatViolations | Controls how to act when repeat violations are encounters
Public property | SlideExpiration | indicates that endpoint violations should slide when an error is triggered

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


IEndpointBlockRule Properties

The IEndpointBlockRule type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire
Public property | Modules | The guard module covered by the Attribute
Public property | Reasons | The firewall Block Reason for a given violation
Public property | RepeatViolations | Controls how to act when repeat violations are encounters
Public property | SlideExpiration | indicates that endpoint violations should slide when an error is triggered

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


BlockDuration Property

IEndpointBlockRule..::..BlockDuration Property

The duration for the violation to expire

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan BlockDuration { get; }

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


Modules Property

IEndpointBlockRule..::..Modules Property

The guard module covered by the Attribute

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallGuardActions Modules { get; }

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


Reasons Property

IEndpointBlockRule..::..Reasons Property

The firewall Block Reason for a given violation

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Reasons { get; }

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


RepeatViolations Property

IEndpointBlockRule..::..RepeatViolations Property

Controls how to act when repeat violations are encounters

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
RepeatViolations RepeatViolations { get; }

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


SlideExpiration Property

IEndpointBlockRule..::..SlideExpiration Property

indicates that endpoint violations should slide when an error is triggered

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool SlideExpiration { get; }

See Also

IEndpointBlockRule Interface
Walter.Web.FireWall.Annotations Namespace


IEndpointRule Interface

the rule assigned to an endpoint

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEndpointRule : IEndpointBlockRule

See Also

IEndpointRule Members
Walter.Web.FireWall.Annotations Namespace


IEndpointRule Members

The IEndpointRule type exposes the following members.

Methods

 | Name | Description
Public method | GetRedirect | the redirect assigned to the attribute

Properties

 | Name | Description
Public property | MaximumAttempts | if not assigned it will default to rule engine
Public property | MaximumAttemptsIn | Maximum attempts in

See Also

IEndpointRule Interface
Walter.Web.FireWall.Annotations Namespace


IEndpointRule Methods

The IEndpointRule type exposes the following members.

Methods

 | Name | Description
Public method | GetRedirect | the redirect assigned to the attribute

See Also

IEndpointRule Interface
Walter.Web.FireWall.Annotations Namespace


GetRedirect Method

IEndpointRule..::..GetRedirect Method

the redirect assigned to the attribute

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> GetRedirect(
    Uri originalUrl
)

Parameters

originalUrl
Type: Uri

Return Value

See Also

IEndpointRule Interface
Walter.Web.FireWall.Annotations Namespace


IEndpointRule Properties

The IEndpointRule type exposes the following members.

Properties

 | Name | Description
Public property | MaximumAttempts | if not assigned it will default to rule engine
Public property | MaximumAttemptsIn | Maximum attempts in

See Also

IEndpointRule Interface
Walter.Web.FireWall.Annotations Namespace


MaximumAttempts Property

IEndpointRule..::..MaximumAttempts Property

if not assigned it will default to rule engine

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<int> MaximumAttempts { get; set; }

See Also

IEndpointRule Interface
Walter.Web.FireWall.Annotations Namespace


MaximumAttemptsIn Property

IEndpointRule..::..MaximumAttemptsIn Property

Maximum attempts in

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan MaximumAttemptsIn { get; set; }

See Also

IEndpointRule Interface
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Class

Tells the firewall to ignore this controller or action and perform no actions at all. This is especially use full for those endpoints that do error handling. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class IgnoreAttribute

Remarks

Please note that this will also not block and protect against DDOS attacks

See Also

IgnoreAttribute Members
Walter.Web.FireWall.Annotations Namespace
[System.Attribute]


IgnoreAttribute Members

The IgnoreAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | IgnoreAttribute()()()() | Will skip any firewall test on the given endpoint.
Public method | IgnoreAttribute(FireWallGuardActions) | Set the firewall to ignore this endpoint 1 time or a set of rules
Public method | IgnoreAttribute(FireWallGuardActions, Int32) | Set the firewall to ignore specific rules on this endpoint

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(IgnoreAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Properties

 | Name | Description
Public property | NoBlockCount | Tells the firewall how often access is granted during a given session for a given user/ bot/ search engine
Public property | Skip | Gets the rules to skip.

See Also

IgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Constructor

Overload List

 | Name | Description
Public method | IgnoreAttribute()()()() | Will skip any firewall test on the given endpoint.
Public method | IgnoreAttribute(FireWallGuardActions) | Set the firewall to ignore this endpoint 1 time or a set of rules
Public method | IgnoreAttribute(FireWallGuardActions, Int32) | Set the firewall to ignore specific rules on this endpoint

See Also

IgnoreAttribute Class
IgnoreAttribute Members
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Constructor

Will skip any firewall test on the given endpoint.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IgnoreAttribute()

Examples

Tell the firewall to ignore this for this connection up-to 5 times then stop answering
[Ignore(FireWallSkipChecks.ALL)]
[ResponseCache(Duration = 60,VaryByQueryKeys = new[] { "reason" })]
public IActionResult Blocked(BlockingReasons reason)
{
    return View(reason);
}

See Also

IgnoreAttribute Class
IgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Constructor (FireWallGuardActions)

Set the firewall to ignore this endpoint 1 time or a set of rules

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IgnoreAttribute(
    FireWallGuardActions skip
)

Parameters

skip
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
Tell firewall what rules to skip

See Also

IgnoreAttribute Class
IgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Constructor (FireWallGuardActions, Int32)

Set the firewall to ignore specific rules on this endpoint

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IgnoreAttribute(
    FireWallGuardActions skip,
    int skipCount
)

Parameters

skip
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
Tell firewall what rules to skip
skipCount
Type: Int32
Tells the firewall how often access is granted during a given session

Exceptions

Exception | Condition
[ArgumentException] | Skip must be assigned None makes no sense, remove the attribute if no skipping was intended
[ArgumentException] | Skip count must be 1 or higher

Examples

Tell the firewall to ignore this for this connection up-to 5 times then stop answering
[Ignore(FireWallSkipChecks.ALL, 5)]
[ResponseCache(Duration = 60,VaryByQueryKeys = new[] { "reason" })]
public IActionResult Blocked(BlockingReasons reason)
{
    return View(reason);
}

See Also

IgnoreAttribute Class
IgnoreAttribute Overload
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Methods

The IgnoreAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(IgnoreAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

IgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

IgnoreAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(IgnoreAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

IgnoreAttribute Class
IgnoreAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

IgnoreAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
An Object to compare with this instance or nullNothingnullptra null reference (Nothing in Visual Basic).

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

IgnoreAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(IgnoreAttribute))

IgnoreAttribute..::..Equals Method (Nullable<(Of <(<'IgnoreAttribute>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<IgnoreAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' IgnoreAttribute >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

IgnoreAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

IgnoreAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

IgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


IgnoreAttribute Properties

The IgnoreAttribute type exposes the following members.

Properties

 | Name | Description
Public property | NoBlockCount | Tells the firewall how often access is granted during a given session for a given user/ bot/ search engine
Public property | Skip | Gets the rules to skip.

See Also

IgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


NoBlockCount Property

IgnoreAttribute..::..NoBlockCount Property

Tells the firewall how often access is granted during a given session for a given user/ bot/ search engine

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> NoBlockCount { get; set; }

Field Value

The no block count.

See Also

IgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


Skip Property

IgnoreAttribute..::..Skip Property

Gets the rules to skip.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Skip { get; set; }

Field Value

The skip.

See Also

IgnoreAttribute Class
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Class

Internet service provider reputation level filter

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ISPTrustLevelAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..ISPTrustLevelAttribute

See Also

ISPTrustLevelAttribute Members
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Members

The ISPTrustLevelAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | ISPTrustLevelAttribute(Boolean) | Reject access if the Internet service provider is marked as to be blocked
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean) | Reject access if the Internet service provider is not having the assigned flag
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean, Int32, Int32, Int32) | Reject access if the Internet service provider is not having the assigned flag
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean, Int32, Int32, Int32, String, String) | Reject access if the Internet service provider is not having the assigned flag
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean, Int32, Int32, Int32, String) | Reject access if the Internet service provider is not having the assigned flag

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | ExcludeSearchEngines | Exclude the filter for search engines hosted by the ISP
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TrustLevel | Allow access if trust level is assigned to the ISP

See Also

ISPTrustLevelAttribute Class
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Constructor

Overload List

 | Name | Description
Public method | ISPTrustLevelAttribute(Boolean) | Reject access if the Internet service provider is marked as to be blocked
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean) | Reject access if the Internet service provider is not having the assigned flag
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean, Int32, Int32, Int32) | Reject access if the Internet service provider is not having the assigned flag
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean, Int32, Int32, Int32, String, String) | Reject access if the Internet service provider is not having the assigned flag
Public method | ISPTrustLevelAttribute(ISPTrustLevels, Boolean, Int32, Int32, Int32, String) | Reject access if the Internet service provider is not having the assigned flag

See Also

ISPTrustLevelAttribute Class
ISPTrustLevelAttribute Members
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Constructor (Boolean)

Reject access if the Internet service provider is marked as to be blocked

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevelAttribute(
    bool excludeSearchEngines
)

Parameters

excludeSearchEngines
Type: Boolean

See Also

ISPTrustLevelAttribute Class
ISPTrustLevelAttribute Overload
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Constructor (ISPTrustLevels, Boolean)

Reject access if the Internet service provider is not having the assigned flag

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevelAttribute(
    ISPTrustLevels trustLevel,
    bool excludeSearchEngines
)

Parameters

trustLevel
Type: Walter.Net.Networking..::..ISPTrustLevels
trust level to allow access
excludeSearchEngines
Type: Boolean
exclude the filter for search engines hosted by the ISP

See Also

ISPTrustLevelAttribute Class
ISPTrustLevelAttribute Overload
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Constructor (ISPTrustLevels, Boolean, Int32, Int32, Int32)

Reject access if the Internet service provider is not having the assigned flag

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevelAttribute(
    ISPTrustLevels trustLevel,
    bool excludeSearchEngines,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds
)

Parameters

trustLevel
Type: Walter.Net.Networking..::..ISPTrustLevels
trust level to allow access
excludeSearchEngines
Type: Boolean
exclude the filter for search engines hosted by the ISP
maximumAttempts
Type: Int32
maximum allowed access attempts
maximumAttemptsInSeconds
Type: Int32
time frame to count the access attempts in
blockDurationInSeconds
Type: Int32
duration the user is to be blocked

See Also

ISPTrustLevelAttribute Class
ISPTrustLevelAttribute Overload
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Constructor (ISPTrustLevels, Boolean, Int32, Int32, Int32, String, String)

Reject access if the Internet service provider is not having the assigned flag

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevelAttribute(
    ISPTrustLevels trustLevel,
    bool excludeSearchEngines,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds,
    string redirectToAction,
    string redirectToController
)

Parameters

trustLevel
Type: Walter.Net.Networking..::..ISPTrustLevels
trust level to allow access
excludeSearchEngines
Type: Boolean
exclude the filter for search engines hosted by the ISP
maximumAttempts
Type: Int32
maximum allowed access attempts
maximumAttemptsInSeconds
Type: Int32
time frame to count the access attempts in
blockDurationInSeconds
Type: Int32
duration the user is to be blocked
redirectToAction
Type: String
if access is detected the user will be redirected to this action
redirectToController
Type: String
if access is detected the user will be redirected to this controller

See Also

ISPTrustLevelAttribute Class
ISPTrustLevelAttribute Overload
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Constructor (ISPTrustLevels, Boolean, Int32, Int32, Int32, String)

Reject access if the Internet service provider is not having the assigned flag

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevelAttribute(
    ISPTrustLevels trustLevel,
    bool excludeSearchEngines,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds,
    string redirectToUrl
)

Parameters

trustLevel
Type: Walter.Net.Networking..::..ISPTrustLevels
trust level to allow access
excludeSearchEngines
Type: Boolean
exclude the filter for search engines hosted by the ISP
maximumAttempts
Type: Int32
maximum allowed access attempts
maximumAttemptsInSeconds
Type: Int32
time frame to count the access attempts in
blockDurationInSeconds
Type: Int32
duration the user is to be blocked
redirectToUrl
Type: String
if access is detected the user will be redirected to this absolute URL

See Also

ISPTrustLevelAttribute Class
ISPTrustLevelAttribute Overload
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Methods

The ISPTrustLevelAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

ISPTrustLevelAttribute Class
Walter.Web.FireWall.Annotations Namespace


ISPTrustLevelAttribute Properties

The ISPTrustLevelAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | ExcludeSearchEngines | Exclude the filter for search engines hosted by the ISP
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TrustLevel | Allow access if trust level is assigned to the ISP

See Also

ISPTrustLevelAttribute Class
Walter.Web.FireWall.Annotations Namespace


ExcludeSearchEngines Property

ISPTrustLevelAttribute..::..ExcludeSearchEngines Property

Exclude the filter for search engines hosted by the ISP

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ExcludeSearchEngines { get; }

See Also

ISPTrustLevelAttribute Class
Walter.Web.FireWall.Annotations Namespace


TrustLevel Property

ISPTrustLevelAttribute..::..TrustLevel Property

Allow access if trust level is assigned to the ISP

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevels TrustLevel { get; }

See Also

ISPTrustLevelAttribute Class
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Class

Reject known malicious users

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class KnownBadBoysAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..KnownBadBoysAttribute

See Also

KnownBadBoysAttribute Members
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Members

The KnownBadBoysAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | KnownBadBoysAttribute()()()() | Reject known malicious users
Public method | KnownBadBoysAttribute(Int32) | Reject known malicious users
Public method | KnownBadBoysAttribute(Int32, Int32, Int32, String, String) | Reject known malicious users
Public method | KnownBadBoysAttribute(TimeSpan, Int32, TimeSpan, Uri) | Reject known malicious users
Public method | KnownBadBoysAttribute(RulesConfig) | Reject known malicious users

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

KnownBadBoysAttribute Class
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Constructor

Overload List

 | Name | Description
Public method | KnownBadBoysAttribute()()()() | Reject known malicious users
Public method | KnownBadBoysAttribute(Int32) | Reject known malicious users
Public method | KnownBadBoysAttribute(Int32, Int32, Int32, String, String) | Reject known malicious users
Public method | KnownBadBoysAttribute(TimeSpan, Int32, TimeSpan, Uri) | Reject known malicious users
Public method | KnownBadBoysAttribute(RulesConfig) | Reject known malicious users

See Also

KnownBadBoysAttribute Class
KnownBadBoysAttribute Members
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Constructor

Reject known malicious users

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownBadBoysAttribute()

See Also

KnownBadBoysAttribute Class
KnownBadBoysAttribute Overload
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Constructor (Int32)

Reject known malicious users

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownBadBoysAttribute(
    int blockDurationInSeconds
)

Parameters

blockDurationInSeconds
Type: Int32
The duration a user should be blocked

See Also

KnownBadBoysAttribute Class
KnownBadBoysAttribute Overload
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Constructor (Int32, Int32, Int32, String, String)

Reject known malicious users

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownBadBoysAttribute(
    int blockDurationInSeconds,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    string redirectToController,
    string redirectToAction
)

Parameters

blockDurationInSeconds
Type: Int32
The duration a user should be blocked
maximumAttempts
Type: Int32
how often a visit is redirected
maximumAttemptsInSeconds
Type: Int32
the time span used to measure maximum violation
redirectToController
Type: String
controller to redirect to
redirectToAction
Type: String
action to redirect to

See Also

KnownBadBoysAttribute Class
KnownBadBoysAttribute Overload
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Constructor (TimeSpan, Int32, TimeSpan, Uri)

Reject known malicious users

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownBadBoysAttribute(
    TimeSpan blockDuration,
    int maximumAttempts,
    TimeSpan maximumAttemptsIn,
    Uri redirectToUrl
)

Parameters

blockDuration
Type: TimeSpan
maximumAttempts
Type: Int32
maximumAttemptsIn
Type: TimeSpan
redirectToUrl
Type: Uri

See Also

KnownBadBoysAttribute Class
KnownBadBoysAttribute Overload
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Constructor (RulesConfig)

Reject known malicious users

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownBadBoysAttribute(
    RulesConfig config
)

Parameters

config
Type: Walter.Web.FireWall.Configurations..::..RulesConfig

See Also

KnownBadBoysAttribute Class
KnownBadBoysAttribute Overload
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Methods

The KnownBadBoysAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

KnownBadBoysAttribute Class
Walter.Web.FireWall.Annotations Namespace


KnownBadBoysAttribute Properties

The KnownBadBoysAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

KnownBadBoysAttribute Class
Walter.Web.FireWall.Annotations Namespace


LimitReffererAttribute Class

Attribute used to limit the locations where your API or Action can be called from. to a singe resource

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class LimitReffererAttribute

Remarks

Very must similar to cross site attribute and filter only this is not site but resource relevant and can be used to limit access. This method is ideal when you share views and pages in embedded resources but only allow access to a script or action when the page requesting the resource is listed in the pages allowed to request the endpoint.

See Also

LimitReffererAttribute Members
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall.Annotations..::..CrossSiteAttribute


LimitReffererAttribute Members

The LimitReffererAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | LimitReffererAttribute | Early penetration blocking by the firewall if the resource is accessed by a referrer not listed

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(LimitReffererAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Properties

 | Name | Description
Public property | AccessibleFrom | Gets the fully qualified URL's that the resource is accessible from
Public property | Arguments | Gets the argument send when executing.
Public property | GenerateIncident | if set to true to generate incident in the firewall.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


LimitReffererAttribute Constructor

Early penetration blocking by the firewall if the resource is accessed by a referrer not listed

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LimitReffererAttribute(
    bool generateIncident,
    params string[] accessibleFrom
)

Parameters

generateIncident
Type: Boolean
if set to true to generate incident in the firewall.
accessibleFrom
Type: array< String >[]()[][]
The fully qualified URL's that the resource is accessible from.

Remarks

The request will always block if the endpoint is accessed from a non-supported location this works when you like to block access to resources available only from a specific page or prohibit posts from an external location

Examples

The bellow sample shows how the AJAX call to update the users payment details is only available when it is send from the profile page regardless of the fact that the model is valid or not
C#
[HttpPost]
[LimitRefferer(generateIncident: false,"https://www.mydomain.com/profile", "https://localhost:5001/profile")]
public StatusCodeResult Post([FromBody] PaymentDetails model)
{

}

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


LimitReffererAttribute Methods

The LimitReffererAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(LimitReffererAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

LimitReffererAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(LimitReffererAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

LimitReffererAttribute Class
LimitReffererAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

LimitReffererAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
An Object to compare with this instance or nullNothingnullptra null reference (Nothing in Visual Basic).

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

LimitReffererAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(LimitReffererAttribute))

LimitReffererAttribute..::..Equals Method (Nullable<(Of <(<'LimitReffererAttribute>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<LimitReffererAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' LimitReffererAttribute >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

LimitReffererAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

LimitReffererAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


LimitReffererAttribute Properties

The LimitReffererAttribute type exposes the following members.

Properties

 | Name | Description
Public property | AccessibleFrom | Gets the fully qualified URL's that the resource is accessible from
Public property | Arguments | Gets the argument send when executing.
Public property | GenerateIncident | if set to true to generate incident in the firewall.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


AccessibleFrom Property

LimitReffererAttribute..::..AccessibleFrom Property

Gets the fully qualified URL's that the resource is accessible from

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string[] AccessibleFrom { get; set; }

Field Value

The accessible from.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


Arguments Property

LimitReffererAttribute..::..Arguments Property

Gets the argument send when executing.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Object Arguments { get; }

Field Value

The argument.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


GenerateIncident Property

LimitReffererAttribute..::..GenerateIncident Property

if set to true to generate incident in the firewall.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool GenerateIncident { get; set; }

Field Value

true if [generate incident]; otherwise, false.

See Also

LimitReffererAttribute Class
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Class

Will reject all requests from UserAgents used by bots or browsers that are considered to me malicious

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class MaliciousUserAgentsAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..MaliciousUserAgentsAttribute

See Also

MaliciousUserAgentsAttribute Members
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Members

The MaliciousUserAgentsAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | MaliciousUserAgentsAttribute(Int32) | Will reject all requests from UserAgents used by bots or browsers that are considered to me malicious
Public method | MaliciousUserAgentsAttribute(String, String) | Reject all malicious user agents used by bots and browsers and transfer them to a controller and action
Public method | MaliciousUserAgentsAttribute(Int32, Int32, String, String, Nullable<(Of <<'(Int32>)>>)) | Reject all malicious user agents used by bots and browsers after a fixed attempts and transfer them to a controller and action
Public method | MaliciousUserAgentsAttribute(Int32, Int32, Int32) | Reject all malicious user agents used by bots and browsers after a fixed attempts
Public method | MaliciousUserAgentsAttribute(Int32, Int32, Int32, String) | Reject all malicious user agents used by bots and browsers after a fixed attempts and redirect them to an external url

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

MaliciousUserAgentsAttribute Class
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Constructor

Overload List

 | Name | Description
Public method | MaliciousUserAgentsAttribute(Int32) | Will reject all requests from UserAgents used by bots or browsers that are considered to me malicious
Public method | MaliciousUserAgentsAttribute(String, String) | Reject all malicious user agents used by bots and browsers and transfer them to a controller and action
Public method | MaliciousUserAgentsAttribute(Int32, Int32, String, String, Nullable<(Of <<'(Int32>)>>)) | Reject all malicious user agents used by bots and browsers after a fixed attempts and transfer them to a controller and action
Public method | MaliciousUserAgentsAttribute(Int32, Int32, Int32) | Reject all malicious user agents used by bots and browsers after a fixed attempts
Public method | MaliciousUserAgentsAttribute(Int32, Int32, Int32, String) | Reject all malicious user agents used by bots and browsers after a fixed attempts and redirect them to an external url

See Also

MaliciousUserAgentsAttribute Class
MaliciousUserAgentsAttribute Members
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Constructor (Int32)

Will reject all requests from UserAgents used by bots or browsers that are considered to me malicious

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MaliciousUserAgentsAttribute(
    int blockDurationInSeconds
)

Parameters

blockDurationInSeconds
Type: Int32
the duration to block the requester, the default is 20 minutes

Remarks

Flagging of agents can be done automatic, via subscription as well as automated where the systems AI will need to have a working sample for the type of agents that are generating incidents on your site as wall as the ration of benevolent activity that can be generated to camouflage the true intend

See Also

MaliciousUserAgentsAttribute Class
MaliciousUserAgentsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Constructor (String, String)

Reject all malicious user agents used by bots and browsers and transfer them to a controller and action

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MaliciousUserAgentsAttribute(
    string redirectToController,
    string redirectToAction
)

Parameters

redirectToController
Type: String
controller
redirectToAction
Type: String
action

Remarks

Flagging of agents can be done automatic, via subscription as well as automated where the systems AI will need to have a working sample for the type of agents that are generating incidents on your site as wall as the ration of benevolent activity that can be generated to camouflage the true intend

See Also

MaliciousUserAgentsAttribute Class
MaliciousUserAgentsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Constructor (Int32, Int32, String, String, Nullable(Int32))

MaliciousUserAgentsAttribute Constructor (Int32, Int32, String, String, Nullable<(Of <(<'Int32>)>)>)

Reject all malicious user agents used by bots and browsers after a fixed attempts and transfer them to a controller and action

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MaliciousUserAgentsAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    string redirectToController,
    string redirectToAction,
    Nullable<int> id
)

Parameters

maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsInSeconds
Type: Int32
time span in seconds to count the violations in
redirectToController
Type: String
controller
redirectToAction
Type: String
action
id
Type: Nullable <(Of <(<' Int32 >)>)>
an optional parameter to assign to the action on the controller

Remarks

Flagging of agents can be done automatic, via subscription as well as automated where the systems AI will need to have a working sample for the type of agents that are generating incidents on your site as wall as the ration of benevolent activity that can be generated to camouflage the true intend

See Also

MaliciousUserAgentsAttribute Class
MaliciousUserAgentsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Constructor (Int32, Int32, Int32)

Reject all malicious user agents used by bots and browsers after a fixed attempts

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MaliciousUserAgentsAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds
)

Parameters

maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsInSeconds
Type: Int32
time span in seconds to count the violations in
blockDurationInSeconds
Type: Int32
the duration the user should be blocked for

Remarks

Flagging of agents can be done automatic, via subscription as well as automated where the systems AI will need to have a working sample for the type of agents that are generating incidents on your site as wall as the ration of benevolent activity that can be generated to camouflage the true intend

See Also

MaliciousUserAgentsAttribute Class
MaliciousUserAgentsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Constructor (Int32, Int32, Int32, String)

Reject all malicious user agents used by bots and browsers after a fixed attempts and redirect them to an external url

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MaliciousUserAgentsAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds,
    string redirectToUrl
)

Parameters

maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsInSeconds
Type: Int32
time span in seconds to count the violations in
blockDurationInSeconds
Type: Int32
the duration the user should be blocked for
redirectToUrl
Type: String
the external URL to redirect to

Remarks

Flagging of agents can be done automatic, via subscription as well as automated where the systems AI will need to have a working sample for the type of agents that are generating incidents on your site as wall as the ration of benevolent activity that can be generated to camouflage the true intend

See Also

MaliciousUserAgentsAttribute Class
MaliciousUserAgentsAttribute Overload
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Methods

The MaliciousUserAgentsAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

MaliciousUserAgentsAttribute Class
Walter.Web.FireWall.Annotations Namespace


MaliciousUserAgentsAttribute Properties

The MaliciousUserAgentsAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

MaliciousUserAgentsAttribute Class
Walter.Web.FireWall.Annotations Namespace


MinifyAttribute Class

Will minify the Razor output if the request is a HTTPGet and does not contain an error.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class MinifyAttribute

Remarks

Do not use minification on anything but RazorViews as it will likely corrupt all other media types.

Examples

Minify the rendered Razor view. You can access the compressed in the post processing as well as in the page reporting.
C#
[Minify]
   public async Task<IActionResult> Index()
   {
     var model= await Factory.NavigationModel().ConfigureAwait(false);
     return View(model);
   }

See Also

MinifyAttribute Members
Walter.Web.FireWall.Annotations Namespace
IFireWall..::..OnResourceSend
IPageRequest..::..Compression
DiscoveredRout..::..Minifiction


MinifyAttribute Members

The MinifyAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | MinifyAttribute | Early penetration blocking the firewall

See Also

MinifyAttribute Class
Walter.Web.FireWall.Annotations Namespace


MinifyAttribute Constructor

Early penetration blocking the firewall

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MinifyAttribute()

See Also

MinifyAttribute Class
Walter.Web.FireWall.Annotations Namespace


ModelFilterAttribute Class

Validates that the model send back to the application is in the right scope

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ModelFilterAttribute : ProtectorBase

Remarks

Look at the Model errors in ModelState, you will find a key with the Key of the property PageGroupPropertyName or the name you look for as defined in PageGroupPropertyName if it did not validate.

If raising incidents is enabled the firewall will look at the user and if the total incidents on the user surpass your configured threshold the user will be blocked

If the model did not validate you can be sure that you are getting data that is submitted by a 3rd party

Examples

You can use this filter attribute in several was to validate that the data submitted to your action and page is actually coming from you.
Browser Navigator supports simple submits, the Beacon Action accepts the json model inside the string value. We tell the ModelFilter to get the value from a specific json property
[HttpPost, Route(Links.BeaconPoint), AllowAnonymous]
   [CrossSite, Ignore(skip: FireWallGuardActions.ALL & ~FireWallGuardActions.RejectCrossSiteRequests)]
   [ModelFilter(Associations = RequestersAssociations.InCurrentPage
              , GenerateIncident = false
              , PageGroupPropertyName =Walter.Web.FireWall.Beacon.PageRequestGroupIdModelCode)]
   public StatusCodeResult Beacon(string model)
   {
       if (!ModelState.IsValid)
       {
           _logger?.Lazy().LogInformation("beacon: failed has {errors} errors", ModelState.ErrorCount);
           return this.Ok();//no need to make a fuss
       }

       if (!string.IsNullOrEmpty(model))
       {
           var beacon = JsonConvert.DeserializeObject<Beacon>(model);
           _fireWall.ModelIsValid(pageContext: _page, model: beacon, out var errors);
           if (errors.Sum(s => s.BlockingSeverityScore) < 100)
           {
               _fireWall.LogPageRequest(beacon, _page);
           }
           else
           {
               foreach (var error in errors)
               {
                   _logger?.Lazy().LogInformation("beacon: {warn}", error);
               }
           }
       }
       return this.Ok();
   }
This sample shows how one can pass the validation to a Ajax script and allow only pages from the current session or the page that loaded the JavaScript if the session expired
using Walter.Web.FireWall;
using Walter.Web.FireWall.Annotations;
using Walter.Web.FireWall.Filters;

[FireWall]
public class OrderController : Controller
{
    readonly IPageRequest _page;
    public OrderController(IPageRequest page)
    {
        _page = page;
    }

    public IActionResult Index()
    {
        var model = new OrderModel(_page.PageRequestGroupId);
        return View(model);
    }

    [HttpPost]
    [ModelFilter(associations : RequestersAssociations.InCurrentPage | RequestersAssociations.InCurrentSession)]
    public IActionResult AjaxUpdate(OrderModel model)
    {
        if (ModelState.IsValid)
        {
            //your code
            return Ok();
        }
        return this.BadRequest("Model not valid");
    }

    [Route("js/Variables.js")]
    [NoCache]
    [Ignore(skip: FireWallGuardActions.EmbeddedResources)]
    public FileResult VariablesScript()
    {
        var sb = new StringBuilder();
        sb.AppendLine($"var userSalt ='{_page.User.GetUserSalt()}';");
        sb.AppendLine($"var pageId = {_page.PageRequestGroupId};");

        byte[] java = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
        return File(java, "application/javascript");
    }
}

public class OrderModel: IPageRequestGroupIdValidation
{
    public OrderModel(long firewallPageGroup)
    {
        PageRequestGroupId = firewallPageGroup.ToString(CultureInfo.InvariantCulture);
    }

    public string PageRequestGroupId { get; set; }
}

Inheritance Hierarchy

Walter.Web.FireWall.Filters..::..ProtectorBase
Walter.Web.FireWall.Annotations..::..ModelFilterAttribute

See Also

ModelFilterAttribute Members
Walter.Web.FireWall.Annotations Namespace
Have your model implement IPageRequestGroupIdValidation to allow it to validate the model
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


ModelFilterAttribute Members

The ModelFilterAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | ModelFilterAttribute(RequestersAssociations, Boolean) | Validates that the model send back to the application is from Java script send in the right scope
Public method | ModelFilterAttribute(RequestersAssociations, Boolean, String) | Validates that the model send back to the application is from Java script send in the right scope

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(ModelFilterAttribute>)>>)) | Equalses the specified other.
Public method | GetHashCode | Gets the hash code.

Properties

 | Name | Description
Public property | Associations | The association the model should have with the firewall session
Public property | GenerateIncident | Indicates that the firewall will generate a incident if the model filter has the wrong association
Public property | PageGroupPropertyName | if assigned, it will look for a property in the query string or in a property in the model send to the action or page for the PageSessionId

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace


ModelFilterAttribute Constructor

Overload List

 | Name | Description
Public method | ModelFilterAttribute(RequestersAssociations, Boolean) | Validates that the model send back to the application is from Java script send in the right scope
Public method | ModelFilterAttribute(RequestersAssociations, Boolean, String) | Validates that the model send back to the application is from Java script send in the right scope

See Also

ModelFilterAttribute Class
ModelFilterAttribute Members
Walter.Web.FireWall.Annotations Namespace


ModelFilterAttribute Constructor (RequestersAssociations, Boolean)

Validates that the model send back to the application is from Java script send in the right scope

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ModelFilterAttribute(
    RequestersAssociations associations,
    bool generateIncident
)

Parameters

associations
Type: Walter.Web.FireWall..::..RequestersAssociations
how restrictive the link needs to be between the page served and the callback
generateIncident
Type: Boolean
If true it will generate a incident

Remarks

Look at the Model errors in ModelState, you will find a key with the Key of the property PageGroupPropertyName or the name you look for as defined in PageGroupPropertyName if it did not validate.

If raising incidents is enabled the firewall will look at the user and if the total incidents on the user surpass your configured threshold the user will be blocked

If the model did not validate you can be sure that you are getting data that is submitted by a 3rd party

Examples

The bellow example shows that for the page served only requests with the right page id are allowed to be accepted by the Ajax PostBack. The page Id is passed as a variable to the JavaScript via the original model or as in this case by a simple script in a file result that is linked as a .js resource in the page or jQuery's jQuery.loadScript function
C#
[FireWall]
public class OrderController : Controller
{
    readonly IPageRequest _page;
    public OrderController(IPageRequest page)
    {
        _page = page;
    }

    [HttpPost]
    [ModelFilter(associations : RequestersAssociations.InCurrentPage | RequestersAssociations.InCurrentSession)]
    public IActionResult AjaxUpdate(OrderModel model)
    {
        if (ModelState.IsValid)
        {
            //your code
            return Ok();
        }
        return this.BadRequest("Model not valid");
    }
    [Route("js/Variables.js")]
    [NoCache]
    [Ignore(skip: FireWallGuardActions.EmbeddedResources)]
    public FileResult VariablesScript()
    {
        var sb = new StringBuilder();
        sb.AppendLine($"var userSalt ='{_page.User.GetUserSalt()}';");
        sb.AppendLine($"var pageId = {_page.PageRequestGroupId};");

        byte[] java = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
        return File(java, "application/javascript");
    }
}

See Also

ModelFilterAttribute Class
ModelFilterAttribute Overload
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall..::..IPageRequest
IPageRequest..::..PageRequestGroupId
IPageRequest..::..User
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


ModelFilterAttribute Constructor (RequestersAssociations, Boolean, String)

Validates that the model send back to the application is from Java script send in the right scope

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ModelFilterAttribute(
    RequestersAssociations associations,
    bool generateIncident,
    string pageGroupPropertyName
)

Parameters

associations
Type: Walter.Web.FireWall..::..RequestersAssociations
how restrictive the link needs to be between the page served and the callback
generateIncident
Type: Boolean
If true it will generate a incident
pageGroupPropertyName
Type: String
the name of the property that contains the PageRequestGroupId value

Remarks

Look at the Model errors in ModelState, you will find a key with the Key of the property PageGroupPropertyName or the name you look for as defined in PageGroupPropertyName if it did not validate.

If raising incidents is enabled the firewall will look at the user and if the total incidents on the user surpass your configured threshold the user will be blocked

If the model did not validate you can be sure that you are getting data that is submitted by a 3rd party

Examples

The bellow example shows that for the page served only requests with the right page id are allowed to be accepted by the Ajax PostBack. The page Id is passed as a variable to the JavaScript via the original model or as in this case by a simple script in a file result that is linked as a .js resource in the page or jQuery's jQuery.loadScript function
C#
[FireWall]
public class OrderController : Controller
{
    readonly IPageRequest _page;
    public OrderController(IPageRequest page)
    {
        _page = page;
    }

    [HttpPost]
    [ModelFilter(associations : RequestersAssociations.InCurrentPage | RequestersAssociations.InCurrentSession,pageRequestGroupId:nameof(OrderModel.PageId))]
    public IActionResult AjaxUpdate(OrderModel model)
    {
        if (ModelState.IsValid)
        {
            //your code
            return Ok();
        }
        return this.BadRequest("Model not valid");
    }
    [Route("js/Variables.js")]
    [NoCache]
    [Ignore(skip: FireWallGuardActions.EmbeddedResources)]
    public FileResult VariablesScript()
    {
        var sb = new StringBuilder();
        sb.AppendLine($"var userSalt ='{_page.User.GetUserSalt()}';");
        sb.AppendLine($"var pageId = {_page.PageRequestGroupId};");

        byte[] java = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
        return File(java, "application/javascript");
    }
}

See Also

ModelFilterAttribute Class
ModelFilterAttribute Overload
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall..::..IPageRequest
IPageRequest..::..PageRequestGroupId
IPageRequest..::..User
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


ModelFilterAttribute Methods

The ModelFilterAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(ModelFilterAttribute>)>>)) | Equalses the specified other.
Public method | GetHashCode | Gets the hash code.

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

ModelFilterAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(ModelFilterAttribute>)>>)) | Equalses the specified other.

See Also

ModelFilterAttribute Class
ModelFilterAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

ModelFilterAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Equalses the specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object.

Return Value

bool.

See Also

ModelFilterAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(ModelFilterAttribute))

ModelFilterAttribute..::..Equals Method (Nullable<(Of <(<'ModelFilterAttribute>)>)>)

Equalses the specified other.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<ModelFilterAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' ModelFilterAttribute >)>)>
The other.

Return Value

bool.

See Also

ModelFilterAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

ModelFilterAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace


ModelFilterAttribute Properties

The ModelFilterAttribute type exposes the following members.

Properties

 | Name | Description
Public property | Associations | The association the model should have with the firewall session
Public property | GenerateIncident | Indicates that the firewall will generate a incident if the model filter has the wrong association
Public property | PageGroupPropertyName | if assigned, it will look for a property in the query string or in a property in the model send to the action or page for the PageSessionId

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace


Associations Property

ModelFilterAttribute..::..Associations Property

The association the model should have with the firewall session

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RequestersAssociations Associations { get; set; }

Remarks

The default is that the user must be associated with the page and it must have been send in the same firewall session. This will exclude any pages send to the user but in a different session effectively blocking session replay but allowing posting back to any API endpoint

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall..::..RequestersAssociations
P:Walter.Web.FireWall.Filters.ModelFilterAttribute.GenerateIncident when true then the firewall will generate an incident


GenerateIncident Property

ModelFilterAttribute..::..GenerateIncident Property

Indicates that the firewall will generate a incident if the model filter has the wrong association

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool GenerateIncident { get; set; }

Remarks

The request maybe rejected depending on the maximum allowed incidents in your firewall configuration.

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace
ModelFilterAttribute..::..Associations
IPageRequest..::..MaximumViolationsReached()()()()
RulesConfig..::..TolerateMaximumViolations


PageGroupPropertyName Property

ModelFilterAttribute..::..PageGroupPropertyName Property

if assigned, it will look for a property in the query string or in a property in the model send to the action or page for the PageSessionId

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> PageGroupPropertyName { get; }

Remarks

The property name can be any name and the value can be omitted if you use a model submitted implements IPageRequestGroupIdValidation

See Also

ModelFilterAttribute Class
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall..::..IPageRequestGroupIdValidation


NoCacheAttribute Class

Tells the razor engine to include not cash the response in any form or way guarantying that the action is re-executed

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class NoCacheAttribute

Remarks

Sometimes it's helpful to ensure a action is not cashed especially if the action generates user JavaScript that is dependent on the page.

Examples

The bellow example injects the pageId and userSalt in a virtual java script file that will always re-load when a page is requested. this allows you to avoid the need to pass parameters to trick cashing in the browser.
C#
public class HomeController : Controller
{
    private readonly IPageRequest _page;

    public DocumentationController( IPageRequest page)
    {
        _page = page;
    }

    [Route("js/Variables.js")]
    [NoCash]
    [Ignore(skip: FireWallGuardActions.EmbeddedResources)]
    public FileResult Script()
    {
        var sb = new StringBuilder();
        sb.AppendLine($"var userSalt ='{_page.User.GetUserSalt()}';");
        sb.AppendLine($"var pageId = {_page.PageRequestGroupId};");

        byte[] java = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
        return File(java, "application/javascript");
    }
}

See Also

NoCacheAttribute Members
Walter.Web.FireWall.Annotations Namespace


NoCacheAttribute Members

The NoCacheAttribute type exposes the following members.

Methods

 | Name | Description
Public method | OnResultExecuting | Called when [result executing].

See Also

NoCacheAttribute Class
Walter.Web.FireWall.Annotations Namespace


NoCacheAttribute Methods

The NoCacheAttribute type exposes the following members.

Methods

 | Name | Description
Public method | OnResultExecuting | Called when [result executing].

See Also

NoCacheAttribute Class
Walter.Web.FireWall.Annotations Namespace


OnResultExecuting Method

NoCacheAttribute..::..OnResultExecuting Method

Called when [result executing].

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void OnResultExecuting(
    ResultExecutingContext context
)

Parameters

context
Type: ResultExecutingContext
The filter context.

Exceptions

Exception | Condition
[ArgumentNullException] | filterContext

See Also

NoCacheAttribute Class
Walter.Web.FireWall.Annotations Namespace


PageRefreshAttribute Class

Tells the firewall how ofter a page can be refreshed by the user during a page visit. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class PageRefreshAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..PageRefreshAttribute

See Also

PageRefreshAttribute Members
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Members

The PageRefreshAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | PageRefreshAttribute()()()() | Tells the firewall that a page can't be refreshed by the user during a page visit. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, TimeSpan, TimeSpan) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, String) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, Uri) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, TimeSpan, TimeSpan, Uri) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, Int32, Int32, String) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0.
Public method | PageRefreshAttribute(Int32, String, String) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, TimeSpan, TimeSpan, String, String, Int32) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, Int32, Int32, String, String, Int32) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | IgnoreRefreshCount | Gets the ignore refresh count.
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

PageRefreshAttribute Class
Walter.Web.FireWall.Annotations Namespace


PageRefreshAttribute Constructor

Overload List

 | Name | Description
Public method | PageRefreshAttribute()()()() | Tells the firewall that a page can't be refreshed by the user during a page visit. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, TimeSpan, TimeSpan) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, String) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, Uri) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, TimeSpan, TimeSpan, Uri) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, Int32, Int32, String) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0.
Public method | PageRefreshAttribute(Int32, String, String) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, TimeSpan, TimeSpan, String, String, Int32) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]
Public method | PageRefreshAttribute(Int32, Int32, Int32, String, String, Int32) | Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

See Also

PageRefreshAttribute Class
PageRefreshAttribute Members
Walter.Web.FireWall.Annotations Namespace


PageRefreshAttribute Constructor

Tells the firewall that a page can't be refreshed by the user during a page visit. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute()

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, TimeSpan, TimeSpan)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    TimeSpan maximumAttemptsIn,
    TimeSpan blockDuration
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
maximumAttemptsIn
Type: TimeSpan
duration where occurrence is counted in a given time-span
blockDuration
Type: TimeSpan
duration a requests are blocked

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, String)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    string redirectUrl
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
redirectUrl
Type: String
The fully qualified URL to redirect to, typically an external link

Exceptions

Exception | Condition
[System.ArgumentException] | Redirect may not be null or empty - redirectUrl
[System.ArgumentException] | The url provided by redirect url is not valid, the format is not a full valid url

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, Uri)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    Uri redirectToUrl
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
redirectToUrl
Type: Uri
The fully qualified URL to redirect to, typically an external link or a link with several query parameters

Exceptions

Exception | Condition
[System.ArgumentException] | Redirect may not be null or empty - redirectUrl
[System.ArgumentException] | The url provided by redirect url is not valid, the format is not a full valid url

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, TimeSpan, TimeSpan, Uri)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    TimeSpan maximumAttemptsIn,
    TimeSpan blockDuration,
    Uri redirectToUrl
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
maximumAttemptsIn
Type: TimeSpan
duration where occurrence is counted in a given time-span
blockDuration
Type: TimeSpan
duration a requests are blocked
redirectToUrl
Type: Uri
The fully qualified URL to redirect to, typically an external link or a link with several query parameters

Exceptions

Exception | Condition
[System.ArgumentException] | Redirect may not be null or empty - redirectUrl
[System.ArgumentException] | The url provided by redirect url is not valid, the format is not a full valid url

Remarks

This method is designed to be called with code

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, Int32, Int32, String)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    int maximumAttemptsInSeconds,
    int blockDurationSeconds,
    string redirectToUrl
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
maximumAttemptsInSeconds
Type: Int32
duration where occurrence is counted in a given time-span
blockDurationSeconds
Type: Int32
duration a requests are blocked
redirectToUrl
Type: String
The fully qualified URL to redirect to, typically an external link or a link with several query parameters

Exceptions

Exception | Condition
[System.ArgumentException] | Redirect may not be null or empty - redirectUrl
[System.ArgumentException] | The url provided by redirect url is not valid, the format is not a full valid url

Remarks

This method is designed to be used in annotations

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, String, String)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    string redirectToController,
    string redirectToAction
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
redirectToController
Type: String
the controller to redirect to
redirectToAction
Type: String
the action to redirect to

Exceptions

Exception | Condition
[System.ArgumentException] | controller mus be provided - controller
[System.ArgumentException] | action must be provided - action

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, TimeSpan, TimeSpan, String, String, Int32)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    TimeSpan maximumAttemptsIn,
    TimeSpan blockDuration,
    string redirectToController,
    string redirectToAction,
    int id
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
maximumAttemptsIn
Type: TimeSpan
duration where occurrence is counted in a given time-span
blockDuration
Type: TimeSpan
duration a requests are blocked
redirectToController
Type: String
the controller to redirect to
redirectToAction
Type: String
the action to redirect to
id
Type: Int32
optional argument to pass to the action

Exceptions

Exception | Condition
[System.ArgumentException] | controller mus be provided - controller
[System.ArgumentException] | action must be provided - action

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Constructor (Int32, Int32, Int32, String, String, Int32)

Tells the firewall that a page can be refreshed by the user during a page visit, the refresh count is however limited to a specific count, can be 0. Implements the [System.Attribute]

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageRefreshAttribute(
    int ignoreRefreshCount,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds,
    string redirectToController,
    string redirectToAction,
    int id
)

Parameters

ignoreRefreshCount
Type: Int32
The amount of times a page or resource may be re-loaded
maximumAttemptsInSeconds
Type: Int32
duration where occurrence is counted in a given time-span
blockDurationInSeconds
Type: Int32
duration a requests are blocked
redirectToController
Type: String
the controller to redirect to
redirectToAction
Type: String
the action to redirect to
id
Type: Int32
optional argument to pass to the action

Exceptions

Exception | Condition
[System.ArgumentException] | controller mus be provided - controller
[System.ArgumentException] | action must be provided - action

See Also

PageRefreshAttribute Class
PageRefreshAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


PageRefreshAttribute Methods

The PageRefreshAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

PageRefreshAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

PageRefreshAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

PageRefreshAttribute Class
PageRefreshAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method

PageRefreshAttribute..::..Equals Method

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

PageRefreshAttribute Class
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

PageRefreshAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

PageRefreshAttribute Class
Walter.Web.FireWall.Annotations Namespace


PageRefreshAttribute Properties

The PageRefreshAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | IgnoreRefreshCount | Gets the ignore refresh count.
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

PageRefreshAttribute Class
Walter.Web.FireWall.Annotations Namespace


IgnoreRefreshCount Property

PageRefreshAttribute..::..IgnoreRefreshCount Property

Gets the ignore refresh count.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int IgnoreRefreshCount { get; set; }

Field Value

The number of times to ignore refresh count.

Remarks

Values less than 1 will be ignored and the default of 1 will be applied

See Also

PageRefreshAttribute Class
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Class

Page scrubbing attribute indicates that the endpoint will be protected from data scrubbing

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class PageScrubbingAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..PageScrubbingAttribute

See Also

PageScrubbingAttribute Members
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Members

The PageScrubbingAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | PageScrubbingAttribute()()()() | Enables the page scrubbing rule on a endpoint with the default rules, meaning the page may only be rendered 1x
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs) | Overwrite rule engine for scrubbing detection and set it less aggressive
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs, String, String, Int32) | Overwrite rule engine for scrubbing detection
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs, String, String) | Overwrite rule engine for scrubbing detection
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs, Uri) | Overwrite rule engine for scrubbing detection

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(PageScrubbingAttribute>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | Matcher | if not assigned it will default to rule engine
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

PageScrubbingAttribute Class
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Constructor

Overload List

 | Name | Description
Public method | PageScrubbingAttribute()()()() | Enables the page scrubbing rule on a endpoint with the default rules, meaning the page may only be rendered 1x
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs) | Overwrite rule engine for scrubbing detection and set it less aggressive
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs, String, String, Int32) | Overwrite rule engine for scrubbing detection
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs, String, String) | Overwrite rule engine for scrubbing detection
Public method | PageScrubbingAttribute(Int32, Int32, EndPointCompairs, Uri) | Overwrite rule engine for scrubbing detection

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Members
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Constructor

Enables the page scrubbing rule on a endpoint with the default rules, meaning the page may only be rendered 1x

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageScrubbingAttribute()

Remarks

Use this only if you reject any re-rendering of this page is not excepted

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Overload
Walter.Web.FireWall.Annotations Namespace
Walter.Web.FireWall.Annotations..::..PageRefreshAttribute


PageScrubbingAttribute Constructor (Int32, Int32, EndPointCompairs)

Overwrite rule engine for scrubbing detection and set it less aggressive

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageScrubbingAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    EndPointCompairs matcher
)

Parameters

maximumAttempts
Type: Int32
how often data can be rendered, defaults to 5
maximumAttemptsInSeconds
Type: Int32
time-frame where the page is measured in, default is 60 seconds
matcher
Type: Walter.Web.FireWall..::..EndPointCompairs
Definition rule how scrubbing will be detected, default is path and query

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Constructor (Int32, Int32, EndPointCompairs, String, String, Int32)

Overwrite rule engine for scrubbing detection

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageScrubbingAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    EndPointCompairs matcher,
    string redirectToController,
    string redirectToAction,
    int id
)

Parameters

maximumAttempts
Type: Int32
how often data can be rendered
maximumAttemptsInSeconds
Type: Int32
time-frame where the page is measured in
matcher
Type: Walter.Web.FireWall..::..EndPointCompairs
Definition rule how scrubbing will be detected, default is path and query
redirectToController
Type: String
the controller to redirect to
redirectToAction
Type: String
the action to redirect to
id
Type: Int32
the argument to use in the redirect url

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Constructor (Int32, Int32, EndPointCompairs, String, String)

Overwrite rule engine for scrubbing detection

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageScrubbingAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    EndPointCompairs matcher,
    string redirectToController,
    string redirectToAction
)

Parameters

maximumAttempts
Type: Int32
how often data can be rendered
maximumAttemptsInSeconds
Type: Int32
time-frame where the page is measured in
matcher
Type: Walter.Web.FireWall..::..EndPointCompairs
Definition rule how scrubbing will be detected, default is path and query
redirectToController
Type: String
the controller to redirect to
redirectToAction
Type: String
the action to redirect to

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Constructor (Int32, Int32, EndPointCompairs, Uri)

Overwrite rule engine for scrubbing detection

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PageScrubbingAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    EndPointCompairs matcher,
    Uri redirectToUrl
)

Parameters

maximumAttempts
Type: Int32
how often data can be rendered
maximumAttemptsInSeconds
Type: Int32
time-frame where the page is measured in
matcher
Type: Walter.Web.FireWall..::..EndPointCompairs
Definition rule how scrubbing will be detected, default is path and query
redirectToUrl
Type: Uri
external URL to redirect to

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Methods

The PageScrubbingAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(PageScrubbingAttribute>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

PageScrubbingAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

PageScrubbingAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(PageScrubbingAttribute>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

PageScrubbingAttribute Class
PageScrubbingAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

PageScrubbingAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

PageScrubbingAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(PageScrubbingAttribute))

PageScrubbingAttribute..::..Equals Method (Nullable<(Of <(<'PageScrubbingAttribute>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<PageScrubbingAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' PageScrubbingAttribute >)>)>
The other.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

PageScrubbingAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

PageScrubbingAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

PageScrubbingAttribute Class
Walter.Web.FireWall.Annotations Namespace


PageScrubbingAttribute Properties

The PageScrubbingAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | Matcher | if not assigned it will default to rule engine
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

PageScrubbingAttribute Class
Walter.Web.FireWall.Annotations Namespace


Matcher Property

PageScrubbingAttribute..::..Matcher Property

if not assigned it will default to rule engine

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EndPointCompairs Matcher { get; set; }

See Also

PageScrubbingAttribute Class
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Class

Rule for dealing with poisoned cookies

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class PoisonedCookiesAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..PoisonedCookiesAttribute

See Also

PoisonedCookiesAttribute Members
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Members

The PoisonedCookiesAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | PoisonedCookiesAttribute()()()() | Ensure the firewall protects the endpoint from poisoned cookies
Public method | PoisonedCookiesAttribute(String, String, Nullable<(Of <<'(Int32>)>>), Int32, Int32) | Ensure the firewall protects the endpoint from poisoned cookies and redirect to an action and controller
Public method | PoisonedCookiesAttribute(Int32, Int32, Int32) | Ensure the firewall protects the endpoint from poisoned cookies redirect to an action and controller
Public method | PoisonedCookiesAttribute(String, String, Int32, Int32) | Ensure the firewall protects the endpoint from poisoned cookies and redirect to an action and controller

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

PoisonedCookiesAttribute Class
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Constructor

Overload List

 | Name | Description
Public method | PoisonedCookiesAttribute()()()() | Ensure the firewall protects the endpoint from poisoned cookies
Public method | PoisonedCookiesAttribute(String, String, Nullable<(Of <<'(Int32>)>>), Int32, Int32) | Ensure the firewall protects the endpoint from poisoned cookies and redirect to an action and controller
Public method | PoisonedCookiesAttribute(Int32, Int32, Int32) | Ensure the firewall protects the endpoint from poisoned cookies redirect to an action and controller
Public method | PoisonedCookiesAttribute(String, String, Int32, Int32) | Ensure the firewall protects the endpoint from poisoned cookies and redirect to an action and controller

See Also

PoisonedCookiesAttribute Class
PoisonedCookiesAttribute Members
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Constructor

Ensure the firewall protects the endpoint from poisoned cookies

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PoisonedCookiesAttribute()

See Also

PoisonedCookiesAttribute Class
PoisonedCookiesAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Constructor (String, String, Nullable(Int32), Int32, Int32)

PoisonedCookiesAttribute Constructor (String, String, Nullable<(Of <(<'Int32>)>)>, Int32, Int32)

Ensure the firewall protects the endpoint from poisoned cookies and redirect to an action and controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PoisonedCookiesAttribute(
    string redirectToController,
    string redirectToAction,
    Nullable<int> id,
    int maximumAttempts,
    int blockDurationInSeconds
)

Parameters

redirectToController
Type: String
controller
redirectToAction
Type: String
action
id
Type: Nullable <(Of <(<' Int32 >)>)>
Optional parameter argument when re-directing
maximumAttempts
Type: Int32
how often you will tolerate before blocking
blockDurationInSeconds
Type: Int32
the duration of blocking. the default is 24 hours

See Also

PoisonedCookiesAttribute Class
PoisonedCookiesAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Constructor (Int32, Int32, Int32)

Ensure the firewall protects the endpoint from poisoned cookies redirect to an action and controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PoisonedCookiesAttribute(
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    int blockDurationInSeconds
)

Parameters

maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsInSeconds
Type: Int32
time span to count the violations in
blockDurationInSeconds
Type: Int32
the duration of blocking. the default is 24 hours

See Also

PoisonedCookiesAttribute Class
PoisonedCookiesAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Constructor (String, String, Int32, Int32)

Ensure the firewall protects the endpoint from poisoned cookies and redirect to an action and controller

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PoisonedCookiesAttribute(
    string redirectToController,
    string redirectToAction,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

redirectToController
Type: String
controller
redirectToAction
Type: String
action
maximumAttempts
Type: Int32
provide a number of how often you are willing to redirect the user per minute
maximumAttemptsInSeconds
Type: Int32
time span to count the violations in

See Also

PoisonedCookiesAttribute Class
PoisonedCookiesAttribute Overload
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Methods

The PoisonedCookiesAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

PoisonedCookiesAttribute Class
Walter.Web.FireWall.Annotations Namespace


PoisonedCookiesAttribute Properties

The PoisonedCookiesAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

PoisonedCookiesAttribute Class
Walter.Web.FireWall.Annotations Namespace


SecureCookiesAttribute Class

Ensure that all cookies are secure unless explicitly specified and data in the cookie is GDPR protected if at all possible

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class SecureCookiesAttribute

Remarks

You can read and write in clear text, the firewall will ensure the data is secure in. this method is limited to HttpOnly cookies a JavaScript cookies bypass this filter and will not be able to read the cookie cookies.

See Also

SecureCookiesAttribute Members
Walter.Web.FireWall.Annotations Namespace
CookieConfig..::..UseTransparentEncryption
Walter.Web.FireWall.Filters..::..SecureCookiesFilter


SecureCookiesAttribute Members

The SecureCookiesAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | SecureCookiesAttribute | Early penetration blocking the firewall

See Also

SecureCookiesAttribute Class
Walter.Web.FireWall.Annotations Namespace


SecureCookiesAttribute Constructor

Early penetration blocking the firewall

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SecureCookiesAttribute()

See Also

SecureCookiesAttribute Class
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Class

Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class SiteMapAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..SiteMapAttribute

See Also

SiteMapAttribute Members
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Members

The SiteMapAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | SiteMapAttribute(SiteMapSearchResultFilter) | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)
Public method | SiteMapAttribute(SiteMapSearchResultFilter, String, String, Nullable<(Of <<'(Int32>)>>)) | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)
Public method | SiteMapAttribute(SiteMapSearchResultFilter, Int32, Int32, String, String, Nullable<(Of <<'(Int32>)>>)) | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SiteMapFilter | The site-map filter that the request pass for the firewall to allow it to render the page
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

SiteMapAttribute Class
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Constructor

Overload List

 | Name | Description
Public method | SiteMapAttribute(SiteMapSearchResultFilter) | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)
Public method | SiteMapAttribute(SiteMapSearchResultFilter, String, String, Nullable<(Of <<'(Int32>)>>)) | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)
Public method | SiteMapAttribute(SiteMapSearchResultFilter, Int32, Int32, String, String, Nullable<(Of <<'(Int32>)>>)) | Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)

See Also

SiteMapAttribute Class
SiteMapAttribute Members
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Constructor (SiteMapSearchResultFilter)

Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapAttribute(
    SiteMapSearchResultFilter siteMapFilter
)

Parameters

siteMapFilter
Type: Walter.Web.FireWall.Filters..::..SiteMapSearchResultFilter
The site-map filter that the request must satisfy

See Also

SiteMapAttribute Class
SiteMapAttribute Overload
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Constructor (SiteMapSearchResultFilter, String, String, Nullable(Int32))

SiteMapAttribute Constructor (SiteMapSearchResultFilter, String, String, Nullable<(Of <(<'Int32>)>)>)

Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapAttribute(
    SiteMapSearchResultFilter siteMapFilter,
    string redirectToController,
    string redirectToAction,
    Nullable<int> id
)

Parameters

siteMapFilter
Type: Walter.Web.FireWall.Filters..::..SiteMapSearchResultFilter
The site-map filter that the request must satisfy
redirectToController
Type: String
The controller to redirect to
redirectToAction
Type: String
the action to redirect to
id
Type: Nullable <(Of <(<' Int32 >)>)>
Optional argument for the URL to redirect to

See Also

SiteMapAttribute Class
SiteMapAttribute Overload
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Constructor (SiteMapSearchResultFilter, Int32, Int32, String, String, Nullable(Int32))

SiteMapAttribute Constructor (SiteMapSearchResultFilter, Int32, Int32, String, String, Nullable<(Of <(<'Int32>)>)>)

Enforce that the request url was rendered to the user (only when using firewall that has user discovery enabled)

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapAttribute(
    SiteMapSearchResultFilter siteMapFilter,
    int maximumAttempts,
    int maximumAttemptsInSeconds,
    string redirectToController,
    string redirectToAction,
    Nullable<int> id
)

Parameters

siteMapFilter
Type: Walter.Web.FireWall.Filters..::..SiteMapSearchResultFilter
The site-map filter that the request must satisfy
maximumAttempts
Type: Int32
the maximum times you will tolerate the violation
maximumAttemptsInSeconds
Type: Int32
the time span to measure the violations in
redirectToController
Type: String
The controller to redirect to
redirectToAction
Type: String
the action to redirect to
id
Type: Nullable <(Of <(<' Int32 >)>)>
Optional argument for the URL to redirect to

Remarks

Will redirect after a request is made to a page that was not rendered on the users razor page

See Also

SiteMapAttribute Class
SiteMapAttribute Overload
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Methods

The SiteMapAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

SiteMapAttribute Class
Walter.Web.FireWall.Annotations Namespace


SiteMapAttribute Properties

The SiteMapAttribute type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SiteMapFilter | The site-map filter that the request pass for the firewall to allow it to render the page
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

SiteMapAttribute Class
Walter.Web.FireWall.Annotations Namespace


SiteMapFilter Property

SiteMapAttribute..::..SiteMapFilter Property

The site-map filter that the request pass for the firewall to allow it to render the page

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapSearchResultFilter SiteMapFilter { get; }

See Also

SiteMapAttribute Class
Walter.Web.FireWall.Annotations Namespace


UsersAttribute Class

Class FireWallAttribute stating what type of consumers are allowed. Helps mitigate scrubbing and bots reading the sites data

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class UsersAttribute : BaseFireWallAttribute

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.Annotations..::..UsersAttribute

See Also

UsersAttribute Members
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration
Walter.Web.FireWall.TagHelpers..::..UserTypeRenderTagHelper


UsersAttribute Members

The UsersAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | UsersAttribute(UserTypes, Boolean) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, UserTypes) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, String, String, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, String, String, Int32, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, UserTypes, String, String, Int32, Int32, Int32) | Initializes a new instance of the UsersAttribute class.
Public method | UsersAttribute(UserTypes, UserTypes, String, String, Int32, Int32) | Initializes a new instance of the UsersAttribute class.
Public method | UsersAttribute(UserTypes, Boolean, String, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, Boolean, Uri, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(UsersAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

Properties

 | Name | Description
Public property | AllowedUsers | Gets the filter that states who is allowed to the route.
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | BlockedUsers | Gets the blockedUsers user types.
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

UsersAttribute Class
Walter.Web.FireWall.Annotations Namespace


UsersAttribute Constructor

Overload List

 | Name | Description
Public method | UsersAttribute(UserTypes, Boolean) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, UserTypes) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, String, String, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, String, String, Int32, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, UserTypes, String, String, Int32, Int32, Int32) | Initializes a new instance of the UsersAttribute class.
Public method | UsersAttribute(UserTypes, UserTypes, String, String, Int32, Int32) | Initializes a new instance of the UsersAttribute class.
Public method | UsersAttribute(UserTypes, Boolean, String, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.
Public method | UsersAttribute(UserTypes, Boolean, Uri, Int32, Int32) | Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

See Also

UsersAttribute Class
UsersAttribute Members
Walter.Web.FireWall.Annotations Namespace


UsersAttribute Constructor (UserTypes, Boolean)

Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes users,
    bool areAllowed
)

Parameters

users
Type: Walter.Web.FireWall..::..UserTypes
Types of users that are being configured
areAllowed
Type: Boolean
Indicates if these user are allowed or these users are blockedUsers

Examples

Annotate a controller with Firewall annotations
using Microsoft.AspNetCore.Mvc;
   using Microsoft.Extensions.Logging;
   using System.Diagnostics;
   using Test.Dll.Direct.Models;

   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 |UserTypes.NotDiscovered)]
       [BlockDuration(duration: 60, sliding: true, doubleDurationPerIncident: true)]
       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           public IActionResult Index()
           {
               return View();
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, UserTypes)

Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes allowedUsers,
    UserTypes blockedUsers
)

Parameters

allowedUsers
Type: Walter.Web.FireWall..::..UserTypes
The user groups that are allowed.
blockedUsers
Type: Walter.Web.FireWall..::..UserTypes
The user groups that are blockedUsers.

Examples

Annotate a controller with Firewall annotations
using Microsoft.AspNetCore.Mvc;
   using Microsoft.Extensions.Logging;
   using System.Diagnostics;
   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(allowedUsers: UserTypes.IsHuman | UserTypes.IsSearchEngine |UserTypes.NotDiscovered, blockedUsers:UserTypes.IsMalicious)]
       [BlockDuration(duration: 60, sliding: true, doubleDurationPerIncident: true)]
       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           public IActionResult Index()
           {
               return View();
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, String, String, Int32, Int32)

Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes allowedUsers,
    string redirectToController,
    string redirectAction,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

allowedUsers
Type: Walter.Web.FireWall..::..UserTypes
The type of users to allowedUsers access.
redirectToController
Type: String
The redirect to controller.
redirectAction
Type: String
The redirect action.
maximumAttempts
Type: Int32
how often will you redirect wrong users
maximumAttemptsInSeconds
Type: Int32
the timespan that the attempts are counted in

Remarks

It would be advised that the action you transfer to is optimized as it may get quite a few hits when under attack.

Examples

Transfer if page is re-red several times in 30 seconds or less by the 'same' user
using Microsoft.AspNetCore.Mvc;

   namespace MyProject.Controllers
   {

       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           [HttpGet]
           [HitRatio(maximumAttempts:2,maximumAttemptsInSecconds: 30, redirectToController:"Home", redirectAction:"Blocked", id:(int)BlockingReasons.ToManyRequests) ]
           public IActionResult Index()
           {
               return View();
           }

           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Blocked(int reason)
           {
               return View((BlockingReasons)reason);
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, String, String, Int32, Int32, Int32)

Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes allowedUsers,
    string redirectToController,
    string redirectAction,
    int id,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

allowedUsers
Type: Walter.Web.FireWall..::..UserTypes
The type of users to allowedUsers access.
redirectToController
Type: String
The redirect to controller.
redirectAction
Type: String
The redirect action.
id
Type: Int32
Argument that you are going to pass, could be a enum cast as a int or a given ID that you work with
maximumAttempts
Type: Int32
how often will you redirect wrong users
maximumAttemptsInSeconds
Type: Int32
the timespan that the attempts are counted in

Remarks

It would be advised that the action you transfer to is optimized as it may get quite a few hits when under attack.

Examples

Transfer if page is re-red several times in 30 seconds or less by the 'same' user
using Microsoft.AspNetCore.Mvc;

   namespace MyProject.Controllers
   {

       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           [HttpGet]
           [HitRatio(maximumAttempts:2,maximumAttemptsInSecconds: 30, redirectToController:"Home", redirectAction:"Blocked", id:(int)BlockingReasons.ToManyRequests) ]
           public IActionResult Index()
           {
               return View();
           }

           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Blocked(int reason)
           {
               return View((BlockingReasons)reason);
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, UserTypes, String, String, Int32, Int32, Int32)

Initializes a new instance of the UsersAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes allowedUsers,
    UserTypes blockedUsers,
    string redirectToController,
    string redirectAction,
    int id,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

allowedUsers
Type: Walter.Web.FireWall..::..UserTypes
blockedUsers
Type: Walter.Web.FireWall..::..UserTypes
The user types that are blockedUsers from accessing the resource.
redirectToController
Type: String
The redirect violations to this controller.
redirectAction
Type: String
The redirect violations will be send to this action.
id
Type: Int32
The identifier used to tell the action why the redirection occurred.
maximumAttempts
Type: Int32
how often will you redirect wrong users
maximumAttemptsInSeconds
Type: Int32
the timespan that the attempts are counted in

Remarks

It would be advised that the action you transfer to is optimized as it may get quite a few hits when under attack.

Examples

Transfer if page is re-red several times in 30 seconds or less by the 'same' user
using Microsoft.AspNetCore.Mvc;

   namespace MyProject.Controllers
   {

       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           [HttpGet]
           [User(allowed:UserTypes.Anyone, blockedUsers:UserTypes.IsMalicious)]
           [HitRatio(maximumAttempts:2,maximumAttemptsInSecconds: 30, redirectToController:"Home", redirectAction:"Blocked", id:(int)BlockingReasons.ToManyRequests) ]
           public IActionResult Index()
           {
               return View();
           }

           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Blocked(int reason)
           {
               return View((BlockingReasons)reason);
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, UserTypes, String, String, Int32, Int32)

Initializes a new instance of the UsersAttribute class.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes allowedUsers,
    UserTypes blockedUsers,
    string redirectToController,
    string redirectAction,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

allowedUsers
Type: Walter.Web.FireWall..::..UserTypes
blockedUsers
Type: Walter.Web.FireWall..::..UserTypes
The user types that are blockedUsers from accessing the resource.
redirectToController
Type: String
The redirect violations to this controller.
redirectAction
Type: String
The redirect violations will be send to this action.
maximumAttempts
Type: Int32
how often will you redirect wrong users
maximumAttemptsInSeconds
Type: Int32
the timespan that the attempts are counted in

Remarks

It would be advised that the action you transfer to is optimized as it may get quite a few hits when under attack.

Examples

Transfer if page is re-red several times in 30 seconds or less by the 'same' user
using Microsoft.AspNetCore.Mvc;

   namespace MyProject.Controllers
   {

       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           [HttpGet]
           [User(allowed:UserTypes.Anyone, blockedUsers:UserTypes.IsMalicious)]
           [HitRatio(maximumAttempts:2,maximumAttemptsInSecconds: 30, redirectToController:"Home", redirectAction:"Blocked", id:(int)BlockingReasons.ToManyRequests) ]
           public IActionResult Index()
           {
               return View();
           }

           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Blocked(int reason)
           {
               return View((BlockingReasons)reason);
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, Boolean, String, Int32, Int32)

Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes users,
    bool areAllowed,
    string redirectUrl,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

users
Type: Walter.Web.FireWall..::..UserTypes
the users that are set
areAllowed
Type: Boolean
true if allowed, false if these user types are blocked
redirectUrl
Type: String
An absolute URL to redirect to, must start with http.
maximumAttempts
Type: Int32
how often will you redirect wrong users
maximumAttemptsInSeconds
Type: Int32
the timespan that the attempts are counted in

Examples

AllowRaiseIncident only access to humans or those we did not discover
C#
using Microsoft.AspNetCore.Mvc;

   namespace MyProject.Controllers
   {

       public sealed class HomeController : Controller
       {
           private readonly ILogger<HomeController> _logger;

           public HomeController(ILogger<HomeController> logger)
           {
               _logger = logger;
           }

           [HttpGet]
           [User(allowedUsers=UserTypes.Human|UserTypes.NotDiscovered, redirectUrl="http://www.google.com"]
           public IActionResult Index()
           {
               return View();
           }

           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Blocked()
           {
               return View();
           }

           public IActionResult Privacy()
           {
               return View();
           }
           [Ignore]
           [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
           public IActionResult Error()
           {
               return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
           }
       }
   }

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace
View the IPageRequest.ViolationsStack to access all violations on the page including those raised by this filter
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


UsersAttribute Constructor (UserTypes, Boolean, Uri, Int32, Int32)

Initializes a new instance of the UsersAttribute class telling a controller action what to do when violations are discovered.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UsersAttribute(
    UserTypes users,
    bool areAllowed,
    Uri redirectUrl,
    int maximumAttempts,
    int maximumAttemptsInSeconds
)

Parameters

users
Type: Walter.Web.FireWall..::..UserTypes
the users that are set
areAllowed
Type: Boolean
true if allowed, false if these user types are blocked
redirectUrl
Type: Uri
An absolute URL to redirect to, must start with http.
maximumAttempts
Type: Int32
how often will you redirect wrong users
maximumAttemptsInSeconds
Type: Int32
the timespan that the attempts are counted in

See Also

UsersAttribute Class
UsersAttribute Overload
Walter.Web.FireWall.Annotations Namespace


UsersAttribute Methods

The UsersAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(UsersAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code.
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)

See Also

UsersAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

UsersAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(UsersAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object.
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)

See Also

UsersAttribute Class
UsersAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

UsersAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The other.

Return Value

bool

See Also

UsersAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(UsersAttribute))

UsersAttribute..::..Equals Method (Nullable<(Of <(<'UsersAttribute>)>)>)

Returns a value that indicates whether this instance is equal to a specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<UsersAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' UsersAttribute >)>)>
The other.

Return Value

bool

See Also

UsersAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

UsersAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

UsersAttribute Class
Walter.Web.FireWall.Annotations Namespace


UsersAttribute Properties

The UsersAttribute type exposes the following members.

Properties

 | Name | Description
Public property | AllowedUsers | Gets the filter that states who is allowed to the route.
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | BlockedUsers | Gets the blockedUsers user types.
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

UsersAttribute Class
Walter.Web.FireWall.Annotations Namespace


AllowedUsers Property

UsersAttribute..::..AllowedUsers Property

Gets the filter that states who is allowed to the route.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes AllowedUsers { get; set; }

Field Value

The filter stating who is allowed to access the page.

See Also

UsersAttribute Class
Walter.Web.FireWall.Annotations Namespace


BlockedUsers Property

UsersAttribute..::..BlockedUsers Property

Gets the blockedUsers user types.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes BlockedUsers { get; set; }

Field Value

The blockedUsers users.

See Also

UsersAttribute Class
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Class

White-List IP address single or ranges for a specific guard action

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class WhiteListIPAttribute

Remarks

You can remove the protection from a given endpoint by white-listing a IP address or address range

See Also

WhiteListIPAttribute Members
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Members

The WhiteListIPAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | WhiteListIPAttribute(IPAddress, FireWallGuardActions) | AllowRaiseIncident a single IP address to access the resource, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(String, Int32, FireWallGuardActions) | white list a IP address range to access the resource, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(IPAddress, IPAddress, FireWallGuardActions) | AllowRaiseIncident a scope of IP addresses by providing a from and till IP address, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(String, FireWallGuardActions) | remove the validation of a single IP address to access the resource, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(String, String, FireWallGuardActions) | AllowRaiseIncident a scope of IP addresses by providing a from and till IP address, all other IP addresses will be blocked

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(WhiteListIPAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | IsWhiteListed(IPAddress, FireWallGuardActions) | Test to see if an action is white-listed for the IP and action
Public method | IsWhiteListed(Int64, FireWallGuardActions) | Test to see if an action is white-listed for the IP-CIDR and action

Properties

 | Name | Description
Public property | CidrEnd | Gets the cidr end.
Public property | CidrStart | Gets the cidr start.
Public property | SkipChecks | Tells the firewall if any other checks need to be executed, the default is to skip all tests

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Constructor

Overload List

 | Name | Description
Public method | WhiteListIPAttribute(IPAddress, FireWallGuardActions) | AllowRaiseIncident a single IP address to access the resource, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(String, Int32, FireWallGuardActions) | white list a IP address range to access the resource, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(IPAddress, IPAddress, FireWallGuardActions) | AllowRaiseIncident a scope of IP addresses by providing a from and till IP address, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(String, FireWallGuardActions) | remove the validation of a single IP address to access the resource, all other IP addresses will be blocked
Public method | WhiteListIPAttribute(String, String, FireWallGuardActions) | AllowRaiseIncident a scope of IP addresses by providing a from and till IP address, all other IP addresses will be blocked

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Members
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Constructor (IPAddress, FireWallGuardActions)

AllowRaiseIncident a single IP address to access the resource, all other IP addresses will be blocked

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListIPAttribute(
    IPAddress address,
    FireWallGuardActions skipChecks
)

Parameters

address
Type: IPAddress
The address to allow
skipChecks
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The modules to white list

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Constructor (String, Int32, FireWallGuardActions)

white list a IP address range to access the resource, all other IP addresses will be blocked

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListIPAttribute(
    string address,
    int cidr,
    FireWallGuardActions skipChecks
)

Parameters

address
Type: String
The address to allow
cidr
Type: Int32
the subnet number to generate a CIDR switch sample 192.168.0.0/16
skipChecks
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The modules to white list

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Constructor (IPAddress, IPAddress, FireWallGuardActions)

AllowRaiseIncident a scope of IP addresses by providing a from and till IP address, all other IP addresses will be blocked

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListIPAttribute(
    IPAddress from,
    IPAddress till,
    FireWallGuardActions skipChecks
)

Parameters

from
Type: IPAddress
inclusive start IP address
till
Type: IPAddress
inclusive end address IP address
skipChecks
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The modules to white list

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Constructor (String, FireWallGuardActions)

remove the validation of a single IP address to access the resource, all other IP addresses will be blocked

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListIPAttribute(
    string address,
    FireWallGuardActions skipChecks
)

Parameters

address
Type: String
The address to allow
skipChecks
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The modules to white list

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Constructor (String, String, FireWallGuardActions)

AllowRaiseIncident a scope of IP addresses by providing a from and till IP address, all other IP addresses will be blocked

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListIPAttribute(
    string fromAddress,
    string tillAddress,
    FireWallGuardActions skipChecks
)

Parameters

fromAddress
Type: String
inclusive start IP address
tillAddress
Type: String
inclusive end address IP address
skipChecks
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The modules to white list

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Methods

The WhiteListIPAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(WhiteListIPAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | IsWhiteListed(IPAddress, FireWallGuardActions) | Test to see if an action is white-listed for the IP and action
Public method | IsWhiteListed(Int64, FireWallGuardActions) | Test to see if an action is white-listed for the IP-CIDR and action

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

WhiteListIPAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(WhiteListIPAttribute>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

WhiteListIPAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
An Object to compare with this instance or nullNothingnullptra null reference (Nothing in Visual Basic).

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

WhiteListIPAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(WhiteListIPAttribute))

WhiteListIPAttribute..::..Equals Method (Nullable<(Of <(<'WhiteListIPAttribute>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<WhiteListIPAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' WhiteListIPAttribute >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

WhiteListIPAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

WhiteListIPAttribute..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


IsWhiteListed Method

WhiteListIPAttribute..::..IsWhiteListed Method

Overload List

 | Name | Description
Public method | IsWhiteListed(IPAddress, FireWallGuardActions) | Test to see if an action is white-listed for the IP and action
Public method | IsWhiteListed(Int64, FireWallGuardActions) | Test to see if an action is white-listed for the IP-CIDR and action

See Also

WhiteListIPAttribute Class
WhiteListIPAttribute Members
Walter.Web.FireWall.Annotations Namespace


IsWhiteListed Method (IPAddress, FireWallGuardActions)

WhiteListIPAttribute..::..IsWhiteListed Method (IPAddress, FireWallGuardActions)

Test to see if an action is white-listed for the IP and action

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed(
    IPAddress address,
    FireWallGuardActions action
)

Parameters

address
Type: IPAddress
the address to validate
action
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
the actions to test for the IP address

Return Value

True if white-listed

See Also

WhiteListIPAttribute Class
IsWhiteListed Overload
Walter.Web.FireWall.Annotations Namespace


IsWhiteListed Method (Int64, FireWallGuardActions)

WhiteListIPAttribute..::..IsWhiteListed Method (Int64, FireWallGuardActions)

Test to see if an action is white-listed for the IP-CIDR and action

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed(
    long cidr,
    FireWallGuardActions action
)

Parameters

cidr
Type: Int64
the address to validate
action
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
the actions to test for the IP address

Return Value

True if white-listed

See Also

WhiteListIPAttribute Class
IsWhiteListed Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListIPAttribute Properties

The WhiteListIPAttribute type exposes the following members.

Properties

 | Name | Description
Public property | CidrEnd | Gets the cidr end.
Public property | CidrStart | Gets the cidr start.
Public property | SkipChecks | Tells the firewall if any other checks need to be executed, the default is to skip all tests

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


CidrEnd Property

WhiteListIPAttribute..::..CidrEnd Property

Gets the cidr end.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<long> CidrEnd { get; set; }

Field Value

The cidr end.

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


CidrStart Property

WhiteListIPAttribute..::..CidrStart Property

Gets the cidr start.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CidrStart { get; set; }

Field Value

The cidr start.

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


SkipChecks Property

WhiteListIPAttribute..::..SkipChecks Property

Tells the firewall if any other checks need to be executed, the default is to skip all tests

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions SkipChecks { get; set; }

See Also

WhiteListIPAttribute Class
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Class

AllowRaiseIncident access only to all resources if they are in the same subnet as the server

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class WhiteListSubnetAttribute

See Also

WhiteListSubnetAttribute Members
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Members

The WhiteListSubnetAttribute type exposes the following members.

Constructors

 | Name | Description
Public method | WhiteListSubnetAttribute()()()() | indicates that the firewall will allow only LAN requests the a enpoint protected with this annotation
Public method | WhiteListSubnetAttribute(array<String>[]()[][]) | Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24 format for IPv4 and IPv6 like fe80::/64

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(WhiteListSubnetAttribute>)>>)) | Equalses the specified other.
Public method | GetHashCode | Gets the hash code.
Public method | IsWhiteListed(Int64) | Test to see if an action is white-listed for the IP-CIDR and action
Public method | IsWhiteListed(IPAddress) | Determines whether a given IP address is white-listed.

Properties

 | Name | Description
Public property | Range | The list of IP ranges to white-list

See Also

WhiteListSubnetAttribute Class
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Constructor

Overload List

 | Name | Description
Public method | WhiteListSubnetAttribute()()()() | indicates that the firewall will allow only LAN requests the a enpoint protected with this annotation
Public method | WhiteListSubnetAttribute(array<String>[]()[][]) | Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24 format for IPv4 and IPv6 like fe80::/64

See Also

WhiteListSubnetAttribute Class
WhiteListSubnetAttribute Members
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Constructor

indicates that the firewall will allow only LAN requests the a enpoint protected with this annotation

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListSubnetAttribute()

Remarks

It will record the IP address subnet masks when created, changes later will not be included

See Also

WhiteListSubnetAttribute Class
WhiteListSubnetAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Constructor (String[])

WhiteListSubnetAttribute Constructor (array<String>[]()[][])

Parse the IP address and Subnet mask to get the network you can use 192.168.0.1/24 format for IPv4 and IPv6 like fe80::/64

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WhiteListSubnetAttribute(
    params string[] cidrString
)

Parameters

cidrString
Type: array< String >[]()[][]
a set IP addresses, can be IP6 fe80::/64 and IP4 192.168.0.0/24

See Also

WhiteListSubnetAttribute Class
WhiteListSubnetAttribute Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Methods

The WhiteListSubnetAttribute type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(WhiteListSubnetAttribute>)>>)) | Equalses the specified other.
Public method | GetHashCode | Gets the hash code.
Public method | IsWhiteListed(Int64) | Test to see if an action is white-listed for the IP-CIDR and action
Public method | IsWhiteListed(IPAddress) | Determines whether a given IP address is white-listed.

See Also

WhiteListSubnetAttribute Class
Walter.Web.FireWall.Annotations Namespace


Equals Method

WhiteListSubnetAttribute..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Equalses the specified object.
Public method | Equals(Nullable<(Of <<'(WhiteListSubnetAttribute>)>>)) | Equalses the specified other.

See Also

WhiteListSubnetAttribute Class
WhiteListSubnetAttribute Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

WhiteListSubnetAttribute..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Equalses the specified object.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object.

Return Value

bool.

See Also

WhiteListSubnetAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(WhiteListSubnetAttribute))

WhiteListSubnetAttribute..::..Equals Method (Nullable<(Of <(<'WhiteListSubnetAttribute>)>)>)

Equalses the specified other.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<WhiteListSubnetAttribute> other
)

Parameters

other
Type: Nullable <(Of <(<' WhiteListSubnetAttribute >)>)>
The other.

Return Value

bool.

See Also

WhiteListSubnetAttribute Class
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

WhiteListSubnetAttribute..::..GetHashCode Method

Gets the hash code.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

int.

See Also

WhiteListSubnetAttribute Class
Walter.Web.FireWall.Annotations Namespace


IsWhiteListed Method

WhiteListSubnetAttribute..::..IsWhiteListed Method

Overload List

 | Name | Description
Public method | IsWhiteListed(Int64) | Test to see if an action is white-listed for the IP-CIDR and action
Public method | IsWhiteListed(IPAddress) | Determines whether a given IP address is white-listed.

See Also

WhiteListSubnetAttribute Class
WhiteListSubnetAttribute Members
Walter.Web.FireWall.Annotations Namespace


IsWhiteListed Method (Int64)

WhiteListSubnetAttribute..::..IsWhiteListed Method (Int64)

Test to see if an action is white-listed for the IP-CIDR and action

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed(
    long cidr
)

Parameters

cidr
Type: Int64
the address to validate

Return Value

True if white-listed

See Also

WhiteListSubnetAttribute Class
IsWhiteListed Overload
Walter.Web.FireWall.Annotations Namespace


IsWhiteListed Method (IPAddress)

WhiteListSubnetAttribute..::..IsWhiteListed Method (IPAddress)

Determines whether a given IP address is white-listed.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

true if white-listed.

See Also

WhiteListSubnetAttribute Class
IsWhiteListed Overload
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute Properties

The WhiteListSubnetAttribute type exposes the following members.

Properties

 | Name | Description
Public property | Range | The list of IP ranges to white-list

See Also

WhiteListSubnetAttribute Class
Walter.Web.FireWall.Annotations Namespace


Range Property

WhiteListSubnetAttribute..::..Range Property

The list of IP ranges to white-list

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<WhiteListSubnetAttribute..::..IPRange> Range { get; }

See Also

WhiteListSubnetAttribute Class
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute.IPRange Structure

WhiteListSubnetAttribute..::..IPRange Structure

Struct IPRange

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public struct IPRange

See Also

WhiteListSubnetAttribute..::..IPRange Members
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute.IPRange Members

WhiteListSubnetAttribute..::..IPRange Members

The WhiteListSubnetAttribute..::..IPRange type exposes the following members.

Constructors

 | Name | Description
Public method | WhiteListSubnetAttribute..::..IPRange | Initializes a new instance of the WhiteListSubnetAttribute..::..IPRange struct.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(WhiteListSubnetAttribute..::..IPRange) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | CidrEnd | Gets the cidr end.
Public property | CidrStart | Gets the cidr start.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


IPRange Constructor

Initializes a new instance of the WhiteListSubnetAttribute..::..IPRange struct.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPRange(
    long cidrStart,
    long cidrEnd
)

Parameters

cidrStart
Type: Int64
The cidr start.
cidrEnd
Type: Int64
The cidr end.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute.IPRange Methods

WhiteListSubnetAttribute..::..IPRange Methods

The WhiteListSubnetAttribute..::..IPRange type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(WhiteListSubnetAttribute..::..IPRange) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


Equals Method

IPRange..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(WhiteListSubnetAttribute..::..IPRange) | Indicates whether the current object is equal to another object of the same type.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
WhiteListSubnetAttribute..::..IPRange Members
Walter.Web.FireWall.Annotations Namespace


Equals Method (Nullable(Object))

IPRange..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Equals Overload
Walter.Web.FireWall.Annotations Namespace


Equals Method (IPRange)

IPRange..::..Equals Method (IPRange)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    WhiteListSubnetAttribute..::..IPRange other
)

Parameters

other
Type: Walter.Web.FireWall.Annotations..::..WhiteListSubnetAttribute..::..IPRange
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Equals Overload
Walter.Web.FireWall.Annotations Namespace


GetHashCode Method

IPRange..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute.IPRange Operators

WhiteListSubnetAttribute..::..IPRange Operators

The WhiteListSubnetAttribute..::..IPRange type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


Equality Operator

IPRange..::..Equality Operator

Implements the == operator.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator ==(
    WhiteListSubnetAttribute..::..IPRange left,
    WhiteListSubnetAttribute..::..IPRange right
)

Parameters

left
Type: Walter.Web.FireWall.Annotations..::..WhiteListSubnetAttribute..::..IPRange
The left.
right
Type: Walter.Web.FireWall.Annotations..::..WhiteListSubnetAttribute..::..IPRange
The right.

Return Value

The result of the operator.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


Inequality Operator

IPRange..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator !=(
    WhiteListSubnetAttribute..::..IPRange left,
    WhiteListSubnetAttribute..::..IPRange right
)

Parameters

left
Type: Walter.Web.FireWall.Annotations..::..WhiteListSubnetAttribute..::..IPRange
The left.
right
Type: Walter.Web.FireWall.Annotations..::..WhiteListSubnetAttribute..::..IPRange
The right.

Return Value

The result of the operator.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


WhiteListSubnetAttribute.IPRange Properties

WhiteListSubnetAttribute..::..IPRange Properties

The WhiteListSubnetAttribute..::..IPRange type exposes the following members.

Properties

 | Name | Description
Public property | CidrEnd | Gets the cidr end.
Public property | CidrStart | Gets the cidr start.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


CidrEnd Property

IPRange..::..CidrEnd Property

Gets the cidr end.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CidrEnd { get; }

Field Value

The cidr end.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


CidrStart Property

IPRange..::..CidrStart Property

Gets the cidr start.

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CidrStart { get; }

Field Value

The cidr start.

See Also

WhiteListSubnetAttribute..::..IPRange Structure
Walter.Web.FireWall.Annotations Namespace


Walter.Web.FireWall.Browser Namespace

Classes

 | Class | Description
Public class | UserAgentCounters | Counter for user features discovered to be used by your application (implies that you use storage)

Interfaces

 | Interface | Description
Public interface | IUABrowser | Class User Agent Browser returns the name as well as the version of a given browser.
Public interface | IUACpu | Class User Agent CPU informs the CPU used by the device.
Public interface | IUADevice | Class User Agent device informs what type of device is used to view the page.
Public interface | IUAEngine | Class User Agent Engine tells the version of rendering engine used by the browser.
Public interface | IUAOperatingSystem | Class User Agent OS informs the operating system used by the browser.
Public interface | IUAUserAgent | Class UserAgent contains data describing the browsers user-agent entry as meta data to the IUserAgent interface.
Public interface | IUserAgent | Get information on the user agent used by the user

Enumerations

 | Enumeration | Description
Public enumeration | UAAgentType | Enumerable IUAAgentType explains how we classify the browser used
Public enumeration | UADeviceType | Enumerable IUADeviceType
Public enumeration | UAEngineTypes | Enum UAEngineTypes


IUABrowser Interface

Class User Agent Browser returns the name as well as the version of a given browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUABrowser

See Also

IUABrowser Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


IUABrowser Members

The IUABrowser type exposes the following members.

Properties

 | Name | Description
Public property | Major | Gets or sets the major.
Public property | Name | Gets or sets the name of the browser.
Public property | Version | Gets or sets the version.

See Also

IUABrowser Interface
Walter.Web.FireWall.Browser Namespace


IUABrowser Properties

The IUABrowser type exposes the following members.

Properties

 | Name | Description
Public property | Major | Gets or sets the major.
Public property | Name | Gets or sets the name of the browser.
Public property | Version | Gets or sets the version.

See Also

IUABrowser Interface
Walter.Web.FireWall.Browser Namespace


Major Property

IUABrowser..::..Major Property

Gets or sets the major.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Major { get; }

Field Value

The major.

See Also

IUABrowser Interface
Walter.Web.FireWall.Browser Namespace


Name Property

IUABrowser..::..Name Property

Gets or sets the name of the browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Name { get; }

Field Value

The name.

See Also

IUABrowser Interface
Walter.Web.FireWall.Browser Namespace


Version Property

IUABrowser..::..Version Property

Gets or sets the version.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Version { get; }

Field Value

The version.

See Also

IUABrowser Interface
Walter.Web.FireWall.Browser Namespace


IUACpu Interface

Class User Agent CPU informs the CPU used by the device.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUACpu

See Also

IUACpu Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


IUACpu Members

The IUACpu type exposes the following members.

Properties

 | Name | Description
Public property | Architecture | Gets or sets the architecture.

See Also

IUACpu Interface
Walter.Web.FireWall.Browser Namespace


IUACpu Properties

The IUACpu type exposes the following members.

Properties

 | Name | Description
Public property | Architecture | Gets or sets the architecture.

See Also

IUACpu Interface
Walter.Web.FireWall.Browser Namespace


Architecture Property

IUACpu..::..Architecture Property

Gets or sets the architecture.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Architecture { get; }

Field Value

The architecture.

See Also

IUACpu Interface
Walter.Web.FireWall.Browser Namespace


IUADevice Interface

Class User Agent device informs what type of device is used to view the page.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUADevice

See Also

IUADevice Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


IUADevice Members

The IUADevice type exposes the following members.

Properties

 | Name | Description
Public property | Model | Gets or sets the model.
Public property | Type | Gets or sets the type.
Public property | Vendor | Gets or sets the vendor.

See Also

IUADevice Interface
Walter.Web.FireWall.Browser Namespace


IUADevice Properties

The IUADevice type exposes the following members.

Properties

 | Name | Description
Public property | Model | Gets or sets the model.
Public property | Type | Gets or sets the type.
Public property | Vendor | Gets or sets the vendor.

See Also

IUADevice Interface
Walter.Web.FireWall.Browser Namespace


Model Property

IUADevice..::..Model Property

Gets or sets the model.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Model { get; }

Field Value

The model.

See Also

IUADevice Interface
Walter.Web.FireWall.Browser Namespace


Type Property

IUADevice..::..Type Property

Gets or sets the type.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Type { get; }

Field Value

The type.

See Also

IUADevice Interface
Walter.Web.FireWall.Browser Namespace


Vendor Property

IUADevice..::..Vendor Property

Gets or sets the vendor.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Vendor { get; }

Field Value

The vendor.

See Also

IUADevice Interface
Walter.Web.FireWall.Browser Namespace


IUAEngine Interface

Class User Agent Engine tells the version of rendering engine used by the browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUAEngine

See Also

IUAEngine Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


IUAEngine Members

The IUAEngine type exposes the following members.

Properties

 | Name | Description
Public property | EngineTypes | The supported engine types
Public property | Name | Gets or sets the name.
Public property | Version | Gets or sets the version.

See Also

IUAEngine Interface
Walter.Web.FireWall.Browser Namespace


IUAEngine Properties

The IUAEngine type exposes the following members.

Properties

 | Name | Description
Public property | EngineTypes | The supported engine types
Public property | Name | Gets or sets the name.
Public property | Version | Gets or sets the version.

See Also

IUAEngine Interface
Walter.Web.FireWall.Browser Namespace


EngineTypes Property

IUAEngine..::..EngineTypes Property

The supported engine types

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UAEngineTypes EngineTypes { get; }

See Also

IUAEngine Interface
Walter.Web.FireWall.Browser Namespace


Name Property

IUAEngine..::..Name Property

Gets or sets the name.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Name { get; }

Field Value

The name.

See Also

IUAEngine Interface
Walter.Web.FireWall.Browser Namespace


Version Property

IUAEngine..::..Version Property

Gets or sets the version.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Version { get; }

Field Value

The version.

See Also

IUAEngine Interface
Walter.Web.FireWall.Browser Namespace


IUAOperatingSystem Interface

Class User Agent OS informs the operating system used by the browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUAOperatingSystem

See Also

IUAOperatingSystem Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


IUAOperatingSystem Members

The IUAOperatingSystem type exposes the following members.

Properties

 | Name | Description
Public property | Name | Gets or sets the name of the operating system.
Public property | Version | Gets or sets the version if known.

See Also

IUAOperatingSystem Interface
Walter.Web.FireWall.Browser Namespace


IUAOperatingSystem Properties

The IUAOperatingSystem type exposes the following members.

Properties

 | Name | Description
Public property | Name | Gets or sets the name of the operating system.
Public property | Version | Gets or sets the version if known.

See Also

IUAOperatingSystem Interface
Walter.Web.FireWall.Browser Namespace


Name Property

IUAOperatingSystem..::..Name Property

Gets or sets the name of the operating system.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Name { get; }

Field Value

The name.

See Also

IUAOperatingSystem Interface
Walter.Web.FireWall.Browser Namespace


Version Property

IUAOperatingSystem..::..Version Property

Gets or sets the version if known.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Version { get; }

Field Value

The version.

See Also

IUAOperatingSystem Interface
Walter.Web.FireWall.Browser Namespace


IUAUserAgent Interface

Class UserAgent contains data describing the browsers user-agent entry as meta data to the IUserAgent interface.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUAUserAgent

Remarks

The interface provides a wealth of information in regards to passive security features. An example is when user agent does not report a capability but we know the browser supports it than we know something is up.

When using web statistics this feature allow for reporting what type of users with what devices are visiting and helps with feature selection and fall-back capabilities in your code

See Also

IUAUserAgent Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUserAgent
IUserAgent..::..MetaData
IUserIdentity..::..UserAgent
IPageRequest..::..User


IUAUserAgent Members

The IUAUserAgent type exposes the following members.

Properties

 | Name | Description
Public property | AgentCapabilities | Gets the agent capabilities that we know the agent should have.
Public property | AgentType | Classification the user agent used
Public property | AssumedIntentions | The intentions that have been assumed or assigned
Public property | Browser | Gets or sets the browser.
Public property | ConsiderMalicious | If set it will consider the user agent to be a malicious agent
Public property | Counters | The counters collected by your application on how "bad" or "good" it is when some one with that user agent accesses the device
Public property | CPU | Gets or sets the CPU (if known).
Public property | Device | Gets or sets the device (if known).
Public property | DeviceType | The device type that matches the screen and user agent
Public property | Engine | Gets or sets the engine.
Public property | Header | Gets or sets the User Agent as reported by the browser.
Public property | ID | Storage ID for the Cookie used by database backing storage and will add additional statistical values to the Guard Modules
Public property | NativeJson | The native json representation of this object
Public property | OS | Gets or sets the operating system (if known).
Public property | UserAgentHash | Gets the user agent hash.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


IUAUserAgent Properties

The IUAUserAgent type exposes the following members.

Properties

 | Name | Description
Public property | AgentCapabilities | Gets the agent capabilities that we know the agent should have.
Public property | AgentType | Classification the user agent used
Public property | AssumedIntentions | The intentions that have been assumed or assigned
Public property | Browser | Gets or sets the browser.
Public property | ConsiderMalicious | If set it will consider the user agent to be a malicious agent
Public property | Counters | The counters collected by your application on how "bad" or "good" it is when some one with that user agent accesses the device
Public property | CPU | Gets or sets the CPU (if known).
Public property | Device | Gets or sets the device (if known).
Public property | DeviceType | The device type that matches the screen and user agent
Public property | Engine | Gets or sets the engine.
Public property | Header | Gets or sets the User Agent as reported by the browser.
Public property | ID | Storage ID for the Cookie used by database backing storage and will add additional statistical values to the Guard Modules
Public property | NativeJson | The native json representation of this object
Public property | OS | Gets or sets the operating system (if known).
Public property | UserAgentHash | Gets the user agent hash.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


AgentCapabilities Property

IUAUserAgent..::..AgentCapabilities Property

Gets the agent capabilities that we know the agent should have.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HashSet<string> AgentCapabilities { get; }

Field Value

Feature list of the agent

Remarks

This allows for nice statistical analysis for features supported by your users. The firewall uses this when using razor views in combination with the UserDiscovery, to see if a Bot is spoofing a user agent or a user is using developer tools.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


AgentType Property

IUAUserAgent..::..AgentType Property

Classification the user agent used

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UAAgentType AgentType { get; }

Field Value

The type of the agent used.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


AssumedIntentions Property

IUAUserAgent..::..AssumedIntentions Property

The intentions that have been assumed or assigned

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
KnownIntentions AssumedIntentions { get; set; }

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Browser Property

IUAUserAgent..::..Browser Property

Gets or sets the browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUABrowser Browser { get; }

Field Value

The browser.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


ConsiderMalicious Property

IUAUserAgent..::..ConsiderMalicious Property

If set it will consider the user agent to be a malicious agent

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool ConsiderMalicious { get; }

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Counters Property

IUAUserAgent..::..Counters Property

The counters collected by your application on how "bad" or "good" it is when some one with that user agent accesses the device

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserAgentCounters Counters { get; }

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


CPU Property

IUAUserAgent..::..CPU Property

Gets or sets the CPU (if known).

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUACpu CPU { get; }

Field Value

The CPU.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Device Property

IUAUserAgent..::..Device Property

Gets or sets the device (if known).

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUADevice Device { get; }

Field Value

The device.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


DeviceType Property

IUAUserAgent..::..DeviceType Property

The device type that matches the screen and user agent

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UADeviceType DeviceType { get; }

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Engine Property

IUAUserAgent..::..Engine Property

Gets or sets the engine.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUAEngine Engine { get; }

Field Value

The engine.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Header Property

IUAUserAgent..::..Header Property

Gets or sets the User Agent as reported by the browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Header { get; }

Field Value

The Hash.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


ID Property

IUAUserAgent..::..ID Property

Storage ID for the Cookie used by database backing storage and will add additional statistical values to the Guard Modules

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int ID { get; }

Field Value

Value has -1 of not stored in a database or if a database is not used

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


NativeJson Property

IUAUserAgent..::..NativeJson Property

The native json representation of this object

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string NativeJson { get; }

Remarks

This may contain extra data if you use a external UserAgent provider, this way you do not lose any data based on your subscription when using the subscription related data in your own code

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


OS Property

IUAUserAgent..::..OS Property

Gets or sets the operating system (if known).

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUAOperatingSystem OS { get; }

Field Value

The OS.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


UserAgentHash Property

IUAUserAgent..::..UserAgentHash Property

Gets the user agent hash.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int UserAgentHash { get; }

Field Value

The user agent hash.

See Also

IUAUserAgent Interface
Walter.Web.FireWall.Browser Namespace


IUserAgent Interface

Get information on the user agent used by the user

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserAgent

Remarks

The values in the user agent do not need to be real as users can "fake" these values. Also some bots are to lazy to create a user agent

See Also

IUserAgent Members
Walter.Web.FireWall.Browser Namespace


IUserAgent Members

The IUserAgent type exposes the following members.

Properties

 | Name | Description
Public property | Browser | Gets the browser.
Public property | Header | The raw value as how it was reported in the header
Public property | MetaData | All data known about this user agent
Public property | OperatingSystem | Gets the operating system.
Public property | Screen | Screen being used by the user (assumes that there is a user and the user agent has a screen
Public property | Version | Gets the browser version.

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


IUserAgent Properties

The IUserAgent type exposes the following members.

Properties

 | Name | Description
Public property | Browser | Gets the browser.
Public property | Header | The raw value as how it was reported in the header
Public property | MetaData | All data known about this user agent
Public property | OperatingSystem | Gets the operating system.
Public property | Screen | Screen being used by the user (assumes that there is a user and the user agent has a screen
Public property | Version | Gets the browser version.

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Browser Property

IUserAgent..::..Browser Property

Gets the browser.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Browser { get; }

Field Value

The browser.

Remarks

from UA meta data

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Header Property

IUserAgent..::..Header Property

The raw value as how it was reported in the header

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Header { get; }

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


MetaData Property

IUserAgent..::..MetaData Property

All data known about this user agent

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUAUserAgent MetaData { get; }

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


OperatingSystem Property

IUserAgent..::..OperatingSystem Property

Gets the operating system.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> OperatingSystem { get; }

Field Value

The operating system.

Remarks

from UA meta data

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Screen Property

IUserAgent..::..Screen Property

Screen being used by the user (assumes that there is a user and the user agent has a screen

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IUserScreen Screen { get; }

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


Version Property

IUserAgent..::..Version Property

Gets the browser version.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Version { get; }

Field Value

The version.

Remarks

from UA meta data

See Also

IUserAgent Interface
Walter.Web.FireWall.Browser Namespace


UAAgentType Enumeration

Enumerable IUAAgentType explains how we classify the browser used

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum UAAgentType

Members

Member name | Description
UnKnown | We are not sure, have not decided how to classify the browser being used
DeviceBrowser | Belongs to a physical device that is potentially being used by a human
Crawler | Is a crawler in some type of form

See Also

Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


UADeviceType Enumeration

Enumerable IUADeviceType

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum UADeviceType

Members

Member name | Description
Unknown | The device is still unknown
Desktop | The device is likely a desktop
Tablet | The device is likely a tablet
SmartPhone | The device is likely a smart phone
TV | The device is likely a TV
GameConsole | The device is likely a game console
IOT | The device is likely a IOT
NotDefined | The value was not defined
Projector | The device is likely a projector

See Also

Walter.Web.FireWall.Browser Namespace


UAEngineTypes Enumeration

Enum UAEngineTypes

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum UAEngineTypes

Members

Member name | Description
None | The none
Blink | The browser supports blink
Chromium | The browser supports chromium
EdgeHTML | The browser supports edge HTML
EkiohFlow | The browser supports ekioh flow
Gecko | The browser supports gecko
Goanna | The browser supports goanna
KHTML | The browser supports KHTML
NetFront | The browser supports net front
Presto | The browser supports presto
Trident | The browser supports trident
WebKit | The browser supports web kit

See Also

Walter.Web.FireWall.Browser Namespace


UserAgentCounters Class

Counter for user features discovered to be used by your application (implies that you use storage)

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class UserAgentCounters

Remarks

UserAgent Counters are used by the firewall to generate a predictive pattern for a given user agent. If a user is demonstrating the lack of or a unrecognized behaviour the AI engine will use this in it's weighting for flagging Spoofing etc.

See Also

UserAgentCounters Members
Walter.Web.FireWall.Browser Namespace
Walter.Web.FireWall.Browser..::..IUAUserAgent


UserAgentCounters Members

The UserAgentCounters type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(UserAgentCounters>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

Properties

 | Name | Description
Public property | Benevolent | counts how often we identified it as being used without incidents
Public property | Capabilities | counts how often Capabilities where communicated
Public property | Frequency | counts how often we identified it
Public property | IsAsk | Browser was used by a search engine we know comes from a Ask IP address
Public property | IsBaido | Browser was used by a search engine we know comes from a Baido IP address
Public property | IsBing | Browser was used by a search engine we know comes from a Bing IP address
Public property | IsBlekko | Browser was used by a search engine we know comes from a Blekko IP address
Public property | IsCrawler | counts how often we identified it as a crawler
Public property | IsDuckDuckGo | Browser was used by a search engine we know comes from a DuckDuckGo IP address
Public property | IsExalead | Browser was used by a search engine we know comes from a EXALEAD IP address
Public property | IsFaceBook | Browser was used by a search engine we know comes from a FaceBook IP address
Public property | IsGiGaBlast | Browser was used by a search engine we know comes from a GiGaBlast IP address
Public property | IsGoogle | Browser was used by a search engine we know comes from a Google IP address
Public property | IsHuman | counts how often we identified it as a being a human
Public property | IsLinkedIn | Browser was used by a search engine we know comes from a LinkedIn IP address
Public property | IsPinterest | Browser was used by a search engine we know comes from a Pinterest IP address
Public property | IsSearchEngine | User agent is discovered as being from a search engine IP address
Public property | IsTwitter | Browser was used by a search engine we know comes from a Twitter IP address
Public property | IsYahoo | Browser was used by a search engine we know comes from a Yahoo IP address
Public property | IsYandex | Browser was used by a search engine we know comes from a Yandex IP address
Public property | JavaScript | counts how JavaScript often what used
Public property | Malicious | counts how often we identified it as being used maliciously
Public property | NoKnownSearchEngine | User agent is discovered as not being from a known and supported search engine IP address
Public property | OnDesktop | Counts how often the use of a desktop type device was discovered
Public property | OnMobile | Counts how often the use of a mobile type device was discovered
Public property | OnTablet | Counts how often the use of a tablet type device was discovered
Public property | PoisonedCookies | Generated Poisoned Cookies
Public property | SupportsCookies | Supports the use of cookies
Public property | SuspiciousHeaders | counts how often suspicious headers where discovered
Public property | TriggeredIncidents | The number of incidents triggered using this user agent
Public property | UseKeybord | counts how often keyboard was used and was communicated
Public property | UseMouse | counts how often mouse capabilities and usage was communicated
Public property | UseScreenRotate | counts how often screen rotation capabilities and usage was communicated
Public property | UseTouchScreen | counts how often touch-screen capabilities and usage was communicated

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


UserAgentCounters Methods

The UserAgentCounters type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(UserAgentCounters>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


Equals Method

UserAgentCounters..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(UserAgentCounters>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

UserAgentCounters Class
UserAgentCounters Members
Walter.Web.FireWall.Browser Namespace


Equals Method (Nullable(Object))

UserAgentCounters..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

UserAgentCounters Class
Equals Overload
Walter.Web.FireWall.Browser Namespace


Equals Method (Nullable(UserAgentCounters))

UserAgentCounters..::..Equals Method (Nullable<(Of <(<'UserAgentCounters>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<UserAgentCounters> other
)

Parameters

other
Type: Nullable <(Of <(<' UserAgentCounters >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

UserAgentCounters Class
Equals Overload
Walter.Web.FireWall.Browser Namespace


GetHashCode Method

UserAgentCounters..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


UserAgentCounters Properties

The UserAgentCounters type exposes the following members.

Properties

 | Name | Description
Public property | Benevolent | counts how often we identified it as being used without incidents
Public property | Capabilities | counts how often Capabilities where communicated
Public property | Frequency | counts how often we identified it
Public property | IsAsk | Browser was used by a search engine we know comes from a Ask IP address
Public property | IsBaido | Browser was used by a search engine we know comes from a Baido IP address
Public property | IsBing | Browser was used by a search engine we know comes from a Bing IP address
Public property | IsBlekko | Browser was used by a search engine we know comes from a Blekko IP address
Public property | IsCrawler | counts how often we identified it as a crawler
Public property | IsDuckDuckGo | Browser was used by a search engine we know comes from a DuckDuckGo IP address
Public property | IsExalead | Browser was used by a search engine we know comes from a EXALEAD IP address
Public property | IsFaceBook | Browser was used by a search engine we know comes from a FaceBook IP address
Public property | IsGiGaBlast | Browser was used by a search engine we know comes from a GiGaBlast IP address
Public property | IsGoogle | Browser was used by a search engine we know comes from a Google IP address
Public property | IsHuman | counts how often we identified it as a being a human
Public property | IsLinkedIn | Browser was used by a search engine we know comes from a LinkedIn IP address
Public property | IsPinterest | Browser was used by a search engine we know comes from a Pinterest IP address
Public property | IsSearchEngine | User agent is discovered as being from a search engine IP address
Public property | IsTwitter | Browser was used by a search engine we know comes from a Twitter IP address
Public property | IsYahoo | Browser was used by a search engine we know comes from a Yahoo IP address
Public property | IsYandex | Browser was used by a search engine we know comes from a Yandex IP address
Public property | JavaScript | counts how JavaScript often what used
Public property | Malicious | counts how often we identified it as being used maliciously
Public property | NoKnownSearchEngine | User agent is discovered as not being from a known and supported search engine IP address
Public property | OnDesktop | Counts how often the use of a desktop type device was discovered
Public property | OnMobile | Counts how often the use of a mobile type device was discovered
Public property | OnTablet | Counts how often the use of a tablet type device was discovered
Public property | PoisonedCookies | Generated Poisoned Cookies
Public property | SupportsCookies | Supports the use of cookies
Public property | SuspiciousHeaders | counts how often suspicious headers where discovered
Public property | TriggeredIncidents | The number of incidents triggered using this user agent
Public property | UseKeybord | counts how often keyboard was used and was communicated
Public property | UseMouse | counts how often mouse capabilities and usage was communicated
Public property | UseScreenRotate | counts how often screen rotation capabilities and usage was communicated
Public property | UseTouchScreen | counts how often touch-screen capabilities and usage was communicated

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


Benevolent Property

UserAgentCounters..::..Benevolent Property

counts how often we identified it as being used without incidents

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long Benevolent { get; set; }

Field Value

integer value .

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


Capabilities Property

UserAgentCounters..::..Capabilities Property

counts how often Capabilities where communicated

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long Capabilities { get; set; }

Field Value

The capabilities.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


Frequency Property

UserAgentCounters..::..Frequency Property

counts how often we identified it

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long Frequency { get; set; }

Field Value

A counter counting how often this UA was seen.

Remarks

This counter forms the base line for the other counters as it allows to ask questions like "from how often we seen this type of user agent, how likely is it to be Malicious vs Benevolent"

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


IsAsk Property

UserAgentCounters..::..IsAsk Property

Browser was used by a search engine we know comes from a Ask IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsAsk { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Ask


IsBaido Property

UserAgentCounters..::..IsBaido Property

Browser was used by a search engine we know comes from a Baido IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsBaido { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Baido


IsBing Property

UserAgentCounters..::..IsBing Property

Browser was used by a search engine we know comes from a Bing IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsBing { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Bing


IsBlekko Property

UserAgentCounters..::..IsBlekko Property

Browser was used by a search engine we know comes from a Blekko IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsBlekko { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Blekko


IsCrawler Property

UserAgentCounters..::..IsCrawler Property

counts how often we identified it as a crawler

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsCrawler { get; set; }

Field Value

The is crawler.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


IsDuckDuckGo Property

UserAgentCounters..::..IsDuckDuckGo Property

Browser was used by a search engine we know comes from a DuckDuckGo IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsDuckDuckGo { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..DuckDuckGo


IsExalead Property

UserAgentCounters..::..IsExalead Property

Browser was used by a search engine we know comes from a EXALEAD IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsExalead { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Exalead


IsFaceBook Property

UserAgentCounters..::..IsFaceBook Property

Browser was used by a search engine we know comes from a FaceBook IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsFaceBook { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..FaceBook


IsGiGaBlast Property

UserAgentCounters..::..IsGiGaBlast Property

Browser was used by a search engine we know comes from a GiGaBlast IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsGiGaBlast { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..GiGaBlast


IsGoogle Property

UserAgentCounters..::..IsGoogle Property

Browser was used by a search engine we know comes from a Google IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsGoogle { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Google


IsHuman Property

UserAgentCounters..::..IsHuman Property

counts how often we identified it as a being a human

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsHuman { get; set; }

Field Value

The is human.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


IsLinkedIn Property

UserAgentCounters..::..IsLinkedIn Property

Browser was used by a search engine we know comes from a LinkedIn IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsLinkedIn { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..LinkedIn


IsPinterest Property

UserAgentCounters..::..IsPinterest Property

Browser was used by a search engine we know comes from a Pinterest IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsPinterest { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Pinterest


IsSearchEngine Property

UserAgentCounters..::..IsSearchEngine Property

User agent is discovered as being from a search engine IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsSearchEngine { get; set; }

Remarks

See SearchEngine for supported search engines

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


IsTwitter Property

UserAgentCounters..::..IsTwitter Property

Browser was used by a search engine we know comes from a Twitter IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsTwitter { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Twitter


IsYahoo Property

UserAgentCounters..::..IsYahoo Property

Browser was used by a search engine we know comes from a Yahoo IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsYahoo { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Yahoo


IsYandex Property

UserAgentCounters..::..IsYandex Property

Browser was used by a search engine we know comes from a Yandex IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long IsYandex { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace
SearchEngine..::..Yandex


JavaScript Property

UserAgentCounters..::..JavaScript Property

counts how JavaScript often what used

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long JavaScript { get; set; }

Field Value

The JavaScript counter.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


Malicious Property

UserAgentCounters..::..Malicious Property

counts how often we identified it as being used maliciously

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long Malicious { get; set; }

Field Value

The malicious.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


NoKnownSearchEngine Property

UserAgentCounters..::..NoKnownSearchEngine Property

User agent is discovered as not being from a known and supported search engine IP address

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long NoKnownSearchEngine { get; set; }

Remarks

See SearchEngine for supported search engines

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


OnDesktop Property

UserAgentCounters..::..OnDesktop Property

Counts how often the use of a desktop type device was discovered

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long OnDesktop { get; set; }

Field Value

The on desktop.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


OnMobile Property

UserAgentCounters..::..OnMobile Property

Counts how often the use of a mobile type device was discovered

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long OnMobile { get; set; }

Field Value

The on mobile.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


OnTablet Property

UserAgentCounters..::..OnTablet Property

Counts how often the use of a tablet type device was discovered

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long OnTablet { get; set; }

Field Value

The on tablet.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


PoisonedCookies Property

UserAgentCounters..::..PoisonedCookies Property

Generated Poisoned Cookies

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PoisonedCookies { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


SupportsCookies Property

UserAgentCounters..::..SupportsCookies Property

Supports the use of cookies

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long SupportsCookies { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


SuspiciousHeaders Property

UserAgentCounters..::..SuspiciousHeaders Property

counts how often suspicious headers where discovered

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long SuspiciousHeaders { get; set; }

Field Value

The suspicious headers count.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


TriggeredIncidents Property

UserAgentCounters..::..TriggeredIncidents Property

The number of incidents triggered using this user agent

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long TriggeredIncidents { get; set; }

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


UseKeybord Property

UserAgentCounters..::..UseKeybord Property

counts how often keyboard was used and was communicated

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UseKeybord { get; set; }

Field Value

The use touch screen.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


UseMouse Property

UserAgentCounters..::..UseMouse Property

counts how often mouse capabilities and usage was communicated

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UseMouse { get; set; }

Field Value

The use mouse.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


UseScreenRotate Property

UserAgentCounters..::..UseScreenRotate Property

counts how often screen rotation capabilities and usage was communicated

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UseScreenRotate { get; set; }

Field Value

The use screen rotate.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


UseTouchScreen Property

UserAgentCounters..::..UseTouchScreen Property

counts how often touch-screen capabilities and usage was communicated

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UseTouchScreen { get; set; }

Field Value

The use touch screen.

See Also

UserAgentCounters Class
Walter.Web.FireWall.Browser Namespace


Walter.Web.FireWall.Configurations Namespace

Classes

 | Class | Description
Public class | AdministrationConfig | Manage the site security using administration dashboard
Public class | BlockDurationConfig | Configuration class stating how blocking should be managed from a configuration perspective. Look at annotation attributes for per action configuration. you find them in name space Walter.Web.FireWall.Annotations
Public class | BlockRequestsConfig | configuration class stating how blocking is configured
Public class | CashingConfig | Class used for configuring cashing in the firewall
Public class | CertificateConfig | Certification configuration
Public class | ConfigurationsException | Error on a given configuration elements
Public class | CookieConfig | Cookie configuration for use in FireWall module
Public class | CypherConfig | Cypher configuration
Public class | DDOSConfig | DDOS specific configuration
Public class | HeaderConfig | This allows you to manages header configurations for those headers that are generated and used by the firewall
Public class | HoneyPotListnersRule | the listening rules for honey-pot service configuration
Public class | ReportingConfig | Configuration used by the firewall in regards to reporting. this can be disk, email database or your own implementation that implements IReportDesination.
Public class | RulesConfig | Firewall rules configuration element contains the default rules used by the firewall for those modules that are not having configurations annotated on either controller or method.
Public class | UrlValidationPatterns | URL validation patterns used in the rule engine
Public class | UserAgentConfig | User agent class telling the firewall on how to use and configure managing UserAgent statistics for the application
Public class | WebServicesConfig | Helper class used by the firewall's web services to generate and react to firewall related service endpoints

Interfaces

 | Interface | Description
Public interface | ICashingConfig | Interface used for configuring cashing in the firewall

Enumerations

 | Enumeration | Description
Public enumeration | AllowWhenCondition | Enum AllowWhenCondition
Public enumeration | CypherConfig..::..TamperDetection | Method to use to identify tempering with the data
Public enumeration | CypherStore | location where to get certificates from and or to use salt and password
Public enumeration | Duration | indicates that the unit is a in a given duration context
Public enumeration | ErrorConfigurationElement | States the element that is to be configured
Public enumeration | KPILogLevels | Firewall KPI logging configuration
Public enumeration | RepeatViolations | Rule controll how to act when repeat violations are incountered


AdministrationConfig Class

Manage the site security using administration dashboard

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class AdministrationConfig

See Also

AdministrationConfig Members
Walter.Web.FireWall.Configurations Namespace


AdministrationConfig Members

The AdministrationConfig type exposes the following members.

Methods

 | Name | Description
Public method | AllowedAccess | validates a IP address against a white-listed address
Public method | CanUpload | Determines whether this instance can upload using the specified address.
Public method | WhiteList | limit access to the site by specifying IP addresses that are able to access the site

Properties

 | Name | Description
Public property | APIKeyHeaderName | The name used in the header name to store the API key in
Public property | BlockAccessIsUserIsAssumedBlocked | Gets or sets a value indicating whether block access to administrative controller if the is user is assumed blocked.
Public property | DisplayName | The name you would like to assign to the data when connecting to the dashboard
Public property | ForceEncryption | Gets or sets the value indication that messages have to be encrypted before they are send over SSL
Public property | GenerateConnectFile | Instructs the firewall to generate a connect file
Public property | InvalidateRequestsAfter | Only accept requests if the time difference between the server and the client is withing a given timespan
Public property | LogDashboardRequests | Gets or sets the log administration requests that are not related to incidents.
Public property | MaximumFailedLoginAttempts | The amount of failed logins to tolerate
Public property | MaximumFailedLoginAttemptsIn | The timespan used to measure failed login attempts
Public property | Port | communicate with firewall on specified port
Public property | ProtectDiscoveryAPIWithPassword | Instructs the firewall to protect the discovery API with a password.
Public property | SaveAbuseReportsTo | Gets or sets the directory that will be used if Abuse reports are uploaded by the firewall dashboard user, if not set or set to null the default will be used
Public property | TokenConfiguration | the custom authentication token header used to authorize users in the firewall
Public property | Users | Users

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


AdministrationConfig Methods

The AdministrationConfig type exposes the following members.

Methods

 | Name | Description
Public method | AllowedAccess | validates a IP address against a white-listed address
Public method | CanUpload | Determines whether this instance can upload using the specified address.
Public method | WhiteList | limit access to the site by specifying IP addresses that are able to access the site

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowedAccess Method

AdministrationConfig..::..AllowedAccess Method

validates a IP address against a white-listed address

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowedAccess(
    Nullable<IPAddress> address,
    Nullable<ILogger> logger
)

Parameters

address
Type: Nullable <(Of <(<'IPAddress>)>)>
the address to validate
logger
Type: Nullable <(Of <(<'ILogger>)>)>

Return Value

True if the IP address is allowed to access firewall administration dashboard

Remarks

If no addresses have been WhiteList(array<String>[]()[][]) the request always returns true as there is no IP address filter configured

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


CanUpload Method

AdministrationConfig..::..CanUpload Method

Determines whether this instance can upload using the specified address.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool CanUpload(
    Nullable<IPAddress> address,
    Nullable<ILogger> logger
)

Parameters

address
Type: Nullable <(Of <(<'IPAddress>)>)>
The address.
logger
Type: Nullable <(Of <(<'ILogger>)>)>
The logger.

Return Value

true if this instance can upload the specified address; otherwise, false.

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


WhiteList Method

AdministrationConfig..::..WhiteList Method

limit access to the site by specifying IP addresses that are able to access the site

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void WhiteList(
    params string[] ipAdressStrings
)

Parameters

ipAdressStrings
Type: array< String >[]()[][]
3 formats are possible {IP} or {IP/cidr} or {IP}-{subnet}

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


AdministrationConfig Properties

The AdministrationConfig type exposes the following members.

Properties

 | Name | Description
Public property | APIKeyHeaderName | The name used in the header name to store the API key in
Public property | BlockAccessIsUserIsAssumedBlocked | Gets or sets a value indicating whether block access to administrative controller if the is user is assumed blocked.
Public property | DisplayName | The name you would like to assign to the data when connecting to the dashboard
Public property | ForceEncryption | Gets or sets the value indication that messages have to be encrypted before they are send over SSL
Public property | GenerateConnectFile | Instructs the firewall to generate a connect file
Public property | InvalidateRequestsAfter | Only accept requests if the time difference between the server and the client is withing a given timespan
Public property | LogDashboardRequests | Gets or sets the log administration requests that are not related to incidents.
Public property | MaximumFailedLoginAttempts | The amount of failed logins to tolerate
Public property | MaximumFailedLoginAttemptsIn | The timespan used to measure failed login attempts
Public property | Port | communicate with firewall on specified port
Public property | ProtectDiscoveryAPIWithPassword | Instructs the firewall to protect the discovery API with a password.
Public property | SaveAbuseReportsTo | Gets or sets the directory that will be used if Abuse reports are uploaded by the firewall dashboard user, if not set or set to null the default will be used
Public property | TokenConfiguration | the custom authentication token header used to authorize users in the firewall
Public property | Users | Users

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


APIKeyHeaderName Property

AdministrationConfig..::..APIKeyHeaderName Property

The name used in the header name to store the API key in

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string APIKeyHeaderName { get; set; }

Remarks

This adds a extra layer of security as not only do they need to know the key name used in your domain they will also need to know your domain license token. This security is used to protect the endpoints from penetration attacks.

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockAccessIsUserIsAssumedBlocked Property

AdministrationConfig..::..BlockAccessIsUserIsAssumedBlocked Property

Gets or sets a value indicating whether block access to administrative controller if the is user is assumed blocked.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool BlockAccessIsUserIsAssumedBlocked { get; set; }

Field Value

true if [block access is user is assumed blocked]; otherwise, false.

Remarks

Could block your administrators but blocks processing of administrative requests for all that are assumed blocked

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


DisplayName Property

AdministrationConfig..::..DisplayName Property

The name you would like to assign to the data when connecting to the dashboard

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DisplayName { get; set; }

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


ForceEncryption Property

AdministrationConfig..::..ForceEncryption Property

Gets or sets the value indication that messages have to be encrypted before they are send over SSL

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ForceEncryption { get; set; }

Field Value

The force encryption.

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


GenerateConnectFile Property

AdministrationConfig..::..GenerateConnectFile Property

Instructs the firewall to generate a connect file

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool GenerateConnectFile { get; set; }

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


InvalidateRequestsAfter Property

AdministrationConfig..::..InvalidateRequestsAfter Property

Only accept requests if the time difference between the server and the client is withing a given timespan

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan InvalidateRequestsAfter { get; set; }

Remarks

This will block the amount of time a request can be re-played

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


LogDashboardRequests Property

AdministrationConfig..::..LogDashboardRequests Property

Gets or sets the log administration requests that are not related to incidents.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool LogDashboardRequests { get; set; }

Field Value

True if set to log administration requests.

Remarks

The default is Off as this would cause lots of entries in the dashboard when there is no need for it

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


MaximumFailedLoginAttempts Property

AdministrationConfig..::..MaximumFailedLoginAttempts Property

The amount of failed logins to tolerate

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int MaximumFailedLoginAttempts { get; set; }

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


MaximumFailedLoginAttemptsIn Property

AdministrationConfig..::..MaximumFailedLoginAttemptsIn Property

The timespan used to measure failed login attempts

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan MaximumFailedLoginAttemptsIn { get; set; }

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


Port Property

AdministrationConfig..::..Port Property

communicate with firewall on specified port

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Port { get; set; }

Remarks

The default port is HTTPS 443, change the port number to the debugging port or another port that you are using

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


ProtectDiscoveryAPIWithPassword Property

AdministrationConfig..::..ProtectDiscoveryAPIWithPassword Property

Instructs the firewall to protect the discovery API with a password.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ProtectDiscoveryAPIWithPassword { get; set; }

Field Value

The connect file will require you to know the password before being accepted.

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


SaveAbuseReportsTo Property

AdministrationConfig..::..SaveAbuseReportsTo Property

Gets or sets the directory that will be used if Abuse reports are uploaded by the firewall dashboard user, if not set or set to null the default will be used

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DirectoryInfo> SaveAbuseReportsTo { get; set; }

Field Value

The directory to save the abuse reports as well as the abuse report meta data to.

Remarks

The default value is ~/wwwroot/AbuseReports/{WHOIS ID}/ if you use the default subsequent deploy may delete any files you stored here.

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


TokenConfiguration Property

AdministrationConfig..::..TokenConfiguration Property

the custom authentication token header used to authorize users in the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public JwtTokenConfig TokenConfiguration { get; }

Remarks

The firewall uses a custom configuration for authentication so as not co conflict with the host applications authentication scheme

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


Users Property

AdministrationConfig..::..Users Property

Users

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFireWallUserCollection Users { get; set; }

See Also

AdministrationConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowWhenCondition Enumeration

Enum AllowWhenCondition

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum AllowWhenCondition

Members

Member name | Description
NotSet | The value is not set
Always | The condition must always be met
NotApplicable | The condition does not apply
OnlyLocalRequests | The condition is only applicable to local requests
OnlyExternalRequests | The condition is only applicable to local requests

See Also

Walter.Web.FireWall.Configurations Namespace


BlockDurationConfig Class

Configuration class stating how blocking should be managed from a configuration perspective. Look at annotation attributes for per action configuration. you find them in name space Walter.Web.FireWall.Annotations

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BlockDurationConfig

Remarks

Redirects are not affected by this attribute, only blocking actions

See Also

BlockDurationConfig Members
Walter.Web.FireWall.Configurations Namespace
Walter.Web.FireWall.Annotations..::..HitRatioAttribute


BlockDurationConfig Members

The BlockDurationConfig type exposes the following members.

Properties

 | Name | Description
Public property | CVEExpires | Configures how long it will take for the blocking for CVE exploits configured to be sliding then this value is relevant to the last violation and will be updated on each request during the blocked session.
Public property | Expires | Configures how long it will take for the blocking to expires, if the duration is configured to be sliding then this value is relevant to the last violation and will be updated on each request during the blocked session.
Public property | RepeatViolations | Rule control how to act when repeat violations are encounters
Public property | SlideExpiration | If true this states that any new attempts will reset the blocking count down to start from the expires value
Public property | StopSlidingAfterBlockedForMonths | stop sliding exceptions if already blocked after years relative to date (max 120 months)

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockDurationConfig Properties

The BlockDurationConfig type exposes the following members.

Properties

 | Name | Description
Public property | CVEExpires | Configures how long it will take for the blocking for CVE exploits configured to be sliding then this value is relevant to the last violation and will be updated on each request during the blocked session.
Public property | Expires | Configures how long it will take for the blocking to expires, if the duration is configured to be sliding then this value is relevant to the last violation and will be updated on each request during the blocked session.
Public property | RepeatViolations | Rule control how to act when repeat violations are encounters
Public property | SlideExpiration | If true this states that any new attempts will reset the blocking count down to start from the expires value
Public property | StopSlidingAfterBlockedForMonths | stop sliding exceptions if already blocked after years relative to date (max 120 months)

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


CVEExpires Property

BlockDurationConfig..::..CVEExpires Property

Configures how long it will take for the blocking for CVE exploits configured to be sliding then this value is relevant to the last violation and will be updated on each request during the blocked session.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan CVEExpires { get; set; }

Remarks

The default value for blocking cookies is set to 60 minutes.

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


Expires Property

BlockDurationConfig..::..Expires Property

Configures how long it will take for the blocking to expires, if the duration is configured to be sliding then this value is relevant to the last violation and will be updated on each request during the blocked session.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Expires { get; set; }

Remarks

The default value for blocking cookies is set to 10 minutes.

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


RepeatViolations Property

BlockDurationConfig..::..RepeatViolations Property

Rule control how to act when repeat violations are encounters

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RepeatViolations RepeatViolations { get; set; }

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


SlideExpiration Property

BlockDurationConfig..::..SlideExpiration Property

If true this states that any new attempts will reset the blocking count down to start from the expires value

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool SlideExpiration { get; set; }

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


StopSlidingAfterBlockedForMonths Property

BlockDurationConfig..::..StopSlidingAfterBlockedForMonths Property

stop sliding exceptions if already blocked after years relative to date (max 120 months)

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int StopSlidingAfterBlockedForMonths { get; set; }

Remarks

Repeat attacks can slide into insane dates and this stops it from doing this.

See Also

BlockDurationConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockRequestsConfig Class

configuration class stating how blocking is configured

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BlockRequestsConfig

See Also

BlockRequestsConfig Members
Walter.Web.FireWall.Configurations Namespace


BlockRequestsConfig Members

The BlockRequestsConfig type exposes the following members.

Properties

 | Name | Description
Public property | BlockBadRequestDuration | Blocking duration configuration for requests that make no sense like phishing and penetration attempts.
Public property | BlockCSPViolatiorsDuration | Blocking duration configuration for users (normally humans) that generate CSP violations (send by browsers like Chrome, Firefox etc based on user activity)
Public property | BlockDuration | Default Blocking duration configuration
Public property | ShowBlockingRule | Show the rule used if a blocking was triggered, leaking the reason of the blocking allows malicious uses to probe for vulnerabilities and should only be used when troubleshooting issues when your application does something that is not compatible with the firewall.
Public property | StatusCode | Status code you would like to generate on a given violation
Public property | StatusMessage | The status message returned when the firewall blocks a request.
Public property | TrackBlockedUsers | This state that you'd like to track users, doing so will discover users that behave strange and allows for pattern recognition to help detect intruders
Public property | TransferRequestTo | A default value for redirects. Set the relative Uri ("~/controller/action") or a absolute Uri ("https://www.somedomain.com") to transfer blocked request to, if empty or null the request will stop processing and just return a white page.

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockRequestsConfig Properties

The BlockRequestsConfig type exposes the following members.

Properties

 | Name | Description
Public property | BlockBadRequestDuration | Blocking duration configuration for requests that make no sense like phishing and penetration attempts.
Public property | BlockCSPViolatiorsDuration | Blocking duration configuration for users (normally humans) that generate CSP violations (send by browsers like Chrome, Firefox etc based on user activity)
Public property | BlockDuration | Default Blocking duration configuration
Public property | ShowBlockingRule | Show the rule used if a blocking was triggered, leaking the reason of the blocking allows malicious uses to probe for vulnerabilities and should only be used when troubleshooting issues when your application does something that is not compatible with the firewall.
Public property | StatusCode | Status code you would like to generate on a given violation
Public property | StatusMessage | The status message returned when the firewall blocks a request.
Public property | TrackBlockedUsers | This state that you'd like to track users, doing so will discover users that behave strange and allows for pattern recognition to help detect intruders
Public property | TransferRequestTo | A default value for redirects. Set the relative Uri ("~/controller/action") or a absolute Uri ("https://www.somedomain.com") to transfer blocked request to, if empty or null the request will stop processing and just return a white page.

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockBadRequestDuration Property

BlockRequestsConfig..::..BlockBadRequestDuration Property

Blocking duration configuration for requests that make no sense like phishing and penetration attempts.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BlockDurationConfig BlockBadRequestDuration { get; set; }

Remarks

Default duration is 1 day

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockCSPViolatiorsDuration Property

BlockRequestsConfig..::..BlockCSPViolatiorsDuration Property

Blocking duration configuration for users (normally humans) that generate CSP violations (send by browsers like Chrome, Firefox etc based on user activity)

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BlockDurationConfig BlockCSPViolatiorsDuration { get; set; }

Remarks

Defaults duration is 10 minutes

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockDuration Property

BlockRequestsConfig..::..BlockDuration Property

Default Blocking duration configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BlockDurationConfig BlockDuration { get; set; }

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


ShowBlockingRule Property

BlockRequestsConfig..::..ShowBlockingRule Property

Show the rule used if a blocking was triggered, leaking the reason of the blocking allows malicious uses to probe for vulnerabilities and should only be used when troubleshooting issues when your application does something that is not compatible with the firewall.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ShowBlockingRule { get; set; }

Field Value

true if [show blocking rule]; otherwise, false.

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


StatusCode Property

BlockRequestsConfig..::..StatusCode Property

Status code you would like to generate on a given violation

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ViolationStatusCode StatusCode { get; set; }

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


StatusMessage Property

BlockRequestsConfig..::..StatusMessage Property

The status message returned when the firewall blocks a request.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> StatusMessage { get; set; }

Field Value

The status message.

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


TrackBlockedUsers Property

BlockRequestsConfig..::..TrackBlockedUsers Property

This state that you'd like to track users, doing so will discover users that behave strange and allows for pattern recognition to help detect intruders

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TrackBlockedUsers { get; set; }

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


TransferRequestTo Property

BlockRequestsConfig..::..TransferRequestTo Property

A default value for redirects. Set the relative Uri ("~/controller/action") or a absolute Uri ("https://www.somedomain.com") to transfer blocked request to, if empty or null the request will stop processing and just return a white page.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> TransferRequestTo { get; set; }

Field Value

The URL to redirect the request too.

Remarks

The Firewall will take annotated URL redirects before taking this value.

See Also

BlockRequestsConfig Class
Walter.Web.FireWall.Configurations Namespace


CashingConfig Class

Class used for configuring cashing in the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CashingConfig : ICashingConfig

See Also

CashingConfig Members
Walter.Web.FireWall.Configurations Namespace


CashingConfig Members

The CashingConfig type exposes the following members.

Properties

 | Name | Description
Public property | BufferFirewallData | Gets duration that the firewall will buffer data in memory default is 60 minutes for disk based, 365 days for database based storage.
Public property | CookieData | Duration to keep cookie data in memory without saving it to a persistent storage
Public property | GeoLocation | Gets or sets the geography locations memory priority. ///
Public property | TemporaryUsers | Gets or sets the temporary users storage option, time it takes to process a login, updates on each request.
Public property | UserAgent | Gets or sets the storage priority and duration for the average duration of a user session
Public property | UserHistory | Gets or sets the user history.
Public property | UserSession | Gets or sets the storage priority and duration for the average duration of a user session
Public property | WhoisDaysHistory | Total days who-is data will be stored lower value means more requests to external service providers, the default is 365 days, negative values are not supported.

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


CashingConfig Properties

The CashingConfig type exposes the following members.

Properties

 | Name | Description
Public property | BufferFirewallData | Gets duration that the firewall will buffer data in memory default is 60 minutes for disk based, 365 days for database based storage.
Public property | CookieData | Duration to keep cookie data in memory without saving it to a persistent storage
Public property | GeoLocation | Gets or sets the geography locations memory priority. ///
Public property | TemporaryUsers | Gets or sets the temporary users storage option, time it takes to process a login, updates on each request.
Public property | UserAgent | Gets or sets the storage priority and duration for the average duration of a user session
Public property | UserHistory | Gets or sets the user history.
Public property | UserSession | Gets or sets the storage priority and duration for the average duration of a user session
Public property | WhoisDaysHistory | Total days who-is data will be stored lower value means more requests to external service providers, the default is 365 days, negative values are not supported.

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


BufferFirewallData Property

CashingConfig..::..BufferFirewallData Property

Gets duration that the firewall will buffer data in memory default is 60 minutes for disk based, 365 days for database based storage.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan BufferFirewallData { get; set; }

Field Value

The buffer firewall data.

Remarks

The longer this period the more memory and or disk storage you need. The more data you have the better the firewall will recognize user events.

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


CookieData Property

CashingConfig..::..CookieData Property

Duration to keep cookie data in memory without saving it to a persistent storage

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MemoryCacheEntryOptions CookieData { get; set; }

Remarks

This keeps cookie backing data in memory avoiding the reading and writing of data during the users request processing. This feature only works if IMemoryCashe is used

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace
CookieConfig..::..UseTransparentEncryption
Walter.Web.FireWall.Infrastructure.Repositories..::..ICookieFactory


GeoLocation Property

CashingConfig..::..GeoLocation Property

Gets or sets the geography locations memory priority. ///

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MemoryCacheEntryOptions GeoLocation { get; set; }

Field Value

The geography locations stored for the user

Remarks

Typical no longer than the median duration of a page visit as is update per request as it slides.

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


TemporaryUsers Property

CashingConfig..::..TemporaryUsers Property

Gets or sets the temporary users storage option, time it takes to process a login, updates on each request.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MemoryCacheEntryOptions TemporaryUsers { get; set; }

Field Value

The temporary users.

Remarks

Typical no longer than the average duration of a site visit as it update per request and slides backup storage is server session and user cookie in that order.

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


UserAgent Property

CashingConfig..::..UserAgent Property

Gets or sets the storage priority and duration for the average duration of a user session

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MemoryCacheEntryOptions UserAgent { get; set; }

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


UserHistory Property

CashingConfig..::..UserHistory Property

Gets or sets the user history.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MemoryCacheEntryOptions UserHistory { get; set; }

Field Value

The user history memory duration.

Remarks

Typical no longer than the average duration of a page visit as is update per request and slides.

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


UserSession Property

CashingConfig..::..UserSession Property

Gets or sets the storage priority and duration for the average duration of a user session

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public MemoryCacheEntryOptions UserSession { get; set; }

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


WhoisDaysHistory Property

CashingConfig..::..WhoisDaysHistory Property

Total days who-is data will be stored lower value means more requests to external service providers, the default is 365 days, negative values are not supported.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int WhoisDaysHistory { get; set; }

Remarks

This is not memory storage but serialized long term storage in days. Most of this data is rather stable as it's not often that a ISP changes IP address scope

See Also

CashingConfig Class
Walter.Web.FireWall.Configurations Namespace


CertificateConfig Class

Certification configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CertificateConfig

See Also

CertificateConfig Members
Walter.Web.FireWall.Configurations Namespace


CertificateConfig Members

The CertificateConfig type exposes the following members.

Properties

 | Name | Description
Public property | EncryptionCertificateFile | file used for certificate based encryption
Public property | EncryptionCertificateStore | The location the certificate is stored
Public property | EncryptionCertificateStoreLocation | If used then this is the location where certificates should be retrieved from
Public property | EncryptionCertificateStoreSerialNumber | The serial number of a certificate, could be null if a certificate is not used
Public property | Password | certificate password or size password, you may not use the default
Public property | Salt | Salt used in encryption, you may not use the default

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


CertificateConfig Properties

The CertificateConfig type exposes the following members.

Properties

 | Name | Description
Public property | EncryptionCertificateFile | file used for certificate based encryption
Public property | EncryptionCertificateStore | The location the certificate is stored
Public property | EncryptionCertificateStoreLocation | If used then this is the location where certificates should be retrieved from
Public property | EncryptionCertificateStoreSerialNumber | The serial number of a certificate, could be null if a certificate is not used
Public property | Password | certificate password or size password, you may not use the default
Public property | Salt | Salt used in encryption, you may not use the default

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


EncryptionCertificateFile Property

CertificateConfig..::..EncryptionCertificateFile Property

file used for certificate based encryption

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string EncryptionCertificateFile { get; set; }

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


EncryptionCertificateStore Property

CertificateConfig..::..EncryptionCertificateStore Property

The location the certificate is stored

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StoreName EncryptionCertificateStore { get; set; }

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


EncryptionCertificateStoreLocation Property

CertificateConfig..::..EncryptionCertificateStoreLocation Property

If used then this is the location where certificates should be retrieved from

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StoreLocation EncryptionCertificateStoreLocation { get; set; }

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


EncryptionCertificateStoreSerialNumber Property

CertificateConfig..::..EncryptionCertificateStoreSerialNumber Property

The serial number of a certificate, could be null if a certificate is not used

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string EncryptionCertificateStoreSerialNumber { get; set; }

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


Password Property

CertificateConfig..::..Password Property

certificate password or size password, you may not use the default

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Password { get; set; }

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


Salt Property

CertificateConfig..::..Salt Property

Salt used in encryption, you may not use the default

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Salt { get; set; }

See Also

CertificateConfig Class
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Class

Error on a given configuration elements

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ConfigurationsException

See Also

ConfigurationsException Members
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Members

The ConfigurationsException type exposes the following members.

Constructors

 | Name | Description
Public method | ConfigurationsException()()()() | create a general configuration error
Public method | ConfigurationsException(ErrorConfigurationElement) | Create a general configuration error and shows the item that was mis configured
Public method | ConfigurationsException(String, ErrorConfigurationElement) | Create a general configuration error and shows the item that was mis configured and why
Public method | ConfigurationsException(String, Exception, ErrorConfigurationElement) | Create a general configuration error and shows the item that was mis configured and why
Public method | ConfigurationsException(String) | Initializes a new instance of the ConfigurationsException class.
Public method | ConfigurationsException(String, Exception) | Initializes a new instance of the ConfigurationsException class.

Properties

 | Name | Description
Public property | ConfigurationItem | The item that was miss-configured

See Also

ConfigurationsException Class
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor

Overload List

 | Name | Description
Public method | ConfigurationsException()()()() | create a general configuration error
Public method | ConfigurationsException(ErrorConfigurationElement) | Create a general configuration error and shows the item that was mis configured
Public method | ConfigurationsException(String, ErrorConfigurationElement) | Create a general configuration error and shows the item that was mis configured and why
Public method | ConfigurationsException(String, Exception, ErrorConfigurationElement) | Create a general configuration error and shows the item that was mis configured and why
Public method | ConfigurationsException(String) | Initializes a new instance of the ConfigurationsException class.
Public method | ConfigurationsException(String, Exception) | Initializes a new instance of the ConfigurationsException class.

See Also

ConfigurationsException Class
ConfigurationsException Members
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor

create a general configuration error

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConfigurationsException()

See Also

ConfigurationsException Class
ConfigurationsException Overload
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor (ErrorConfigurationElement)

Create a general configuration error and shows the item that was mis configured

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConfigurationsException(
    ErrorConfigurationElement element
)

Parameters

element
Type: Walter.Web.FireWall.Configurations..::..ErrorConfigurationElement
the element falsely configured

See Also

ConfigurationsException Class
ConfigurationsException Overload
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor (String, ErrorConfigurationElement)

Create a general configuration error and shows the item that was mis configured and why

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConfigurationsException(
    string message,
    ErrorConfigurationElement element
)

Parameters

message
Type: String
why this was a bad configuration
element
Type: Walter.Web.FireWall.Configurations..::..ErrorConfigurationElement
the element falsely configured

See Also

ConfigurationsException Class
ConfigurationsException Overload
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor (String, Exception, ErrorConfigurationElement)

Create a general configuration error and shows the item that was mis configured and why

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConfigurationsException(
    string message,
    Exception innerException,
    ErrorConfigurationElement element
)

Parameters

message
Type: String
why this was a bad configuration
innerException
Type: Exception
The internal error that triggered the issue
element
Type: Walter.Web.FireWall.Configurations..::..ErrorConfigurationElement
the element falsely configured

See Also

ConfigurationsException Class
ConfigurationsException Overload
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor (String)

Initializes a new instance of the ConfigurationsException class.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConfigurationsException(
    string message
)

Parameters

message
Type: String
The message that describes the error.

See Also

ConfigurationsException Class
ConfigurationsException Overload
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Constructor (String, Exception)

Initializes a new instance of the ConfigurationsException class.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConfigurationsException(
    string message,
    Exception innerException
)

Parameters

message
Type: String
The error message that explains the reason for the exception.
innerException
Type: Exception
The exception that is the cause of the current exception, or a null reference (nullNothingnullptra null reference (Nothing in Visual Basic) in Visual Basic) if no inner exception is specified.

See Also

ConfigurationsException Class
ConfigurationsException Overload
Walter.Web.FireWall.Configurations Namespace


ConfigurationsException Properties

The ConfigurationsException type exposes the following members.

Properties

 | Name | Description
Public property | ConfigurationItem | The item that was miss-configured

See Also

ConfigurationsException Class
Walter.Web.FireWall.Configurations Namespace


ConfigurationItem Property

ConfigurationsException..::..ConfigurationItem Property

The item that was miss-configured

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ErrorConfigurationElement ConfigurationItem { get; set; }

Field Value

The configuration item.

See Also

ConfigurationsException Class
Walter.Web.FireWall.Configurations Namespace


CookieConfig Class

Cookie configuration for use in FireWall module

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CookieConfig

See Also

CookieConfig Members
Walter.Web.FireWall.Configurations Namespace


CookieConfig Members

The CookieConfig type exposes the following members.

Properties

 | Name | Description
Public property | DefaultMaxAge | Gets the default maximum age of a cookie in days if not a session cookie.
Public property | UseTransparentEncryption | If set to True the firewall will encrypt the data before the cookie is send and decrypt it before the cookie is used by the application

See Also

CookieConfig Class
Walter.Web.FireWall.Configurations Namespace


CookieConfig Properties

The CookieConfig type exposes the following members.

Properties

 | Name | Description
Public property | DefaultMaxAge | Gets the default maximum age of a cookie in days if not a session cookie.
Public property | UseTransparentEncryption | If set to True the firewall will encrypt the data before the cookie is send and decrypt it before the cookie is used by the application

See Also

CookieConfig Class
Walter.Web.FireWall.Configurations Namespace


DefaultMaxAge Property

CookieConfig..::..DefaultMaxAge Property

Gets the default maximum age of a cookie in days if not a session cookie.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int DefaultMaxAge { get; set; }

Field Value

The default maximum age for a cookie in the firewall.

Remarks

The default is 365 days

See Also

CookieConfig Class
Walter.Web.FireWall.Configurations Namespace


UseTransparentEncryption Property

CookieConfig..::..UseTransparentEncryption Property

If set to True the firewall will encrypt the data before the cookie is send and decrypt it before the cookie is used by the application

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UseTransparentEncryption { get; set; }

Field Value

True by default indicates that the system will try and GDPR compliant if using cookie factory interface

Remarks

If you are developing filters you need to ensure that the Cookie filter has a lower order than your own filter as you might find that the cookie is still encoded or the cookie data is still in the database

See Also

CookieConfig Class
Walter.Web.FireWall.Configurations Namespace
IUserIdentity..::..WriteCookie(String, String, TimeSpan, Boolean)
[IUserIdentity.WriteCookieAsync(string, string, System.TimeSpan, bool, System.Threading.CancellationToken)]
IUserIdentity..::..TryReadCookie(String, Nullable<(Of <<'(String>)>>)%)


CypherConfig Class

Cypher configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CypherConfig

See Also

CypherConfig Members
Walter.Web.FireWall.Configurations Namespace


CypherConfig Members

The CypherConfig type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationPassword | Recommended to set it, Use the following application wide password to be used when cyphering data that needs to be protected. The Key is populated with the Application Signature or Project name Shai1 Hash
Public property | Certificates | Certificate configuration
 | Default | Default instance for cipher settings
Public property | ReUsePGPSession | Re-Use PGP session key when using internal firewall encryption (default true)
Public property | Use | The location of a certificate that should be used
Public property | UseTamperDetection | Hashing algorithm used for tamper detection, the higher the number the slower.

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


CypherConfig Properties

The CypherConfig type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationPassword | Recommended to set it, Use the following application wide password to be used when cyphering data that needs to be protected. The Key is populated with the Application Signature or Project name Shai1 Hash
Public property | Certificates | Certificate configuration
 | Default | Default instance for cipher settings
Public property | ReUsePGPSession | Re-Use PGP session key when using internal firewall encryption (default true)
Public property | Use | The location of a certificate that should be used
Public property | UseTamperDetection | Hashing algorithm used for tamper detection, the higher the number the slower.

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


ApplicationPassword Property

CypherConfig..::..ApplicationPassword Property

Recommended to set it, Use the following application wide password to be used when cyphering data that needs to be protected. The Key is populated with the Application Signature or Project name Shai1 Hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ApplicationPassword { get; set; }

Remarks

The Application password should not be changed as you will loose the ability to read the data later. You can use the license of the firewall to encrypt and decrypt data.

You can use the IFireWall.License.Encrypt end IFireWall.License.Decrypt to protect any data using your license and the application password.

Examples

The following sample shows a 8 byte Shai1 password is created using the extension method available when using Walter namespace. An 8 byte hash generates 16 character password the length of the password it self is irrelevant.
Make a strong password from a simple one
options.Cypher.ApplicationPassword = "mydomain".AsShaHash(HashMethod.SHA1, 8);

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace
The license manager Encrypt and Decrypt methods using the application password


Certificates Property

CypherConfig..::..Certificates Property

Certificate configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CertificateConfig Certificates { get; set; }

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


Default Property

CypherConfig..::..Default Property

Default instance for cipher settings

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static CypherConfig Default { get; }

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


ReUsePGPSession Property

CypherConfig..::..ReUsePGPSession Property

Re-Use PGP session key when using internal firewall encryption (default true)

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ReUsePGPSession { get; set; }

Remarks

Makes the firewall faster however the data could be compromised when access to the physical device memory is possible

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


Use Property

CypherConfig..::..Use Property

The location of a certificate that should be used

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CypherStore Use { get; set; }

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


UseTamperDetection Property

CypherConfig..::..UseTamperDetection Property

Hashing algorithm used for tamper detection, the higher the number the slower.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CypherConfig..::..TamperDetection UseTamperDetection { get; set; }

See Also

CypherConfig Class
Walter.Web.FireWall.Configurations Namespace


CypherConfig.TamperDetection Enumeration

CypherConfig..::..TamperDetection Enumeration

Method to use to identify tempering with the data

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum TamperDetection

Members

Member name | Description
Sha256 | Sha256 hash
Sha384 | hash
Sha512 | Sha512 hash
HMACSHA256 | HMACSHA256 hash
HMACSHAMD5 | HMACSHAMD5 hash
Certificate | hash using a certificate
Sha1 | Sha1 hash

See Also

Walter.Web.FireWall.Configurations Namespace


CypherStore Enumeration

location where to get certificates from and or to use salt and password

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum CypherStore

Members

Member name | Description
ASPWAF_Certificate | the certificate provided by ASP-WAF
CertificateFromDisk | A certificate on disk
CertificateStore | a certificate from the certificate store managed by the computer or server
PaswordAndSalt | use password and salt and do not use a certificate

See Also

Walter.Web.FireWall.Configurations Namespace


DDOSConfig Class

DDOS specific configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class DDOSConfig

See Also

DDOSConfig Members
Walter.Web.FireWall.Configurations Namespace


DDOSConfig Members

The DDOSConfig type exposes the following members.

Properties

 | Name | Description
Public property | Requests | AllowRaiseIncident a number of requests of those users we have not identified as humans in a given timespan
Public property | Seconds | Timespan of seconds that we use to measure requests of those that we have not identified as users
Public property | StatusCode | Status code you would like to generate on violation

See Also

DDOSConfig Class
Walter.Web.FireWall.Configurations Namespace


DDOSConfig Properties

The DDOSConfig type exposes the following members.

Properties

 | Name | Description
Public property | Requests | AllowRaiseIncident a number of requests of those users we have not identified as humans in a given timespan
Public property | Seconds | Timespan of seconds that we use to measure requests of those that we have not identified as users
Public property | StatusCode | Status code you would like to generate on violation

See Also

DDOSConfig Class
Walter.Web.FireWall.Configurations Namespace


Requests Property

DDOSConfig..::..Requests Property

AllowRaiseIncident a number of requests of those users we have not identified as humans in a given timespan

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Requests { get; set; }

See Also

DDOSConfig Class
Walter.Web.FireWall.Configurations Namespace


Seconds Property

DDOSConfig..::..Seconds Property

Timespan of seconds that we use to measure requests of those that we have not identified as users

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Seconds { get; set; }

See Also

DDOSConfig Class
Walter.Web.FireWall.Configurations Namespace


StatusCode Property

DDOSConfig..::..StatusCode Property

Status code you would like to generate on violation

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ViolationStatusCode StatusCode { get; set; }

See Also

DDOSConfig Class
Walter.Web.FireWall.Configurations Namespace


Duration Enumeration

indicates that the unit is a in a given duration context

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum Duration

Members

Member name | Description
Seconds | use seconds
Minutes | use minutes
Hours | use hours
Days | use days

See Also

Walter.Web.FireWall.Configurations Namespace


ErrorConfigurationElement Enumeration

States the element that is to be configured

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ErrorConfigurationElement

Members

Member name | Description
FireWall | configure the firewall
GeoService | configure geo services
FireWallRules | configure rules
VpnProxyService | how to configure vpn users
TwoFactorAuthentication | two factor authentication
DatabaseLogging | database logging
ManagementInterface | management interface

See Also

Walter.Web.FireWall.Configurations Namespace


HeaderConfig Class

This allows you to manages header configurations for those headers that are generated and used by the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class HeaderConfig : ISecurityHeadersBuilder

Examples

Bellow sample shows longer sample of code that configures the firewall as well as enabled CSP and XSS browser based security
C#
services.AddFireWall("Your Token", "Domain Key", domainName: new Uri("https://www.test.dll", UriKind.Absolute), options => {
       options.JoinCustomerImprovementProgramWithEmail = "mail@test.dll";
       options.Cypher.ApplicationPassword = "123456Seven";
       options.ApplicationName = "www.test.dll";
       options.ApplicationTag = "WS3";
       options.Rules.AllowWhiteListing = false;
       //view located in ~/Views/Shared
       options.Reporting.HealthReportView = "_healthReport";
       options.Reporting.EmailReportView = "_EmailReport";

       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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);

       options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);

       options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
       options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
       options.Rules.AllowWhiteListing = false;
       options.Rules.Headers.AddDefaultSecurePolicy()
                             .AddStrictTransportSecurityNoCache()
                             .AddXssProtectionBlockAndReport()
                             .AddContentSecurityPolicyButTrust(trustingSites: TrustingSites.Jquery | TrustingSites.Google
                                       , allowInline: true
                                       , framesPolicy: FramesPolicy.Self);

   //continue configuring add-ons for the firewall
     }).UseGeography(new System.IO.DirectoryInfo("D:\\MaxMind"))
      .UseDiskLogging(options => { options.Directory = @"D:\Firewall"; })
      .UserDatabase(DatabaseConnections.FireWallState)
      .UseFireWallReportingDatabase(DatabaseConnections.FireWall)
      .UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
       {
           options.Archive = TimeSpan.FromDays(180);
           options.Server = "mail.asp-waf.com";
           options.UserName = "noreply@test.dll";
           options.Password = "Jhagga$ki82#@test.dll";
           options.Port = 25;
           options.From = "noreply@@test.dll";
           options.IgnoreServerCertificateErrors = true;
           options.DefaultEmail = "owner@@test.dll";
           options.Archive = TimeSpan.FromDays(60);
           options.MailingList.AddRange(new[] {
            new EMailAddress("Security Admin","security@@test.dll") {
                Frequency= TimeSpan.FromHours(1),
                Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
            new EMailAddress("Website Admin","WebMaster@@test.dll"){
                Frequency= TimeSpan.FromHours(1),
                Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
             });
     });
   //use filter on each request instead of middleware
   services.AddMvc(options =>  options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>());

See Also

HeaderConfig Members
Walter.Web.FireWall.Configurations Namespace


HeaderConfig Members

The HeaderConfig type exposes the following members.

Methods

 | Name | Description
Public method | AddContentSecurityPolicy | Adds raw content security policy to the firewall.
Public method | AddContentSecurityPolicyButTrust(TrustingSites, Boolean, FramesPolicy, Boolean) | Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected
Public method | AddContentSecurityPolicyButTrust(Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Boolean, Boolean, Boolean, FramesPolicy, Boolean) | Adds the content security policy but trust.
Public method | AddContentSecurityPolicyTrustOnlySelf | trust only own domain, no external images or scripts
Public method | AddContentTypeOptionsNoSniff | Add X-Content-Type-Options nosniff to all requests. Can be set to protect against MIME type confusion attacks.
Public method | AddDefaultSecurePolicy | Add default security headers configuration in each request of the firewall
Public method | AddDefaultSecurePolicyAndReport()()()() | Add default security headers configuration in each request of the firewall and reports violations to the firewall
Public method | AddDefaultSecurePolicyAndReport(Uri) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddDefaultSecurePolicyAndReport(Uri, TrustingSites) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddFrameOptionsDeny | Add X-Frame-Options DENY to all requests. The page cannot be displayed in a frame, regardless of the site attempting to do so
Public method | AddFrameOptionsSameOrigin()()()() | Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.
Public method | AddFrameOptionsSameOrigin(String) | Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.
Public method | AddStrictTransportSecurityMaxAge | Add Strict-Transport-Security max-age to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided.
Public method | AddStrictTransportSecurityMaxAgeIncludeSubDomains | Add Strict-Transport-Security max-age; includeSubDomains to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided and include any sub-domains.
Public method | AddStrictTransportSecurityNoCache | Add Strict-Transport-Security max-age=0 to all requests. Tells the user-agent to remove, or not cache the host in the STS cache
Public method | AddXssProtectionBlock | Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.
Public method | AddXssProtectionBlockAndReport | Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.
Public method | AddXssProtectionDisabled | Add X-XSS-Protection 0 to all requests. Disables the XSS Protections offered by the user-agent.
Public method | AddXssProtectionEnabled | Add X-XSS-Protection 1 to all requests. Enables the XSS Protections
Public method | AddXssProtectionReport(String) | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionReport(Uri) | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionReport()()()() | Add X-XSS-Protection 1; report=api/csp to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | DoNotTrack | For 3rd party sites this will add a "do not track signal" that a web application should disable either its tracking or cross-site user tracking of an individual user.
Public method | RemoveServerHeader | Removes the Server header from all responses
Public method | SimulateDifferentServer | Add headers to simulate a different server so that attackers are using a different method of attack
Public method | SimulateDifferentTechnologyStack | Add headers to simulates the different technology stack.

Properties

 | Name | Description
Public property | Expires | when a header value is no-longer valid
Public property | PlatformPrivacySettings | The P3P policies as applicable to cookies and state data stored by the application
Public property | Policies | The header policies applied in the header protection rule engine
Public property | SecurityHeaderBuilder | Access the security header builder to add advanced security policies and rules for the browser.
Public property | ShowGuardActionsInHeader | If true (default is false) the violated rules of the guard action evaluation will be shown in response header named Guard-Action
Public property | Simulations | The header simulations applied in the header protection rule engine.
Public property | TrackUsers | enable tracking users so you can avoid attack patterns
Public property | UserTracker | An arbitrary header key that will be used for tracking users in the web application. Change this value to not make it to easy for any attacker to try to bypass security

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


HeaderConfig Methods

The HeaderConfig type exposes the following members.

Methods

 | Name | Description
Public method | AddContentSecurityPolicy | Adds raw content security policy to the firewall.
Public method | AddContentSecurityPolicyButTrust(TrustingSites, Boolean, FramesPolicy, Boolean) | Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected
Public method | AddContentSecurityPolicyButTrust(Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Boolean, Boolean, Boolean, FramesPolicy, Boolean) | Adds the content security policy but trust.
Public method | AddContentSecurityPolicyTrustOnlySelf | trust only own domain, no external images or scripts
Public method | AddContentTypeOptionsNoSniff | Add X-Content-Type-Options nosniff to all requests. Can be set to protect against MIME type confusion attacks.
Public method | AddDefaultSecurePolicy | Add default security headers configuration in each request of the firewall
Public method | AddDefaultSecurePolicyAndReport()()()() | Add default security headers configuration in each request of the firewall and reports violations to the firewall
Public method | AddDefaultSecurePolicyAndReport(Uri) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddDefaultSecurePolicyAndReport(Uri, TrustingSites) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddFrameOptionsDeny | Add X-Frame-Options DENY to all requests. The page cannot be displayed in a frame, regardless of the site attempting to do so
Public method | AddFrameOptionsSameOrigin()()()() | Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.
Public method | AddFrameOptionsSameOrigin(String) | Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.
Public method | AddStrictTransportSecurityMaxAge | Add Strict-Transport-Security max-age to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided.
Public method | AddStrictTransportSecurityMaxAgeIncludeSubDomains | Add Strict-Transport-Security max-age; includeSubDomains to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided and include any sub-domains.
Public method | AddStrictTransportSecurityNoCache | Add Strict-Transport-Security max-age=0 to all requests. Tells the user-agent to remove, or not cache the host in the STS cache
Public method | AddXssProtectionBlock | Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.
Public method | AddXssProtectionBlockAndReport | Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.
Public method | AddXssProtectionDisabled | Add X-XSS-Protection 0 to all requests. Disables the XSS Protections offered by the user-agent.
Public method | AddXssProtectionEnabled | Add X-XSS-Protection 1 to all requests. Enables the XSS Protections
Public method | AddXssProtectionReport(String) | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionReport(Uri) | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionReport()()()() | Add X-XSS-Protection 1; report=api/csp to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | DoNotTrack | For 3rd party sites this will add a "do not track signal" that a web application should disable either its tracking or cross-site user tracking of an individual user.
Public method | RemoveServerHeader | Removes the Server header from all responses
Public method | SimulateDifferentServer | Add headers to simulate a different server so that attackers are using a different method of attack
Public method | SimulateDifferentTechnologyStack | Add headers to simulates the different technology stack.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddContentSecurityPolicy Method

HeaderConfig..::..AddContentSecurityPolicy Method

Adds raw content security policy to the firewall.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddContentSecurityPolicy(
    string policy
)

Parameters

policy
Type: String
The policy to implement

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddContentSecurityPolicyButTrust Method

HeaderConfig..::..AddContentSecurityPolicyButTrust Method

Overload List

 | Name | Description
Public method | AddContentSecurityPolicyButTrust(TrustingSites, Boolean, FramesPolicy, Boolean) | Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected
Public method | AddContentSecurityPolicyButTrust(Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Boolean, Boolean, Boolean, FramesPolicy, Boolean) | Adds the content security policy but trust.

See Also

HeaderConfig Class
HeaderConfig Members
Walter.Web.FireWall.Configurations Namespace


AddContentSecurityPolicyButTrust Method (TrustingSites, Boolean, FramesPolicy, Boolean)

HeaderConfig..::..AddContentSecurityPolicyButTrust Method (TrustingSites, Boolean, FramesPolicy, Boolean)

Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddContentSecurityPolicyButTrust(
    TrustingSites trustingSites,
    bool allowInline,
    FramesPolicy framesPolicy,
    bool reportOnly
)

Parameters

trustingSites
Type: Walter.Web.FireWall..::..TrustingSites
the list of sites you like to trust
allowInline
Type: Boolean
AllowRaiseIncident in-line css and script, not advisable as it brakes security but sometimes needed
framesPolicy
Type: Walter.Web.FireWall..::..FramesPolicy
the frame policy used
reportOnly
Type: Boolean
if true it will only report violations in the browser, the firewall however will detect the violation and will trigger the appropriate firewall rules for CSP violators as well as flag the user as such

Return Value

returns the SecurityHeadersBuilder for continuance

See Also

HeaderConfig Class
AddContentSecurityPolicyButTrust Overload
Walter.Web.FireWall.Configurations Namespace


AddContentSecurityPolicyButTrust Method (Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Boolean, Boolean, Boolean, FramesPolicy, Boolean)

HeaderConfig..::..AddContentSecurityPolicyButTrust Method (Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Boolean, Boolean, Boolean, FramesPolicy, Boolean)

Adds the content security policy but trust.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddContentSecurityPolicyButTrust(
    Nullable<IEnumerable<string>> mediaSites,
    Nullable<IEnumerable<string>> scriptsSites,
    Nullable<IEnumerable<string>> imagesSites,
    Nullable<IEnumerable<string>> cssSites,
    Nullable<IEnumerable<string>> defaultSites,
    bool trustSelf,
    bool allowObjectSource,
    bool allowInline,
    FramesPolicy frames,
    bool reportOnly
)

Parameters

mediaSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The media sites.
scriptsSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The scripts sites.
imagesSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The images sites.
cssSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The CSS sites.
defaultSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
domains that are trusted by default
trustSelf
Type: Boolean
indicate you trust the hosting web service
allowObjectSource
Type: Boolean
if true it will merge self and default sites, else it will be disabled via policy
allowInline
Type: Boolean
if set to true then allow the in-line use of CSS JavaScript.
frames
Type: Walter.Web.FireWall..::..FramesPolicy
The frames.
reportOnly
Type: Boolean
if true it will only report violations in the browser, the firewall however will detect the violation and will trigger the appropriate firewall rules for CSP violators as well as flag the user as such

Return Value

SecurityHeadersBuilder.

See Also

HeaderConfig Class
AddContentSecurityPolicyButTrust Overload
Walter.Web.FireWall.Configurations Namespace


AddContentSecurityPolicyTrustOnlySelf Method

HeaderConfig..::..AddContentSecurityPolicyTrustOnlySelf Method

trust only own domain, no external images or scripts

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddContentSecurityPolicyTrustOnlySelf()

Return Value

SecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddContentTypeOptionsNoSniff Method

HeaderConfig..::..AddContentTypeOptionsNoSniff Method

Add X-Content-Type-Options nosniff to all requests. Can be set to protect against MIME type confusion attacks.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddContentTypeOptionsNoSniff()

Return Value

SecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddDefaultSecurePolicy Method

HeaderConfig..::..AddDefaultSecurePolicy Method

Add default security headers configuration in each request of the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddDefaultSecurePolicy()

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlock()
  • AddContentTypeOptionsNoSniff()
  • AddStrictTransportSecurityMaxAge()
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlock()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddDefaultSecurePolicyAndReport Method

HeaderConfig..::..AddDefaultSecurePolicyAndReport Method

Overload List

 | Name | Description
Public method | AddDefaultSecurePolicyAndReport()()()() | Add default security headers configuration in each request of the firewall and reports violations to the firewall
Public method | AddDefaultSecurePolicyAndReport(Uri) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddDefaultSecurePolicyAndReport(Uri, TrustingSites) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites

See Also

HeaderConfig Class
HeaderConfig Members
Walter.Web.FireWall.Configurations Namespace


AddDefaultSecurePolicyAndReport Method

HeaderConfig..::..AddDefaultSecurePolicyAndReport Method

Add default security headers configuration in each request of the firewall and reports violations to the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddDefaultSecurePolicyAndReport()

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlock()
  • AddContentTypeOptionsNoSniff()
  • AddStrictTransportSecurityMaxAge()
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

HeaderConfig Class
AddDefaultSecurePolicyAndReport Overload
Walter.Web.FireWall.Configurations Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlock()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddDefaultSecurePolicyAndReport Method (Uri)

HeaderConfig..::..AddDefaultSecurePolicyAndReport Method (Uri)

Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddDefaultSecurePolicyAndReport(
    Uri uri
)

Parameters

uri
Type: Uri
The URL used to report

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlockAndReport(url)
  • AddContentTypeOptionsNoSniff()
  • AddContentSecurityPolicyButTrust(TrustingSites.SubDomains | TrustingSites.Bootstrap | TrustingSites.Google | TrustingSites.Jquery)
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

HeaderConfig Class
AddDefaultSecurePolicyAndReport Overload
Walter.Web.FireWall.Configurations Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlockAndReport()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddDefaultSecurePolicyAndReport Method (Uri, TrustingSites)

HeaderConfig..::..AddDefaultSecurePolicyAndReport Method (Uri, TrustingSites)

Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddDefaultSecurePolicyAndReport(
    Uri uri,
    TrustingSites trust
)

Parameters

uri
Type: Uri
The URL used to report
trust
Type: Walter.Web.FireWall..::..TrustingSites
The sites you are willing to trust

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlockAndReport(url)
  • AddContentTypeOptionsNoSniff()
  • AddContentSecurityPolicyButTrust(trust)
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

HeaderConfig Class
AddDefaultSecurePolicyAndReport Overload
Walter.Web.FireWall.Configurations Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlockAndReport()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddFrameOptionsDeny Method

HeaderConfig..::..AddFrameOptionsDeny Method

Add X-Frame-Options DENY to all requests. The page cannot be displayed in a frame, regardless of the site attempting to do so

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddFrameOptionsDeny()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddFrameOptionsSameOrigin Method

HeaderConfig..::..AddFrameOptionsSameOrigin Method

Overload List

 | Name | Description
Public method | AddFrameOptionsSameOrigin()()()() | Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.
Public method | AddFrameOptionsSameOrigin(String) | Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.

See Also

HeaderConfig Class
HeaderConfig Members
Walter.Web.FireWall.Configurations Namespace


AddFrameOptionsSameOrigin Method

HeaderConfig..::..AddFrameOptionsSameOrigin Method

Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddFrameOptionsSameOrigin()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
AddFrameOptionsSameOrigin Overload
Walter.Web.FireWall.Configurations Namespace


AddFrameOptionsSameOrigin Method (String)

HeaderConfig..::..AddFrameOptionsSameOrigin Method (String)

Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddFrameOptionsSameOrigin(
    string path
)

Parameters

path
Type: String
The url of the origin in which the page may be displayed in a frame

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
AddFrameOptionsSameOrigin Overload
Walter.Web.FireWall.Configurations Namespace


AddStrictTransportSecurityMaxAge Method

HeaderConfig..::..AddStrictTransportSecurityMaxAge Method

Add Strict-Transport-Security max-age to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddStrictTransportSecurityMaxAge(
    int maxAge
)

Parameters

maxAge
Type: Int32
The maximum age.

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddStrictTransportSecurityMaxAgeIncludeSubDomains Method

HeaderConfig..::..AddStrictTransportSecurityMaxAgeIncludeSubDomains Method

Add Strict-Transport-Security max-age; includeSubDomains to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided and include any sub-domains.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddStrictTransportSecurityMaxAgeIncludeSubDomains(
    int maxAge
)

Parameters

maxAge
Type: Int32
The maximum age.

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddStrictTransportSecurityNoCache Method

HeaderConfig..::..AddStrictTransportSecurityNoCache Method

Add Strict-Transport-Security max-age=0 to all requests. Tells the user-agent to remove, or not cache the host in the STS cache

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddStrictTransportSecurityNoCache()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionBlock Method

HeaderConfig..::..AddXssProtectionBlock Method

Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionBlock()

Return Value

SecurityHeadersBuilder.

Remarks

Only limited implementation is in the browsers see Mozzilla for coverage

Examples

Block all java that could do harm like postback data.
block all unsafe java
app.UseSecurityHeadersMiddleware(options =>
   {
   options.AddXssProtectionBlock();
   });

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionBlockAndReport Method

HeaderConfig..::..AddXssProtectionBlockAndReport Method

Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionBlockAndReport(
    string reportUrl
)

Parameters

reportUrl
Type: String
leave it blank if you use IFireWall.Configuration.WebService.CSPReport

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionDisabled Method

HeaderConfig..::..AddXssProtectionDisabled Method

Add X-XSS-Protection 0 to all requests. Disables the XSS Protections offered by the user-agent.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionDisabled()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionEnabled Method

HeaderConfig..::..AddXssProtectionEnabled Method

Add X-XSS-Protection 1 to all requests. Enables the XSS Protections

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionEnabled()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionReport Method

HeaderConfig..::..AddXssProtectionReport Method

Overload List

 | Name | Description
Public method | AddXssProtectionReport(String) | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionReport(Uri) | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionReport()()()() | Add X-XSS-Protection 1; report=api/csp to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.

See Also

HeaderConfig Class
HeaderConfig Members
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionReport Method (String)

HeaderConfig..::..AddXssProtectionReport Method (String)

Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionReport(
    string reportUrl
)

Parameters

reportUrl
Type: String
The report URL in a W3C valid format .

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
AddXssProtectionReport Overload
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionReport Method (Uri)

HeaderConfig..::..AddXssProtectionReport Method (Uri)

Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionReport(
    Uri reportUrl
)

Parameters

reportUrl
Type: Uri
The report URL in a W3C valid format .

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
AddXssProtectionReport Overload
Walter.Web.FireWall.Configurations Namespace


AddXssProtectionReport Method

HeaderConfig..::..AddXssProtectionReport Method

Add X-XSS-Protection 1; report=api/csp to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder AddXssProtectionReport()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
AddXssProtectionReport Overload
Walter.Web.FireWall.Configurations Namespace


DoNotTrack Method

HeaderConfig..::..DoNotTrack Method

For 3rd party sites this will add a "do not track signal" that a web application should disable either its tracking or cross-site user tracking of an individual user.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder DoNotTrack()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


RemoveServerHeader Method

HeaderConfig..::..RemoveServerHeader Method

Removes the Server header from all responses

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder RemoveServerHeader()

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


SimulateDifferentServer Method

HeaderConfig..::..SimulateDifferentServer Method

Add headers to simulate a different server so that attackers are using a different method of attack

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder SimulateDifferentServer(
    ServerSimulation simulate
)

Parameters

simulate
Type: Walter.Web.FireWall.Headers..::..ServerSimulation
The type of server to simulate.

Return Value

ISecurityHeadersBuilder

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


SimulateDifferentTechnologyStack Method

HeaderConfig..::..SimulateDifferentTechnologyStack Method

Add headers to simulates the different technology stack.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder SimulateDifferentTechnologyStack(
    StackSimulation simulation
)

Parameters

simulation
Type: Walter.Web.FireWall.Headers..::..StackSimulation
The technology stack to simulation.

Return Value

ISecurityHeadersBuilder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


HeaderConfig Properties

The HeaderConfig type exposes the following members.

Properties

 | Name | Description
Public property | Expires | when a header value is no-longer valid
Public property | PlatformPrivacySettings | The P3P policies as applicable to cookies and state data stored by the application
Public property | Policies | The header policies applied in the header protection rule engine
Public property | SecurityHeaderBuilder | Access the security header builder to add advanced security policies and rules for the browser.
Public property | ShowGuardActionsInHeader | If true (default is false) the violated rules of the guard action evaluation will be shown in response header named Guard-Action
Public property | Simulations | The header simulations applied in the header protection rule engine.
Public property | TrackUsers | enable tracking users so you can avoid attack patterns
Public property | UserTracker | An arbitrary header key that will be used for tracking users in the web application. Change this value to not make it to easy for any attacker to try to bypass security

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


Expires Property

HeaderConfig..::..Expires Property

when a header value is no-longer valid

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Expires { get; set; }

Field Value

The expires.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


PlatformPrivacySettings Property

HeaderConfig..::..PlatformPrivacySettings Property

The P3P policies as applicable to cookies and state data stored by the application

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public P3POptions PlatformPrivacySettings { get; }

Remarks

By default this will include the state and scope of the data used by the firewall.

It is smart to align this with you privacy policy so that your headers contain GDPR required references

The firewall will include this data in all responses when using this filter in your MVC configuration

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

Examples

Register the firewall for always on configuration using only service settings
C#
services.AddFireWall("License Token", "Domain key"
       , domainName: new Uri("https://www.mydomain.dll", UriKind.Absolute)
       , options =>
       {
           options.Cypher.ApplicationPassword = "123456$even";
           options.ApplicationName = "Test domain";
           options.ApplicationTag = "ITIL-9981771";
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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);
   });

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.PrivacyPreferencesFilter>()
   );

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace
Walter.Web.FireWall.Filters..::..PrivacyPreferencesFilter
Walter.Web.FireWall.Filters..::..PrivacyPreferencesFilter


Policies Property

HeaderConfig..::..Policies Property

The header policies applied in the header protection rule engine

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HeadersPolicies Policies { get; }

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


SecurityHeaderBuilder Property

HeaderConfig..::..SecurityHeaderBuilder Property

Access the security header builder to add advanced security policies and rules for the browser.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISecurityHeadersBuilder SecurityHeaderBuilder { get; }

Field Value

The security header builder.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


ShowGuardActionsInHeader Property

HeaderConfig..::..ShowGuardActionsInHeader Property

If true (default is false) the violated rules of the guard action evaluation will be shown in response header named Guard-Action

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ShowGuardActionsInHeader { get; set; }

Field Value

true if [show guard actions in header]; otherwise, false.

Remarks

When debugging this value is ignored and guard action will always be in response header

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


Simulations Property

HeaderConfig..::..Simulations Property

The header simulations applied in the header protection rule engine.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HeaderSimulations Simulations { get; }

Remarks

Some versions of .net and ISS inject headers after the page was processed by your application.

Examples

Remove the header with the default implementation of .net core MVC application
C#
public static void Main(string[] args)
{
    CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
     Host.CreateDefaultBuilder(args)
         .ConfigureWebHostDefaults(webBuilder =>
         {
            webBuilder.UseStartup<Startup>()
                      .UseKestrel(kestrel=> kestrel.AddServerHeader=false);
          });
}

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


TrackUsers Property

HeaderConfig..::..TrackUsers Property

enable tracking users so you can avoid attack patterns

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TrackUsers { get; set; }

Field Value

true if [track users]; otherwise, false.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


UserTracker Property

HeaderConfig..::..UserTracker Property

An arbitrary header key that will be used for tracking users in the web application. Change this value to not make it to easy for any attacker to try to bypass security

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string UserTracker { get; set; }

Field Value

The user tracker.

See Also

HeaderConfig Class
Walter.Web.FireWall.Configurations Namespace


HoneyPotListnersRule Class

the listening rules for honey-pot service configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class HoneyPotListnersRule

See Also

HoneyPotListnersRule Members
Walter.Web.FireWall.Configurations Namespace


HoneyPotListnersRule Members

The HoneyPotListnersRule type exposes the following members.

Properties

 | Name | Description
Public property | ConfiguredPorts | Ports the firewall is configured to listen to
Public property | HoneyPortPorts | Ports the firewall will listen to but will be used to capture port scanners
Public property | MaximumDataCaptureSize | The sample data to take
Public property | PoolingFrequency | the Frequency in milliseconds of how often the service is to pool for phishing attacks per HoneyPortPorts

See Also

HoneyPotListnersRule Class
Walter.Web.FireWall.Configurations Namespace


HoneyPotListnersRule Properties

The HoneyPotListnersRule type exposes the following members.

Properties

 | Name | Description
Public property | ConfiguredPorts | Ports the firewall is configured to listen to
Public property | HoneyPortPorts | Ports the firewall will listen to but will be used to capture port scanners
Public property | MaximumDataCaptureSize | The sample data to take
Public property | PoolingFrequency | the Frequency in milliseconds of how often the service is to pool for phishing attacks per HoneyPortPorts

See Also

HoneyPotListnersRule Class
Walter.Web.FireWall.Configurations Namespace


ConfiguredPorts Property

HoneyPotListnersRule..::..ConfiguredPorts Property

Ports the firewall is configured to listen to

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HashSet<int> ConfiguredPorts { get; }

See Also

HoneyPotListnersRule Class
Walter.Web.FireWall.Configurations Namespace


HoneyPortPorts Property

HoneyPotListnersRule..::..HoneyPortPorts Property

Ports the firewall will listen to but will be used to capture port scanners

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HashSet<int> HoneyPortPorts { get; }

Remarks

To conserve resources the service will limit to 1 active connection. In general this is enough for detecting port scanners as typically no data is exchanged

See Also

HoneyPotListnersRule Class
Walter.Web.FireWall.Configurations Namespace


MaximumDataCaptureSize Property

HoneyPotListnersRule..::..MaximumDataCaptureSize Property

The sample data to take

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int MaximumDataCaptureSize { get; set; }

Remarks

Accepted are values ranging from 0 to 8000, if the value is 0 or less no data will be captured

See Also

HoneyPotListnersRule Class
Walter.Web.FireWall.Configurations Namespace


PoolingFrequency Property

HoneyPotListnersRule..::..PoolingFrequency Property

the Frequency in milliseconds of how often the service is to pool for phishing attacks per HoneyPortPorts

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int PoolingFrequency { get; set; }

Remarks

The default value is 100ms

See Also

HoneyPotListnersRule Class
Walter.Web.FireWall.Configurations Namespace


ICashingConfig Interface

Interface used for configuring cashing in the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ICashingConfig

See Also

ICashingConfig Members
Walter.Web.FireWall.Configurations Namespace


ICashingConfig Members

The ICashingConfig type exposes the following members.

Properties

 | Name | Description
Public property | BufferFirewallData | Gets duration that the firewall will buffer data in memory default is 60 minutes for disk based, 365 days for database based storage.
Public property | CookieData | Duration to keep cookie data in memory without saving it to a persistent storage
Public property | GeoLocation | Gets or sets the geography locations memory priority. ///
Public property | TemporaryUsers | Gets or sets the temporary users storage option, time it takes to process a login, updates on each request.
Public property | UserAgent | Gets or sets the storage priority and duration for the average duration of a user session
Public property | UserHistory | Gets or sets the user history.
Public property | UserSession | Gets or sets the storage priority and duration for the average duration of a user session
Public property | WhoisDaysHistory | Total days who-is data will be stored lower value means more requests to external service providers, the default is 365 days, negative values are not supported.

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


ICashingConfig Properties

The ICashingConfig type exposes the following members.

Properties

 | Name | Description
Public property | BufferFirewallData | Gets duration that the firewall will buffer data in memory default is 60 minutes for disk based, 365 days for database based storage.
Public property | CookieData | Duration to keep cookie data in memory without saving it to a persistent storage
Public property | GeoLocation | Gets or sets the geography locations memory priority. ///
Public property | TemporaryUsers | Gets or sets the temporary users storage option, time it takes to process a login, updates on each request.
Public property | UserAgent | Gets or sets the storage priority and duration for the average duration of a user session
Public property | UserHistory | Gets or sets the user history.
Public property | UserSession | Gets or sets the storage priority and duration for the average duration of a user session
Public property | WhoisDaysHistory | Total days who-is data will be stored lower value means more requests to external service providers, the default is 365 days, negative values are not supported.

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


BufferFirewallData Property

ICashingConfig..::..BufferFirewallData Property

Gets duration that the firewall will buffer data in memory default is 60 minutes for disk based, 365 days for database based storage.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan BufferFirewallData { get; }

Field Value

The buffer firewall data.

Remarks

The longer this period the more memory and or disk storage you need. The more data you have the better the firewall will recognize user events.

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


CookieData Property

ICashingConfig..::..CookieData Property

Duration to keep cookie data in memory without saving it to a persistent storage

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
MemoryCacheEntryOptions CookieData { get; }

Remarks

This keeps cookie backing data in memory avoiding the reading and writing of data during the users request processing. This feature only works if IMemoryCashe is used

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace
CookieConfig..::..UseTransparentEncryption
Walter.Web.FireWall.Infrastructure.Repositories..::..ICookieFactory


GeoLocation Property

ICashingConfig..::..GeoLocation Property

Gets or sets the geography locations memory priority. ///

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
MemoryCacheEntryOptions GeoLocation { get; }

Field Value

The geography locations stored for the user

Remarks

Typical no longer than the median duration of a page visit as is update per request as it slides.

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


TemporaryUsers Property

ICashingConfig..::..TemporaryUsers Property

Gets or sets the temporary users storage option, time it takes to process a login, updates on each request.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
MemoryCacheEntryOptions TemporaryUsers { get; }

Field Value

The temporary users.

Remarks

Typical no longer than the average duration of a site visit as it update per request and slides backup storage is server session and user cookie in that order.

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


UserAgent Property

ICashingConfig..::..UserAgent Property

Gets or sets the storage priority and duration for the average duration of a user session

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
MemoryCacheEntryOptions UserAgent { get; }

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


UserHistory Property

ICashingConfig..::..UserHistory Property

Gets or sets the user history.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
MemoryCacheEntryOptions UserHistory { get; }

Field Value

The user history memory duration.

Remarks

Typical no longer than the average duration of a page visit as is update per request and slides.

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


UserSession Property

ICashingConfig..::..UserSession Property

Gets or sets the storage priority and duration for the average duration of a user session

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
MemoryCacheEntryOptions UserSession { get; }

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


WhoisDaysHistory Property

ICashingConfig..::..WhoisDaysHistory Property

Total days who-is data will be stored lower value means more requests to external service providers, the default is 365 days, negative values are not supported.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int WhoisDaysHistory { get; }

Remarks

This is not memory storage but serialized long term storage in days. Most of this data is rather stable as it's not often that a ISP changes IP address scope

See Also

ICashingConfig Interface
Walter.Web.FireWall.Configurations Namespace


KPILogLevels Enumeration

Firewall KPI logging configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum KPILogLevels

Members

Member name | Description
None | Disable KPI logging
Get | Log HttpGet
Post | Log HttpPost
Delete | Log HttpDelete
All | Lag all Http methods

See Also

Walter.Web.FireWall.Configurations Namespace


RepeatViolations Enumeration

Rule controll how to act when repeat violations are incountered

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RepeatViolations

Members

Member name | Description
NoSpecialAction | Use only assigned values
DoublePerIncident | Double the block duration based on the total counts of all incidents that are in a given scope
DoublePerSameIncident | Double the block duration based on the counts the same incidents that are in a given scope

See Also

Walter.Web.FireWall.Configurations Namespace


ReportingConfig Class

Configuration used by the firewall in regards to reporting. this can be disk, email database or your own implementation that implements IReportDesination.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ReportingConfig

See Also

ReportingConfig Members
Walter.Web.FireWall.Configurations Namespace


ReportingConfig Members

The ReportingConfig type exposes the following members.

Methods

 | Name | Description
Public method | Buffer(IContentSecurityPolicyViolation) | The item to store
Public method | Buffer(FireWallDiskViolation) | The item to store
Public method | Buffer(IFireWallViolations) | The item to store
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Get<(Of <<'(T>)>>) | Get a specific Log destination, do not ask for IReportDesination as you would get the first instance but a concrete implementing class

Properties

 | Name | Description
Public property | DataRetention | Contains the value for how long processed data should be retained for reporting and legal compliance
Public property | EmailReportView | The Razor view use to render email report with when using the email add-on. Leave it blank for using the internal generated HTML for this report
Public property | FlushIntervals | Gets or sets the flush intervals.
Public property | HealthReportView | The Razor view use to render health report with when calling the IFireWall.Report method with the HTML as output format. Leave it blank to use the internal generated HTML for this report
Public property | KPILogging | KPI log level used when reporting
Public property | LookWhoisTalkingInterval | The interval used to update the communication discovery frequency of the network
Public property | ReportIncidentResetEventsWithNoAssociatedIncedents | Gets or sets a value indicating whether to report incident reset events with no associated incidents.

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


ReportingConfig Methods

The ReportingConfig type exposes the following members.

Methods

 | Name | Description
Public method | Buffer(IContentSecurityPolicyViolation) | The item to store
Public method | Buffer(FireWallDiskViolation) | The item to store
Public method | Buffer(IFireWallViolations) | The item to store
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Get<(Of <<'(T>)>>) | Get a specific Log destination, do not ask for IReportDesination as you would get the first instance but a concrete implementing class

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


Buffer Method

ReportingConfig..::..Buffer Method

Overload List

 | Name | Description
Public method | Buffer(IContentSecurityPolicyViolation) | The item to store
Public method | Buffer(FireWallDiskViolation) | The item to store
Public method | Buffer(IFireWallViolations) | The item to store

See Also

ReportingConfig Class
ReportingConfig Members
Walter.Web.FireWall.Configurations Namespace


Buffer Method (IContentSecurityPolicyViolation)

ReportingConfig..::..Buffer Method (IContentSecurityPolicyViolation)

The item to store

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Buffer(
    IContentSecurityPolicyViolation item
)

Parameters

item
Type: IContentSecurityPolicyViolation
the header security violation to store

See Also

ReportingConfig Class
Buffer Overload
Walter.Web.FireWall.Configurations Namespace


Buffer Method (FireWallDiskViolation)

ReportingConfig..::..Buffer Method (FireWallDiskViolation)

The item to store

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Buffer(
    FireWallDiskViolation item
)

Parameters

item
Type: Walter.Web.FireWall.ViewModels..::..FireWallDiskViolation
the header security violation to store

See Also

ReportingConfig Class
Buffer Overload
Walter.Web.FireWall.Configurations Namespace


Buffer Method (IFireWallViolations)

ReportingConfig..::..Buffer Method (IFireWallViolations)

The item to store

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Buffer(
    IFireWallViolations item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The fire wall violation to store

See Also

ReportingConfig Class
Buffer Overload
Walter.Web.FireWall.Configurations Namespace


Dispose Method

ReportingConfig..::..Dispose Method

Overload List

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

See Also

ReportingConfig Class
ReportingConfig Members
Walter.Web.FireWall.Configurations Namespace


Dispose Method (Boolean)

ReportingConfig..::..Dispose Method (Boolean)

Releases unmanaged and - optionally - managed resources.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true to release both managed and unmanaged resources; false to release only unmanaged resources.

See Also

ReportingConfig Class
Dispose Overload
Walter.Web.FireWall.Configurations Namespace


Dispose Method

ReportingConfig..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

See Also

ReportingConfig Class
Dispose Overload
Walter.Web.FireWall.Configurations Namespace


Get(T) Method

ReportingConfig..::..Get<(Of <(<'T>)>)> Method

Get a specific Log destination, do not ask for IReportDesination as you would get the first instance but a concrete implementing class

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReportDestination Get<T>()

Type Parameters

T
The type to get

Return Value

null if the type does not exists

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


ReportingConfig Properties

The ReportingConfig type exposes the following members.

Properties

 | Name | Description
Public property | DataRetention | Contains the value for how long processed data should be retained for reporting and legal compliance
Public property | EmailReportView | The Razor view use to render email report with when using the email add-on. Leave it blank for using the internal generated HTML for this report
Public property | FlushIntervals | Gets or sets the flush intervals.
Public property | HealthReportView | The Razor view use to render health report with when calling the IFireWall.Report method with the HTML as output format. Leave it blank to use the internal generated HTML for this report
Public property | KPILogging | KPI log level used when reporting
Public property | LookWhoisTalkingInterval | The interval used to update the communication discovery frequency of the network
Public property | ReportIncidentResetEventsWithNoAssociatedIncedents | Gets or sets a value indicating whether to report incident reset events with no associated incidents.

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


DataRetention Property

ReportingConfig..::..DataRetention Property

Contains the value for how long processed data should be retained for reporting and legal compliance

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan DataRetention { get; set; }

Remarks

Only used when data is stored in database and not for disk based repositories due to data volumes

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


EmailReportView Property

ReportingConfig..::..EmailReportView Property

The Razor view use to render email report with when using the email add-on. Leave it blank for using the internal generated HTML for this report

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> EmailReportView { get; set; }

Field Value

The email view to render when creating a email.

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

}).UseRazorTemplates(options=>{
    options.EmailReportView="EMailTemplate";
    options.EmailReportView=string.Empty;
}).UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
                 {
                     options.Archive = TimeSpan.FromDays(180);
                     options.Server = "mail.your-mail-domain.com";
                     options.UserName = "userName";
                     options.Password = "smtpPassword";
                     options.Port = 25;
                     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 }
                      );
                 });

services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


FlushIntervals Property

ReportingConfig..::..FlushIntervals Property

Gets or sets the flush intervals.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan FlushIntervals { get; set; }

Field Value

The flush intervals.

Remarks

If not set resolved to licensing default 1x min for enterprise and 1x per 5 minutes for other to reduce load on the system

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


HealthReportView Property

ReportingConfig..::..HealthReportView Property

The Razor view use to render health report with when calling the IFireWall.Report method with the HTML as output format. Leave it blank to use the internal generated HTML for this report

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> HealthReportView { get; set; }

Field Value

The health report view to render.

Examples

for more samples download getting started manual from www.asp-waf.com/download/ASP-WAF-FireWall-Getting-Started.pdf
Always-On configuration for MVC applications
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

        //are used by headers rules for Content Security Policy reporting by the browser
}).UseRazorTemplates(options=>{
    options.EmailReportView="EMailTemplate";
    options.EmailReportView=string.Empty;
}).UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
                 {
                     options.Archive = TimeSpan.FromDays(180);
                     options.Server = "mail.your-mail-domain.com";
                     options.UserName = "userName";
                     options.Password = "smtpPassword";
                     options.Port = 25;
                     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 }
                      );
                 });

services.AddMvc(options =>
    options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
);

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


KPILogging Property

ReportingConfig..::..KPILogging Property

KPI log level used when reporting

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KPILogLevels KPILogging { get; set; }

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


LookWhoisTalkingInterval Property

ReportingConfig..::..LookWhoisTalkingInterval Property

The interval used to update the communication discovery frequency of the network

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<TimeSpan> LookWhoisTalkingInterval { get; set; }

Remarks

The value is set to 5 minute intervals if using database storage, for disk based storage it is once per 60 minutes. For a better protection use the LookWhoisTalking service (separate product) as it has a database better equipped to deal with large volumes of data

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


ReportIncidentResetEventsWithNoAssociatedIncedents Property

ReportingConfig..::..ReportIncidentResetEventsWithNoAssociatedIncedents Property

Gets or sets a value indicating whether to report incident reset events with no associated incidents.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ReportIncidentResetEventsWithNoAssociatedIncedents { get; set; }

Field Value

If true if true will report a reset if the incident have expired or where no longer in the database; otherwise, empty resets will be ignored.

Remarks

Sometimes incidents are no longer in the firewall's storage due to retention levels or clearing the database using the API of manually physically from the server. A Reset statement will then not find any incidents that may have set a block cookie in the users browser.

You may disable having the mail client or database generate reports on this by setting this value to false. If however you have a publicly available endpoint that you use to reset incidents then hackers may use this to clear the firewall and allow them selfs to release the blocking that they might have initiated due to the malicious activities recorded

The default is True

See Also

ReportingConfig Class
Walter.Web.FireWall.Configurations Namespace


RulesConfig Class

Firewall rules configuration element contains the default rules used by the firewall for those modules that are not having configurations annotated on either controller or method.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class RulesConfig

Remarks

Rules can be altered at runtime and will effect all requests that are executed that have no configurations specified in form of annotation or manually altered [DomainKey].discovery.json file

See Also

RulesConfig Members
Walter.Web.FireWall.Configurations Namespace


RulesConfig Members

The RulesConfig type exposes the following members.

Methods

 | Name | Description
Public method | AddTrustedCrossSiteDomains | The URLs to add for domains that are trusted
Public method | BlackList | Black list= do not allow a rule to go unnoticed
Public method | IsWhiteListed | Test if the page is WhiteListed based on a rule
Public method | WhiteList | White list= allow a rule to happen

Properties

 | Name | Description
Public property | AllowAddhockAccess | If true allow the download of protected resources without having been used on a page, normally indicates a developer loading the resource
Public property | AllowLocalViolations | AllowRaiseIncident violations if the IP address is a IP address of this server
Public property | AllowNonAspNetRequests | Gets or sets the times you would like to allow non ASP net requests and redirect it to the home page or the special redirect url for.
Public property | AllowNonAspNetRequestsIn | Gets or sets the timespan for non ASP net requests will be measured in.
Public property | AllowPenetrationAttempts | Gets or sets the times you would like to allow Penetration probing and redirect it to the home page or the special redirect url for.
Public property | AllowPenetrationAttemptsIn | Gets or sets the timespan for non ASP net requests will be measured in.
Public property | AllowUsersByDefault | Defines the user group that would be granted access to endpoints. By default any user will be allowed except those as identified as being malicious.
Public property | AllowWhiteListing | Indicates if white-listing is allowed regardless of the configuration.
Public property | AlwaysOffOnStaticFiles | Will by default, disable the firewall from applying rules to all physical/ static files.
Public property | BlacklistLevelHoneyPotPortAccess | Gets or sets the blacklist level for when detecting when any of the honey pot ports is being access.
Public property | BlockedPatterns | The blocking patterns that are used for rejecting penetration attempts
Public property | BlockHoneyPotUsers | Block users with HoneyPot access
Public property | BlockNonAspNetRequestsFor | Gets or sets the block duration for non ASP net requests.
Public property | BlockPenetrationAttemptsFor | Gets or sets the block duration for non ASP net requests.
Public property | BlockReplay | If true, the default it will blocks replay attempts
Public property | BlockRequest | Default value for how to deal with blocking request on endpoints that have no rules configured by use of attribute annotations.
Public property | BlockUserAgentsConsideredMalicious | Block requests from user Bots and Browser that have been flagged as "ConsideredMalicious"
 | Default | Default configuration
Public property | DefaultInternetServiceProviderReputation | the Default trust level a Internet service provider must have for the UTL to be served
Public property | GuardActionEventId | Gets or sets the guard action event identifier.
Public property | GuardActionLogLevel | Gets or sets the guard action log level.
Public property | Headers | headers configuration in regards to rules
Public property | HoneyPotListners | Honey-pot listener configurations monitoring non HTTP requests
Public property | IgnoreRequestsThatAreNotDiscovered | Gets a value indicating whether to ignore requests that are not discovered or not listed in [DomainKey].DiscoveRrouts.json.
Public property | IgnoreRobotsTxt | Ignore Robots.txt rules
Public property | IncidentEventId | Gets or sets the incident event identifier.
Public property | IncidentLogLevel | Gets or sets the incident log level.
Public property | LoadEndpointConfigurationFromDisk | Gets or sets a value indicating whether to load endpoint configuration from disk.
Public property | MonitorCommunicationsNotInPorts | If set to a set of values, say the firewall will notify if communication outside of the noted ports occurred by any DLL in the solution. You can access this throe the firewall's interface IFireWall.IregularNetworkCommunications
Public property | NoValidate | Rules to disable at a application level
Public property | PhysicalFileWallExcludeReasons | Reasons that will cause the disk logger to not write block rules to disk file for physical firewall integration
Public property | PropagateExpiredRulesEveryMinutes | Gets or sets the interval used to propagate expired rules in minutes.
Public property | RedirectAllRequestsOnDiskManipulation | If set, the firewall will redirect all requests to the indicated URI.
Public property | RedirectBrowserDeveloperToolsUsersTo | Gets or sets the redirect browser when users are using the browsers developer tools. set to Null or String.Empty to disable
Public property | RedirectNonAspNetRequestsTo | Get or set the redirect URL for all non ASP net requests if the AllowNonAspNetRequests frequency in AllowNonAspNetRequestsIn has not been violated.
Public property | RedirectPenetrationAttemptsTo | Get or set the redirect URL for penetration attempts if the AllowPenetrationAttempts frequency in AllowPenetrationAttemptsIn has not been violated.
Public property | RedirectUrlPhishingTo | Gets or sets the redirect URL when phishing is detected, this might be a old link or some one manually types a link that does not exists.
Public property | RejectUsersByDefault | Define the user groups that would get rejected by default. If nothing is specified then the default type that will always get rejected is any user group identified as malicious
Public property | Rules | Access the rules that are defined
Public property | StopTestingForViolationsOnFirstViolation | Indicate to test for all violations to collect more malicious activity, of to save CPU time and cancel evaluating rules after the first incident.
Public property | TerminateApplicationOnDiskManipulation | If set to true the firewall will no longer serve requests
Public property | TolerateMaximumViolations | Gets or sets the tolerate maximum violations allowed in the TolerateMaximumViolationsIn timespan settings (default 1 incidents in 1 minute).
Public property | TolerateMaximumViolationsIn | Gets or sets the tolerate maximum violations in a given Timespan, the longer the time the more restrictive and the more likely a user will get rejected.
Public property | TolerateWrongProtocolMethod | Gets or sets a value indicating whether to tolerate wrong protocol method, meaning a post when expecting a get, this usually indicates a bug in development or a scripted attack in production.
Public property | TrustedCrossSiteDomains | A list of trusted domains in that are picked up by the CrossSite when assuming access to a endpoint is to be limited.
Public property | Uses | The value is set by the runtime and is used in reporting indicating the level of protection that is enabled.
Public property | ViolationsExpireAfter | Will tell the violation to expire after a given time, the default is 20 minutes. Use annotations to control firewall blocking rules

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


RulesConfig Methods

The RulesConfig type exposes the following members.

Methods

 | Name | Description
Public method | AddTrustedCrossSiteDomains | The URLs to add for domains that are trusted
Public method | BlackList | Black list= do not allow a rule to go unnoticed
Public method | IsWhiteListed | Test if the page is WhiteListed based on a rule
Public method | WhiteList | White list= allow a rule to happen

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AddTrustedCrossSiteDomains Method

RulesConfig..::..AddTrustedCrossSiteDomains Method

The URLs to add for domains that are trusted

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AddTrustedCrossSiteDomains(
    params Uri[] urls
)

Parameters

urls
Type: array<Uri>[]()[][]
the URL's to trust

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlackList Method

RulesConfig..::..BlackList Method

Black list= do not allow a rule to go unnoticed

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RulesConfig BlackList(
    KnownRule rule
)

Parameters

rule
Type: Walter.Web.FireWall.RuleEngine..::..KnownRule

Return Value

RuleConfig to chain options

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


IsWhiteListed Method

RulesConfig..::..IsWhiteListed Method

Test if the page is WhiteListed based on a rule

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to validate

Return Value

True if the page is white-listed

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


WhiteList Method

RulesConfig..::..WhiteList Method

White list= allow a rule to happen

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RulesConfig WhiteList(
    IPAddress address
)

Parameters

address
Type: IPAddress
The IP address to white-list

Return Value

RulesConfig for further configurations

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


RulesConfig Properties

The RulesConfig type exposes the following members.

Properties

 | Name | Description
Public property | AllowAddhockAccess | If true allow the download of protected resources without having been used on a page, normally indicates a developer loading the resource
Public property | AllowLocalViolations | AllowRaiseIncident violations if the IP address is a IP address of this server
Public property | AllowNonAspNetRequests | Gets or sets the times you would like to allow non ASP net requests and redirect it to the home page or the special redirect url for.
Public property | AllowNonAspNetRequestsIn | Gets or sets the timespan for non ASP net requests will be measured in.
Public property | AllowPenetrationAttempts | Gets or sets the times you would like to allow Penetration probing and redirect it to the home page or the special redirect url for.
Public property | AllowPenetrationAttemptsIn | Gets or sets the timespan for non ASP net requests will be measured in.
Public property | AllowUsersByDefault | Defines the user group that would be granted access to endpoints. By default any user will be allowed except those as identified as being malicious.
Public property | AllowWhiteListing | Indicates if white-listing is allowed regardless of the configuration.
Public property | AlwaysOffOnStaticFiles | Will by default, disable the firewall from applying rules to all physical/ static files.
Public property | BlacklistLevelHoneyPotPortAccess | Gets or sets the blacklist level for when detecting when any of the honey pot ports is being access.
Public property | BlockedPatterns | The blocking patterns that are used for rejecting penetration attempts
Public property | BlockHoneyPotUsers | Block users with HoneyPot access
Public property | BlockNonAspNetRequestsFor | Gets or sets the block duration for non ASP net requests.
Public property | BlockPenetrationAttemptsFor | Gets or sets the block duration for non ASP net requests.
Public property | BlockReplay | If true, the default it will blocks replay attempts
Public property | BlockRequest | Default value for how to deal with blocking request on endpoints that have no rules configured by use of attribute annotations.
Public property | BlockUserAgentsConsideredMalicious | Block requests from user Bots and Browser that have been flagged as "ConsideredMalicious"
 | Default | Default configuration
Public property | DefaultInternetServiceProviderReputation | the Default trust level a Internet service provider must have for the UTL to be served
Public property | GuardActionEventId | Gets or sets the guard action event identifier.
Public property | GuardActionLogLevel | Gets or sets the guard action log level.
Public property | Headers | headers configuration in regards to rules
Public property | HoneyPotListners | Honey-pot listener configurations monitoring non HTTP requests
Public property | IgnoreRequestsThatAreNotDiscovered | Gets a value indicating whether to ignore requests that are not discovered or not listed in [DomainKey].DiscoveRrouts.json.
Public property | IgnoreRobotsTxt | Ignore Robots.txt rules
Public property | IncidentEventId | Gets or sets the incident event identifier.
Public property | IncidentLogLevel | Gets or sets the incident log level.
Public property | LoadEndpointConfigurationFromDisk | Gets or sets a value indicating whether to load endpoint configuration from disk.
Public property | MonitorCommunicationsNotInPorts | If set to a set of values, say the firewall will notify if communication outside of the noted ports occurred by any DLL in the solution. You can access this throe the firewall's interface IFireWall.IregularNetworkCommunications
Public property | NoValidate | Rules to disable at a application level
Public property | PhysicalFileWallExcludeReasons | Reasons that will cause the disk logger to not write block rules to disk file for physical firewall integration
Public property | PropagateExpiredRulesEveryMinutes | Gets or sets the interval used to propagate expired rules in minutes.
Public property | RedirectAllRequestsOnDiskManipulation | If set, the firewall will redirect all requests to the indicated URI.
Public property | RedirectBrowserDeveloperToolsUsersTo | Gets or sets the redirect browser when users are using the browsers developer tools. set to Null or String.Empty to disable
Public property | RedirectNonAspNetRequestsTo | Get or set the redirect URL for all non ASP net requests if the AllowNonAspNetRequests frequency in AllowNonAspNetRequestsIn has not been violated.
Public property | RedirectPenetrationAttemptsTo | Get or set the redirect URL for penetration attempts if the AllowPenetrationAttempts frequency in AllowPenetrationAttemptsIn has not been violated.
Public property | RedirectUrlPhishingTo | Gets or sets the redirect URL when phishing is detected, this might be a old link or some one manually types a link that does not exists.
Public property | RejectUsersByDefault | Define the user groups that would get rejected by default. If nothing is specified then the default type that will always get rejected is any user group identified as malicious
Public property | Rules | Access the rules that are defined
Public property | StopTestingForViolationsOnFirstViolation | Indicate to test for all violations to collect more malicious activity, of to save CPU time and cancel evaluating rules after the first incident.
Public property | TerminateApplicationOnDiskManipulation | If set to true the firewall will no longer serve requests
Public property | TolerateMaximumViolations | Gets or sets the tolerate maximum violations allowed in the TolerateMaximumViolationsIn timespan settings (default 1 incidents in 1 minute).
Public property | TolerateMaximumViolationsIn | Gets or sets the tolerate maximum violations in a given Timespan, the longer the time the more restrictive and the more likely a user will get rejected.
Public property | TolerateWrongProtocolMethod | Gets or sets a value indicating whether to tolerate wrong protocol method, meaning a post when expecting a get, this usually indicates a bug in development or a scripted attack in production.
Public property | TrustedCrossSiteDomains | A list of trusted domains in that are picked up by the CrossSite when assuming access to a endpoint is to be limited.
Public property | Uses | The value is set by the runtime and is used in reporting indicating the level of protection that is enabled.
Public property | ViolationsExpireAfter | Will tell the violation to expire after a given time, the default is 20 minutes. Use annotations to control firewall blocking rules

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowAddhockAccess Property

RulesConfig..::..AllowAddhockAccess Property

If true allow the download of protected resources without having been used on a page, normally indicates a developer loading the resource

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowAddhockAccess { get; set; }

Remarks

This value is assigned to all files found on disk by default, to change default behavior use the OnEndpointsCreated event

Examples

The bellow sample shows how block search engines from showing embedded images.
C#
options.OnEndpointsCreated+=(links)=>  {
   foreach (var item in links.EndpointsInPath(
            ,"*.jpg"
            , "*.png" ))
   {
       item.AllowAddhockAccess = false;
   }
};

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
IFireWallConfig..::..OnEndpointsCreated


AllowLocalViolations Property

RulesConfig..::..AllowLocalViolations Property

AllowRaiseIncident violations if the IP address is a IP address of this server

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowLocalViolations { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowNonAspNetRequests Property

RulesConfig..::..AllowNonAspNetRequests Property

Gets or sets the times you would like to allow non ASP net requests and redirect it to the home page or the special redirect url for.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> AllowNonAspNetRequests { get; set; }

Field Value

The allow non ASP net requests.

Remarks

If not assigned the default value in TolerateMaximumViolations will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowNonAspNetRequestsIn Property

RulesConfig..::..AllowNonAspNetRequestsIn Property

Gets or sets the timespan for non ASP net requests will be measured in.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<TimeSpan> AllowNonAspNetRequestsIn { get; set; }

Field Value

The allow non ASP net requests in.

Remarks

If not assigned tolerateMaximumViolationsIn()()()() will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowPenetrationAttempts Property

RulesConfig..::..AllowPenetrationAttempts Property

Gets or sets the times you would like to allow Penetration probing and redirect it to the home page or the special redirect url for.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> AllowPenetrationAttempts { get; set; }

Field Value

The number of penetration attempts to allow, default = 0 .

Remarks

If not assigned the default of 0 is used, if set to null then TolerateMaximumViolations will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowPenetrationAttemptsIn Property

RulesConfig..::..AllowPenetrationAttemptsIn Property

Gets or sets the timespan for non ASP net requests will be measured in.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<TimeSpan> AllowPenetrationAttemptsIn { get; set; }

Field Value

The timespan to allow penetration attempts in.

Remarks

If not assigned tolerateMaximumViolationsIn()()()() will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AllowUsersByDefault Property

RulesConfig..::..AllowUsersByDefault Property

Defines the user group that would be granted access to endpoints. By default any user will be allowed except those as identified as being malicious.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes AllowUsersByDefault { get; set; }

Field Value

The allow users by default.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
RulesConfig..::..RejectUsersByDefault
DiscoveredRout..::..UserFilter


AllowWhiteListing Property

RulesConfig..::..AllowWhiteListing Property

Indicates if white-listing is allowed regardless of the configuration.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowWhiteListing { get; set; }

Field Value

true if [allow white listing]; otherwise, false.

Remarks

WhiteListing is on by default for requests executed locally, if you like the firewall to also test local requests set it to false

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


AlwaysOffOnStaticFiles Property

RulesConfig..::..AlwaysOffOnStaticFiles Property

Will by default, disable the firewall from applying rules to all physical/ static files.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AlwaysOffOnStaticFiles { get; set; }

Remarks

The firewall will record that the file was served but take no actions and make no recommendations.

It is entirely plausible for a DOS attack to focus on resources and not on pages and actions where you have the possibility to interact with the request and response.

You may have files that you'd expect the web service not to serve, however a misconfiguration may leave your size exposed and the firewall detects such attempts and will understand that the user has malicious intentions. If disabling protection of static files this discovery will not take place and the firewall will be less effective

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
you can use the DisableFirewalAttribute to have endpoints unprotected


BlacklistLevelHoneyPotPortAccess Property

RulesConfig..::..BlacklistLevelHoneyPotPortAccess Property

Gets or sets the blacklist level for when detecting when any of the honey pot ports is being access.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BlacklistLevelHoneyPotPortAccessLevel BlacklistLevelHoneyPotPortAccess { get; set; }

Field Value

The blacklist level honey pot port access.

Remarks

Default blacklist level is IP address, the duration for the block is retrieved from BlockPenetrationAttemptsFor if not set 30 minutes is used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockedPatterns Property

RulesConfig..::..BlockedPatterns Property

The blocking patterns that are used for rejecting penetration attempts

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UrlValidationPatterns BlockedPatterns { get; }

Remarks

Look at your 404 logs and try to find those URL's that seem to be fishing for access and add them in here

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized case statements
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockHoneyPotUsers Property

RulesConfig..::..BlockHoneyPotUsers Property

Block users with HoneyPot access

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool BlockHoneyPotUsers { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockNonAspNetRequestsFor Property

RulesConfig..::..BlockNonAspNetRequestsFor Property

Gets or sets the block duration for non ASP net requests.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<TimeSpan> BlockNonAspNetRequestsFor { get; set; }

Field Value

The block non ASP net requests for.

Remarks

This is by far the most common attack, users are looking for backup, XML resources, or PHP pages. If not assigned ViolationsExpireAfter will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockPenetrationAttemptsFor Property

RulesConfig..::..BlockPenetrationAttemptsFor Property

Gets or sets the block duration for non ASP net requests.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<TimeSpan> BlockPenetrationAttemptsFor { get; set; }

Field Value

The block non ASP net requests for.

Remarks

This is by far the most common attack, users are looking for backup, XML resources, or PHP pages. If not assigned ViolationsExpireAfter will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockReplay Property

RulesConfig..::..BlockReplay Property

If true, the default it will blocks replay attempts

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool BlockReplay { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockRequest Property

RulesConfig..::..BlockRequest Property

Default value for how to deal with blocking request on endpoints that have no rules configured by use of attribute annotations.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BlockRequestsConfig BlockRequest { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


BlockUserAgentsConsideredMalicious Property

RulesConfig..::..BlockUserAgentsConsideredMalicious Property

Block requests from user Bots and Browser that have been flagged as "ConsideredMalicious"

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool BlockUserAgentsConsideredMalicious { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


Default Property

RulesConfig..::..Default Property

Default configuration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static RulesConfig Default { get; }

Remarks

Only accessible when IFireWall has been generated

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


DefaultInternetServiceProviderReputation Property

RulesConfig..::..DefaultInternetServiceProviderReputation Property

the Default trust level a Internet service provider must have for the UTL to be served

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ISPTrustLevels DefaultInternetServiceProviderReputation { get; set; }

Remarks

by default the reputation of a ISP is report meaning access is granted but reported, set to None to skip the check by default and only check if endpoints are annotated with ISPTrustLevelAttribute

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
Walter.Web.FireWall.Annotations..::..ISPTrustLevelAttribute


GuardActionEventId Property

RulesConfig..::..GuardActionEventId Property

Gets or sets the guard action event identifier.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EventId GuardActionEventId { get; set; }

Field Value

The guard action event identifier.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


GuardActionLogLevel Property

RulesConfig..::..GuardActionLogLevel Property

Gets or sets the guard action log level.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LogLevel GuardActionLogLevel { get; set; }

Field Value

The guard action log level.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


Headers Property

RulesConfig..::..Headers Property

headers configuration in regards to rules

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HeaderConfig Headers { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


HoneyPotListners Property

RulesConfig..::..HoneyPotListners Property

Honey-pot listener configurations monitoring non HTTP requests

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HoneyPotListnersRule HoneyPotListners { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


IgnoreRequestsThatAreNotDiscovered Property

RulesConfig..::..IgnoreRequestsThatAreNotDiscovered Property

Gets a value indicating whether to ignore requests that are not discovered or not listed in [DomainKey].DiscoveRrouts.json.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IgnoreRequestsThatAreNotDiscovered { get; set; }

Field Value

true if [ignore requests that are not discovered]; otherwise, false.

Remarks

This enabling this is not recommended as it would open the site to zero-day exploits. The benefit is that you only protect what you intend to protect and gain throughput as the processes get processed faster without the firewall than with the firewall validating requests you perhaps do not care about.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


IgnoreRobotsTxt Property

RulesConfig..::..IgnoreRobotsTxt Property

Ignore Robots.txt rules

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IgnoreRobotsTxt { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


IncidentEventId Property

RulesConfig..::..IncidentEventId Property

Gets or sets the incident event identifier.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EventId IncidentEventId { get; set; }

Field Value

The incident event identifier.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


IncidentLogLevel Property

RulesConfig..::..IncidentLogLevel Property

Gets or sets the incident log level.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LogLevel IncidentLogLevel { get; set; }

Field Value

The incident log level.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


LoadEndpointConfigurationFromDisk Property

RulesConfig..::..LoadEndpointConfigurationFromDisk Property

Gets or sets a value indicating whether to load endpoint configuration from disk.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool LoadEndpointConfigurationFromDisk { get; set; }

Field Value

if true *.DiscoverRouts.json will be used else it will be re-created

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


MonitorCommunicationsNotInPorts Property

RulesConfig..::..MonitorCommunicationsNotInPorts Property

If set to a set of values, say the firewall will notify if communication outside of the noted ports occurred by any DLL in the solution. You can access this throe the firewall's interface IFireWall.IregularNetworkCommunications

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerable<int> MonitorCommunicationsNotInPorts { get; set; }

Examples

//in firewall configuration set to monitor all but port 80 and ssl

options.Rules.MonitorCommunicationsNotInPorts=new []{80,443};

C#
See Also
RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


NoValidate Property

RulesConfig..::..NoValidate Property

Rules to disable at a application level

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions NoValidate { get; set; }

Remarks

If you notice that a given rule is generating false positives then you can disable the rule at an application level. You can see the rules that trigger an incident by subscribing to the OnIncident event. The Modules contain details on the violated data as well as the ViolationsStack

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
FireWallBase..::..OnIncident
IFireWall..::..OnIncident
Walter.Web.FireWall.Models..::..FireWallStackItem
IPageRequest..::..ViolationsStack


PhysicalFileWallExcludeReasons Property

RulesConfig..::..PhysicalFileWallExcludeReasons Property

Reasons that will cause the disk logger to not write block rules to disk file for physical firewall integration

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons PhysicalFileWallExcludeReasons { get; set; }

Remarks

See documentation for physical firewall integration

Examples

Sometimes you would like to limit what rules cause a physical firewall to close. the bellow sample shows how you can only generate blocking rules for a IPAddress coming from the wrong country
C#
services.AddMemoryCache();

services.AddFireWall("Your token", "Domain key"
    , domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
   {
       options.JoinCustomerImprovementProgramWithEmail = "email@MailAddress.com";
       options.Cypher.ApplicationPassword = "123456Seven";
       options.ApplicationName = "www.test.dll";
       options.ApplicationTag = "WS3";
       options.Rules.AllowWhiteListing = false;
       //only write NoAccessFromRegion rules to disk
       options.Rules.PhysicalFileWallExcludeReasons = Walter.BOM.FirewallBlockReasons.ALL & ~Walter.BOM.FirewallBlockReasons.NoAccessFromRegion;
       options.UseSession = false;

       //view located in ~/Views/Shared
       options.Reporting.HealthReportView = "_healthReport";
       options.Reporting.EmailReportView = "_EmailReport";

       options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);
       options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
       options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);

       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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);

       options.Rules.AllowWhiteListing = false;
       options.OnEndpointsCreated+= Options_OnEndpointsCreated;
       options.OnFireWallCreated += Options_OnFireWallCreated;
       options.Rules.Headers.AddDefaultSecurePolicy()
                            .AddStrictTransportSecurityNoCache()
                            .AddXssProtectionBlockAndReport()
                            .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                      , allowInline: true
                                      , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

   })
    .UseGeography(new System.IO.DirectoryInfo("D:\\MaxMind"))
    .UseDiskLogging(options => { options.Directory = @"D:\Firewall"; });

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


PropagateExpiredRulesEveryMinutes Property

RulesConfig..::..PropagateExpiredRulesEveryMinutes Property

Gets or sets the interval used to propagate expired rules in minutes.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double PropagateExpiredRulesEveryMinutes { get; set; }

Field Value

The propagate expired rules every minutes.

Remarks

Default is 5 minutes, set to 0 to use near real-time, this activation delay could effect how BlockDuration is managed unblocking is only done when the firewall is active

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
BlockRequestsConfig..::..BlockDuration


RedirectAllRequestsOnDiskManipulation Property

RulesConfig..::..RedirectAllRequestsOnDiskManipulation Property

If set, the firewall will redirect all requests to the indicated URI.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RedirectAllRequestsOnDiskManipulation { get; set; }

Remarks

Use the FireWall's OnDiskManipulation event to control how to respond to manipulations on the disk sub-system. If you are linking to a URL in your own application make sure you decorate the page or action with the FireWallDisabled attribute.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
Walter.Web.FireWall.Annotations..::..DisableFirewallAttribute


RedirectBrowserDeveloperToolsUsersTo Property

RulesConfig..::..RedirectBrowserDeveloperToolsUsersTo Property

Gets or sets the redirect browser when users are using the browsers developer tools. set to Null or String.Empty to disable

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectBrowserDeveloperToolsUsersTo { get; set; }

Field Value

The redirect browser developer tools users to.

Remarks

Default value is "https://ec.europa.eu/trade/policy/accessing-markets/intellectual-property/"

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


RedirectNonAspNetRequestsTo Property

RulesConfig..::..RedirectNonAspNetRequestsTo Property

Get or set the redirect URL for all non ASP net requests if the AllowNonAspNetRequests frequency in AllowNonAspNetRequestsIn has not been violated.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RedirectNonAspNetRequestsTo { get; set; }

Field Value

The redirect non ASP net requests to.

Remarks

If not assigned the value of block request or the domain root for the domain license will be used if the firewall is hosted in a web application

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
BlockRequestsConfig..::..TransferRequestTo


RedirectPenetrationAttemptsTo Property

RulesConfig..::..RedirectPenetrationAttemptsTo Property

Get or set the redirect URL for penetration attempts if the AllowPenetrationAttempts frequency in AllowPenetrationAttemptsIn has not been violated.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RedirectPenetrationAttemptsTo { get; set; }

Field Value

The redirect URL to redirect penetration attempts to.

Remarks

If not assigned and AllowPenetrationAttempts is greater then 0 the root will be used

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


RedirectUrlPhishingTo Property

RulesConfig..::..RedirectUrlPhishingTo Property

Gets or sets the redirect URL when phishing is detected, this might be a old link or some one manually types a link that does not exists.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RedirectUrlPhishingTo { get; set; }

Field Value

The redirect URL phishing to.

Remarks

If not assigned and the TolerateMaximumViolations in tolerateMaximumViolationsIn()()()() Rule has not been violated, then the root will be used if the firewall is hosted in a web application. Phishing is not the same as NonAsp.net requests or exploit probing, this type of attacks are managed by redirect RedirectNonAspNetRequestsTo

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


RejectUsersByDefault Property

RulesConfig..::..RejectUsersByDefault Property

Define the user groups that would get rejected by default. If nothing is specified then the default type that will always get rejected is any user group identified as malicious

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes RejectUsersByDefault { get; set; }

Field Value

The reject users by default.

Remarks

This value is only applied if no UserAttribute is present on an endpoint

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace
RulesConfig..::..AllowUsersByDefault
DiscoveredRout..::..UserFilter


Rules Property

RulesConfig..::..Rules Property

Access the rules that are defined

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RulesCollection Rules { get; set; }

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


StopTestingForViolationsOnFirstViolation Property

RulesConfig..::..StopTestingForViolationsOnFirstViolation Property

Indicate to test for all violations to collect more malicious activity, of to save CPU time and cancel evaluating rules after the first incident.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool StopTestingForViolationsOnFirstViolation { get; set; }

Field Value

true if stop testing for violations on first violation; otherwise, false.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


TerminateApplicationOnDiskManipulation Property

RulesConfig..::..TerminateApplicationOnDiskManipulation Property

If set to true the firewall will no longer serve requests

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> TerminateApplicationOnDiskManipulation { get; set; }

Remarks

Use the FireWall's OnDiskManipulation event to control how to respond to manipulations on the disk sub-system

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


TolerateMaximumViolations Property

RulesConfig..::..TolerateMaximumViolations Property

Gets or sets the tolerate maximum violations allowed in the TolerateMaximumViolationsIn timespan settings (default 1 incidents in 1 minute).

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int TolerateMaximumViolations { get; set; }

Field Value

The tolerate maximum violations.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


TolerateMaximumViolationsIn Property

RulesConfig..::..TolerateMaximumViolationsIn Property

Gets or sets the tolerate maximum violations in a given Timespan, the longer the time the more restrictive and the more likely a user will get rejected.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan TolerateMaximumViolationsIn { get; set; }

Field Value

The tolerate maximum violations in.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


TolerateWrongProtocolMethod Property

RulesConfig..::..TolerateWrongProtocolMethod Property

Gets or sets a value indicating whether to tolerate wrong protocol method, meaning a post when expecting a get, this usually indicates a bug in development or a scripted attack in production.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TolerateWrongProtocolMethod { get; set; }

Field Value

true if [tolerate wrong protocol method]; otherwise, false.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


TrustedCrossSiteDomains Property

RulesConfig..::..TrustedCrossSiteDomains Property

A list of trusted domains in that are picked up by the CrossSite when assuming access to a endpoint is to be limited.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<Uri> TrustedCrossSiteDomains { get; }

Remarks

When defining white-listed cross site domains this will be applicable to all endpoints that use the CrossSite attribute. you can't mix allowing and not allowing those that are globally allowed.

Examples

The bellow sample shows how the TrustedCrossSiteDomains get's 2 domains it will trust by default
White-list cross site domains protection if belong to the test.dll domain
services.AddMemoryCache();

services.AddFireWall("Token", "Domain Key"
     , domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
    {
        options.JoinCustomerImprovementProgramWithEmail = "mail@test.dll";
        options.Cypher.ApplicationPassword = "123456Seven";
        options.ApplicationName = "www.test.dll";
        options.ApplicationTag = "WS3";

        options.UseSession = false;
        options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);

        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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);

        options.OnEndpointsCreated+= Options_OnEndpointsCreated;
        options.OnFireWallCreated += Options_OnFireWallCreated;
        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.TrustedCrossSiteDomains.AddRange(new[] { new Uri("https://gateway.test.dll", UriKind.Absolute), new Uri("https://support.test.dll", UriKind.Absolute) });
        options.Rules.AllowWhiteListing = false;
        options.Rules.Headers.AddDefaultSecurePolicy()
                             .AddStrictTransportSecurityNoCache()
                             .AddXssProtectionBlockAndReport()
                             .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                       , allowInline: true
                                       , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

    });
Only allow access to a user profile if the site belongs to self or the domains in configuration
[HttpGet]
[CrossSite()]
public JsonResult UserProfile()
{
...
}

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


Uses Property

RulesConfig..::..Uses Property

The value is set by the runtime and is used in reporting indicating the level of protection that is enabled.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuards Uses { get; set; }

Remarks

If creating your own add-ons you should update this value when adding the plug-in to the firewall

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


ViolationsExpireAfter Property

RulesConfig..::..ViolationsExpireAfter Property

Will tell the violation to expire after a given time, the default is 20 minutes. Use annotations to control firewall blocking rules

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan ViolationsExpireAfter { get; set; }

Remarks

Annotations can be used to determine if violations will block after several incidents in a given timespan. This expiry is similar to cookie expiry only this value is not send to the browser but maintained locally.

See Also

RulesConfig Class
Walter.Web.FireWall.Configurations Namespace


UrlValidationPatterns Class

URL validation patterns used in the rule engine

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class UrlValidationPatterns

Remarks

This class comes with default values that may not fit your requirements. Update the patterns in this list to match your Endpoints.

You can remove and add items from any of the lists in this pattern dataset.

Examples

The bellow sample will remove the url that maps to ~/Order/Checkout as that particularly rout would be valid for the web-application. However there is no valid rout that uses /Payment and we would like to block users that try to fish for that url especially as we have added that url to robots.txt with a Disallow: */Payment just to catch anyone trying to use the robots file to attack the site.

You should add the items to the "correct list" like us, adding /Payment to NoOnlinePaymentSystemExists because if it will match a request than the firewall gives us a type of incident where we know some one was blocked as they where going at the payment system.

C#
public class MyFireWall : FireWallBase
   {
      public MyFireWall(ILoggerFactory factory, IMemoryCache cache, ILatLongRepository geo)
               : base(loggerFactory: factory, memoryCache: cache, latLongRepository: geo)
           {
               Configuration.Rules.BlockedPatterns.NoOnlinePaymentSystemExists.Add("/Payment");
               Configuration.Rules.BlockedPatterns.NoOnlinePaymentSystemExists.Remove("/Checkout");
               base.Trigger_OnFireWallCreated(this);

           }
   }

See Also

UrlValidationPatterns Members
Walter.Web.FireWall.Configurations Namespace


UrlValidationPatterns Members

The UrlValidationPatterns type exposes the following members.

Properties

 | Name | Description
Public property | DatabasesAreNotPubliclyAccessable | Patterns used for discovering when some one or something thinks he can access a database
Public property | NoOnlinePaymentSystemExists | Patterns used for discovering when some one or something thinks he knows a url used to process payments
Public property | NoPublicAccessToAdministration | Patterns used for discovering when some one or something thinks he has access to a Administration url that's not used by the system
Public property | NoPublicAccessToApplicationCodeAllowed | Patterns used for discovering when some one or something thinks he can access source code
Public property | NoPublicAccessToBackupsAllowed | Patterns used for discovering when some one or something thinks he can access backups
Public property | NoPublicAccessToConfigurationAllowed | Patterns used for discovering when some one or something thinks he can access configuration files
Public property | NoPublicAccessToFileDirectoryAllowed | Patterns used for discovering when some one or something tries to access directory or files that he is not supposed to
Public property | NotSupportedHandlers | handlers that are not supported in this asp.net application
Public property | NotSupportedPlatform | Patterns used for discovering when some one or something thinks we are not .net
Public property | NotUsedPlugin | Patterns used for discovering when some one or something thinks we are using a given plug-in when we are not
Public property | NoUserAuthenticationExists | Patterns used for discovering when some one or something thinks that we use a login url that's not used by the system
Public property | OpperatingSystemAccessProhibited | used when some one tries to access the OS
Public property | ScriptInjectionNotAllowed | Patterns used for discovering when some one or something thinks that we allow scripts to be injected into the system
Public property | UrlFishingSuspected | Patterns used for discovering when some one or something thinks we use a url that we do not, typically there are links the firewall generates that do not exist to see a bot or hacker is accessing the system

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


UrlValidationPatterns Properties

The UrlValidationPatterns type exposes the following members.

Properties

 | Name | Description
Public property | DatabasesAreNotPubliclyAccessable | Patterns used for discovering when some one or something thinks he can access a database
Public property | NoOnlinePaymentSystemExists | Patterns used for discovering when some one or something thinks he knows a url used to process payments
Public property | NoPublicAccessToAdministration | Patterns used for discovering when some one or something thinks he has access to a Administration url that's not used by the system
Public property | NoPublicAccessToApplicationCodeAllowed | Patterns used for discovering when some one or something thinks he can access source code
Public property | NoPublicAccessToBackupsAllowed | Patterns used for discovering when some one or something thinks he can access backups
Public property | NoPublicAccessToConfigurationAllowed | Patterns used for discovering when some one or something thinks he can access configuration files
Public property | NoPublicAccessToFileDirectoryAllowed | Patterns used for discovering when some one or something tries to access directory or files that he is not supposed to
Public property | NotSupportedHandlers | handlers that are not supported in this asp.net application
Public property | NotSupportedPlatform | Patterns used for discovering when some one or something thinks we are not .net
Public property | NotUsedPlugin | Patterns used for discovering when some one or something thinks we are using a given plug-in when we are not
Public property | NoUserAuthenticationExists | Patterns used for discovering when some one or something thinks that we use a login url that's not used by the system
Public property | OpperatingSystemAccessProhibited | used when some one tries to access the OS
Public property | ScriptInjectionNotAllowed | Patterns used for discovering when some one or something thinks that we allow scripts to be injected into the system
Public property | UrlFishingSuspected | Patterns used for discovering when some one or something thinks we use a url that we do not, typically there are links the firewall generates that do not exist to see a bot or hacker is accessing the system

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


DatabasesAreNotPubliclyAccessable Property

UrlValidationPatterns..::..DatabasesAreNotPubliclyAccessable Property

Patterns used for discovering when some one or something thinks he can access a database

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> DatabasesAreNotPubliclyAccessable { get; }

Remarks

The patterns engine looks at both the path as well as the query if any
The default is:{ "/database", "/data/", "/dato/", "/db/" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoOnlinePaymentSystemExists Property

UrlValidationPatterns..::..NoOnlinePaymentSystemExists Property

Patterns used for discovering when some one or something thinks he knows a url used to process payments

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoOnlinePaymentSystemExists { get; }

Remarks

The patterns engine looks at both the path as well as the query if any.
The default is: { "/shop", "/cart", "/bill", "/cash" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoPublicAccessToAdministration Property

UrlValidationPatterns..::..NoPublicAccessToAdministration Property

Patterns used for discovering when some one or something thinks he has access to a Administration url that's not used by the system

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoPublicAccessToAdministration { get; }

Remarks

The patterns engine looks at both the path as well as the query if any.
The default is: { "/passwd", "/password", "/activatemember", "/login", ".com/login", "client", ".com/account" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoPublicAccessToApplicationCodeAllowed Property

UrlValidationPatterns..::..NoPublicAccessToApplicationCodeAllowed Property

Patterns used for discovering when some one or something thinks he can access source code

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoPublicAccessToApplicationCodeAllowed { get; }

Remarks

The patterns engine looks at both the path as well as the query if any
The default is:{ "/class", ".git", ".svn" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoPublicAccessToBackupsAllowed Property

UrlValidationPatterns..::..NoPublicAccessToBackupsAllowed Property

Patterns used for discovering when some one or something thinks he can access backups

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoPublicAccessToBackupsAllowed { get; }

Remarks

The patterns engine looks at both the path as well as the query if any
The default is:{ "/backup", "/backend", ".z7", ".gz", ".jar", ".rar", ".tar" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoPublicAccessToConfigurationAllowed Property

UrlValidationPatterns..::..NoPublicAccessToConfigurationAllowed Property

Patterns used for discovering when some one or something thinks he can access configuration files

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoPublicAccessToConfigurationAllowed { get; }

Remarks

The patterns engine looks at the whole url.
The default is:{ "/activex", "/apache", "/applets", ".com/application", ".com/setup", "/clipbucket", "cms", "mail", "core", ".htaccess", "iisadmin", "win.ini", "/config" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoPublicAccessToFileDirectoryAllowed Property

UrlValidationPatterns..::..NoPublicAccessToFileDirectoryAllowed Property

Patterns used for discovering when some one or something tries to access directory or files that he is not supposed to

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoPublicAccessToFileDirectoryAllowed { get; }

Remarks

The patterns engine looks at the whole url
The default is:{ "/apps/", "/catalog/", "/doc/", "/certificado", "SystemRoot", "c:", ".com/file", "SystemDrive", "/etc", "/.." }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NotSupportedHandlers Property

UrlValidationPatterns..::..NotSupportedHandlers Property

handlers that are not supported in this asp.net application

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NotSupportedHandlers { get; }

Remarks

The default is ".php", ".php3",".py", ".jsp", ".do", ".swp", ".nsf", ".aspx", ".asp", ".cgi", ".cshtml", ".vbhtml",".aspq",".asx",".soap",".rem"

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NotSupportedPlatform Property

UrlValidationPatterns..::..NotSupportedPlatform Property

Patterns used for discovering when some one or something thinks we are not .net

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NotSupportedPlatform { get; }

Remarks

The patterns engine looks at both the path as well as the query if any.
The default is: { ".php", ".php3", ".jsp", ".do", ".swp", ".nsf", ".aspx", ".asp", ".exe", ".ashx", ".log", ".cgi", ".dll", ".pl", ".po", ".mdb", ".cfc", ".cc", ".ssi" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NotUsedPlugin Property

UrlValidationPatterns..::..NotUsedPlugin Property

Patterns used for discovering when some one or something thinks we are using a given plug-in when we are not

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NotUsedPlugin { get; }

Remarks

The patterns engine looks at both the path as well as the query if any.
The default is { "wordpress", "joomla", "blog", "awstats", "wp-", "/editor" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


NoUserAuthenticationExists Property

UrlValidationPatterns..::..NoUserAuthenticationExists Property

Patterns used for discovering when some one or something thinks that we use a login url that's not used by the system

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> NoUserAuthenticationExists { get; }

Remarks

The patterns engine looks at both the path as well as the query if any.
The default is { "/passwd", "/password", "/activatemember", "/login", ".com/login", "client", ".com/account" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


OpperatingSystemAccessProhibited Property

UrlValidationPatterns..::..OpperatingSystemAccessProhibited Property

used when some one tries to access the OS

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> OpperatingSystemAccessProhibited { get; }

Remarks

The patterns engine looks at the whole url
The default is:{ "citrix", "novell", "winnt", "/console" }

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


ScriptInjectionNotAllowed Property

UrlValidationPatterns..::..ScriptInjectionNotAllowed Property

Patterns used for discovering when some one or something thinks that we allow scripts to be injected into the system

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> ScriptInjectionNotAllowed { get; }

Remarks

The patterns engine looks at the whole query.
The default is not documented here as it's to long.

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


UrlFishingSuspected Property

UrlValidationPatterns..::..UrlFishingSuspected Property

Patterns used for discovering when some one or something thinks we use a url that we do not, typically there are links the firewall generates that do not exist to see a bot or hacker is accessing the system

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> UrlFishingSuspected { get; }

Remarks

The patterns engine looks at the Path.
The default is:{"/app_data/", "/old/", "/~"}

Examples

During development you are able to test if you URL's to see if they are getting blocked and adjust the lists accordingly. The following code sample show how such detection could be structured using the IFireWall or FireWallBase.OnIncident event
C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {

       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid, $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}",false);
               }

               break;
               // your other specialized tests
               default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

UrlValidationPatterns Class
Walter.Web.FireWall.Configurations Namespace


UserAgentConfig Class

User agent class telling the firewall on how to use and configure managing UserAgent statistics for the application

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class UserAgentConfig

See Also

UserAgentConfig Members
Walter.Web.FireWall.Configurations Namespace


UserAgentConfig Members

The UserAgentConfig type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | The connection string for use if you like to use a named database.
Public property | SchemaName | The schema name you would like the database to use for the UserAgent storage
Public property | UseSubscription | Use user agent subscription

See Also

UserAgentConfig Class
Walter.Web.FireWall.Configurations Namespace


UserAgentConfig Properties

The UserAgentConfig type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionString | The connection string for use if you like to use a named database.
Public property | SchemaName | The schema name you would like the database to use for the UserAgent storage
Public property | UseSubscription | Use user agent subscription

See Also

UserAgentConfig Class
Walter.Web.FireWall.Configurations Namespace


ConnectionString Property

UserAgentConfig..::..ConnectionString Property

The connection string for use if you like to use a named database.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ConnectionString { get; set; }

Remarks

If none is provided and you use a database for the firewall state the same database for state and user agent will be used

See Also

UserAgentConfig Class
Walter.Web.FireWall.Configurations Namespace


SchemaName Property

UserAgentConfig..::..SchemaName Property

The schema name you would like the database to use for the UserAgent storage

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SchemaName { get; set; }

Remarks

The default is dbo but you can use any schema you like

See Also

UserAgentConfig Class
Walter.Web.FireWall.Configurations Namespace


UseSubscription Property

UserAgentConfig..::..UseSubscription Property

Use user agent subscription

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UseSubscription { get; set; }

See Also

UserAgentConfig Class
Walter.Web.FireWall.Configurations Namespace


WebServicesConfig Class

Helper class used by the firewall's web services to generate and react to firewall related service endpoints

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class WebServicesConfig

Remarks

To implement the default reporting endpoints import NuGet package Walter.Web.FireWall.DefaultEndpoints

Examples

Use the NuGet package Walter.Web.FireWall.DefaultEndpoints to map default routs
C#
services.AddMvc(options =&gt;
   {
         //your options
         }).AddApplicationPart(Assembly.GetAssembly(typeof(Walter.Web.FireWall.DefaultEndpoints.ReportingController)));

See Also

WebServicesConfig Members
Walter.Web.FireWall.Configurations Namespace


WebServicesConfig Members

The WebServicesConfig type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Converts to string.

Properties

 | Name | Description
Public property | BeaconApiUrl | Gets or sets the beacon API URL used for indicating that the page is terminated by the client and no more requests are to be expected by this page request.
Public property | CSPReportUrl | The endpoint for receiving CSP reports from the browser
Public property | IsUserApiUrl | name of the endpoint for use process the data send by the JavaScript defined in UserEndpointJavaScript
Public property | RegisterLinksApiUrl | Gets or sets URL for the API to register links.
Public property | RobotsTxtUrl | The name to use for Robots text file, if not initiated by a known search engine the site-map will contain url's to trap malicious usage
Public property | SiteMapApiUrl | the URL to use for SiteMap generation. Users do not read a SiteMap, if not initiated by a known search engine the site-map will contain url's to trap malicious usage
Public property | UserEndpointJavaScript | The script name used when generating the JavaScript src attribute

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


WebServicesConfig Methods

The WebServicesConfig type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Converts to string.

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


ToString Method

WebServicesConfig..::..ToString Method

Converts to string.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

string.

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


WebServicesConfig Properties

The WebServicesConfig type exposes the following members.

Properties

 | Name | Description
Public property | BeaconApiUrl | Gets or sets the beacon API URL used for indicating that the page is terminated by the client and no more requests are to be expected by this page request.
Public property | CSPReportUrl | The endpoint for receiving CSP reports from the browser
Public property | IsUserApiUrl | name of the endpoint for use process the data send by the JavaScript defined in UserEndpointJavaScript
Public property | RegisterLinksApiUrl | Gets or sets URL for the API to register links.
Public property | RobotsTxtUrl | The name to use for Robots text file, if not initiated by a known search engine the site-map will contain url's to trap malicious usage
Public property | SiteMapApiUrl | the URL to use for SiteMap generation. Users do not read a SiteMap, if not initiated by a known search engine the site-map will contain url's to trap malicious usage
Public property | UserEndpointJavaScript | The script name used when generating the JavaScript src attribute

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


BeaconApiUrl Property

WebServicesConfig..::..BeaconApiUrl Property

Gets or sets the beacon API URL used for indicating that the page is terminated by the client and no more requests are to be expected by this page request.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri BeaconApiUrl { get; set; }

Field Value

The beacon API URL.

Remarks

This method is for analytics and diagnostics that send data to a server before the browser document/ web page is unloaded, where sending the data any sooner may miss some possible data collection. For example, which link the user clicked before navigating away and unloading the page.

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace
WebServicesConfig..::..IsUserApiUrl


CSPReportUrl Property

WebServicesConfig..::..CSPReportUrl Property

The endpoint for receiving CSP reports from the browser

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> CSPReportUrl { get; set; }

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


IsUserApiUrl Property

WebServicesConfig..::..IsUserApiUrl Property

name of the endpoint for use process the data send by the JavaScript defined in UserEndpointJavaScript

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri IsUserApiUrl { get; set; }

Remarks

The script can also be used to generates training data for the AI

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace
WebServicesConfig..::..BeaconApiUrl


RegisterLinksApiUrl Property

WebServicesConfig..::..RegisterLinksApiUrl Property

Gets or sets URL for the API to register links.

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri RegisterLinksApiUrl { get; set; }

Field Value

The register links API URL.

Remarks

Knowing the links the user can go to enables the analysis of plausible browser behavior

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


RobotsTxtUrl Property

WebServicesConfig..::..RobotsTxtUrl Property

The name to use for Robots text file, if not initiated by a known search engine the site-map will contain url's to trap malicious usage

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri RobotsTxtUrl { get; set; }

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


SiteMapApiUrl Property

WebServicesConfig..::..SiteMapApiUrl Property

the URL to use for SiteMap generation. Users do not read a SiteMap, if not initiated by a known search engine the site-map will contain url's to trap malicious usage

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri SiteMapApiUrl { get; set; }

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


UserEndpointJavaScript Property

WebServicesConfig..::..UserEndpointJavaScript Property

The script name used when generating the JavaScript src attribute

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri UserEndpointJavaScript { get; set; }

See Also

WebServicesConfig Class
Walter.Web.FireWall.Configurations Namespace


Walter.Web.FireWall.DefaultEndpoints Namespace

Classes

 | Class | Description
Public class | ContentSecurityPolicyViolationDetectedException | Triggered when a content security policy would be triggered by the code at development time
Public class | ReportingController | Class ReportingController provides the default implementation for the firewall user discovery endpoints. Implements the [Microsoft.AspNetCore.Mvc.Controller]


ContentSecurityPolicyViolationDetectedException Class

Triggered when a content security policy would be triggered by the code at development time

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ContentSecurityPolicyViolationDetectedException

See Also

ContentSecurityPolicyViolationDetectedException Members
Walter.Web.FireWall.DefaultEndpoints Namespace


ContentSecurityPolicyViolationDetectedException Members

The ContentSecurityPolicyViolationDetectedException type exposes the following members.

Properties

 | Name | Description
Public property | BrowserReport | The report submitted by the browser in regards to the content

See Also

ContentSecurityPolicyViolationDetectedException Class
Walter.Web.FireWall.DefaultEndpoints Namespace


ContentSecurityPolicyViolationDetectedException Properties

The ContentSecurityPolicyViolationDetectedException type exposes the following members.

Properties

 | Name | Description
Public property | BrowserReport | The report submitted by the browser in regards to the content

See Also

ContentSecurityPolicyViolationDetectedException Class
Walter.Web.FireWall.DefaultEndpoints Namespace


BrowserReport Property

ContentSecurityPolicyViolationDetectedException..::..BrowserReport Property

The report submitted by the browser in regards to the content

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string BrowserReport { get; }

See Also

ContentSecurityPolicyViolationDetectedException Class
Walter.Web.FireWall.DefaultEndpoints Namespace


ReportingController Class

Class ReportingController provides the default implementation for the firewall user discovery endpoints. Implements the [Microsoft.AspNetCore.Mvc.Controller]

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ReportingController

Examples

To enable this controller tell your MVC application to load the endpoints from this NuGet Package
C#
services.AddMvc(options =>
   {
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>();
       options.Filters.Add<Walter.Web.FireWall.Filters.PrivacyPreferencesFilter>();
   }).AddApplicationPart(Assembly.GetAssembly(typeof(Walter.Web.FireWall.DefaultEndpoints.ReportingController)));

See Also

ReportingController Members
Walter.Web.FireWall.DefaultEndpoints Namespace
[Microsoft.AspNetCore.Mvc.Controller]


ReportingController Members

The ReportingController type exposes the following members.

Constructors

 | Name | Description
Public method | ReportingController | Initializes a new instance of the ReportingController class.

Methods

 | Name | Description
Public method | Beacon | The User discovery script will tell the browser to send a beacon indicting hat the page is no longer the active page.
Public method | CSP | The CSP endpoint used for browser based CSP violation reporting.
Public method | IncidentStatus | returns the incidents that have been recorded and are active at this moment
Public method | SiteMap | the site map of links that the page has rendered and that are logical for the user to navigate to.
Public method | UserDiscovery | The user discovery model send by the user discovery script.
Public method | ValidateUser | Used by your razor view to requests the firewall to generate the user discovery script.

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


ReportingController Constructor

Initializes a new instance of the ReportingController class.

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ReportingController(
    IPageRequest pageContext,
    IFireWall fireWall,
    Nullable<ILogger<ReportingController>> logger
)

Parameters

pageContext
Type: Walter.Web.FireWall..::..IPageRequest
The page context.
fireWall
Type: Walter.Web.FireWall..::..IFireWall
The fire wall.
logger
Type: Nullable <(Of <(<'ILogger<(Of <(<' ReportingController >)>)>>)>)>
The logger if logging is enabled.

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


ReportingController Methods

The ReportingController type exposes the following members.

Methods

 | Name | Description
Public method | Beacon | The User discovery script will tell the browser to send a beacon indicting hat the page is no longer the active page.
Public method | CSP | The CSP endpoint used for browser based CSP violation reporting.
Public method | IncidentStatus | returns the incidents that have been recorded and are active at this moment
Public method | SiteMap | the site map of links that the page has rendered and that are logical for the user to navigate to.
Public method | UserDiscovery | The user discovery model send by the user discovery script.
Public method | ValidateUser | Used by your razor view to requests the firewall to generate the user discovery script.

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


Beacon Method

ReportingController..::..Beacon Method

The User discovery script will tell the browser to send a beacon indicting hat the page is no longer the active page.

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[CrossSiteAttribute]
[IgnoreAttribute]
[FireWallConfigurationAttribute]
public StatusCodeResult Beacon(
    string model
)

Parameters

model
Type: String
The model send by the script.

Return Value

StatusCodeResult that's ignored by the browser

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


CSP Method

ReportingController..::..CSP Method

The CSP endpoint used for browser based CSP violation reporting.

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[IgnoreAttribute]
public Task<IActionResult> CSP(
    string model
)

Parameters

model
Type: String
The CSP model send by the browser.

Return Value

IActionResult

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


IncidentStatus Method

ReportingController..::..IncidentStatus Method

returns the incidents that have been recorded and are active at this moment

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[CrossSiteAttribute]
[IgnoreAttribute]
public ObjectResult IncidentStatus()

Return Value

Returns the json of the incidents

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


SiteMap Method

ReportingController..::..SiteMap Method

the site map of links that the page has rendered and that are logical for the user to navigate to.

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[CrossSiteAttribute]
[IgnoreAttribute]
[FireWallConfigurationAttribute]
public StatusCodeResult SiteMap(
    string json
)

Parameters

json
Type: String
The model.

Return Value

StatusCodeResult.

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


UserDiscovery Method

ReportingController..::..UserDiscovery Method

The user discovery model send by the user discovery script.

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[CrossSiteAttribute]
[IgnoreAttribute]
[FireWallConfigurationAttribute]
public StatusCodeResult UserDiscovery(
    string json
)

Parameters

json
Type: String
The model.

Return Value

StatusCodeResult.

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


ValidateUser Method

ReportingController..::..ValidateUser Method

Used by your razor view to requests the firewall to generate the user discovery script.

Namespace: Walter.Web.FireWall.DefaultEndpoints
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
[IgnoreAttribute]
[NoCacheAttribute]
[FireWallConfigurationAttribute]
public FileContentResult ValidateUser()

Return Value

FileContentResult.

Examples

Use the script tag to load the user discovery script in the browser, the bellow sample shows how you could do that.
C#
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
<script src="@Url.Content(Walter.Web.FireWall.DefaultEndpoints.DefaultLinks.UserEndpointJavaScript)"></script>
@RenderSection("Scripts", required: false)

See Also

ReportingController Class
Walter.Web.FireWall.DefaultEndpoints Namespace


Walter.Web.FireWall.Destinations Namespace

Classes

 | Class | Description
Public class | FireWallLoggerDestination | Class FireWallLoggerDesination. Implements the IReportDestination Implements the [System.IDisposable]
Public class | RazorTemplateOptions | Template options for the razor view engine

Interfaces

 | Interface | Description
Public interface | IAsyncDatabaseReportDestination | Asynchronous interface states that the reporting destination is a database IDatabaseReportDesination
Public interface | IDatabaseReportDestination | Interface states that the reporting destination is a database IDatabaseReportDesination
Public interface | IEventLogReporting | logging using windows event log
Public interface | IFireWallDiskLoggerDestination | Interface IFireWallDiskLoggerDestination
Public interface | ILoggerReportDesination | Interface ILoggerReportDesination used by the Walter.Web.FireWall.Ilogger Implements the IReportDestination
Public interface | IPhishyVisitStatsLogger | log Phishy Visit Stats
Public interface | IReportDestination | the destination configuration and invocation method used for enabling the reporting engine to persists it's reports to
Public interface | IReportFlowDestination | Interface indicating that the class can be used to report user flow logging showing how the user uses the system.


FireWallLoggerDestination Class

Class FireWallLoggerDesination. Implements the IReportDestination Implements the [System.IDisposable]

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class FireWallLoggerDestination : IReportDestination

See Also

FireWallLoggerDestination Members
Walter.Web.FireWall.Destinations Namespace
Walter.Web.FireWall.Destinations..::..IReportDestination
[System.IDisposable]


FireWallLoggerDestination Members

The FireWallLoggerDestination type exposes the following members.

Constructors

 | Name | Description
Protected method | FireWallLoggerDestination | generates a firewall logger where the implementations are overridden by the implementing class

Methods

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified item.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified item.
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IAppliedResetRule) | Adds a applied reset rule to the data buffer for the report
 | FileAndLineNr | Get the file the and line Nr. or the calling method.
Public method | Flush | Flushes this instance.
Public method | Unblock | Add to the IP addresses that are no longer limiting activities for a given user or for all users

Properties

 | Name | Description
Protected property | ApplicationName | Application Name as used for Operations management
Protected property | ApplicationTag | Application asset tag id as used for Operations management
Protected property | appliedResetRule | list of reset entries
Protected property | blocked | The blocked users queue
Protected property | cspr | The CSPR
Protected property | DiskViolations | The disk violations that where recorded since last processed
Public property | FireWall | Gets or sets the fire wall.
Protected property | fwv | The FWV
Protected property | IsFlushing | Gets or sets a value indicating whether this instance is flushing.
Public property | LastDataReceivedUtc | Gets or sets the last data received UTC.
Public property | LastDataWriteTimeUtc | Gets or sets the last data write time UTC.
Public property | LastFlushed | The last time the underlying storage was flushed
Protected property | phishy | queue holding the phishy request log
Protected property | unblocked | the list of unblocked entries

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


FireWallLoggerDestination Constructor

generates a firewall logger where the implementations are overridden by the implementing class

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected FireWallLoggerDestination(
    IFireWallConfig configuration
)

Parameters

configuration
Type: Walter.Web.FireWall..::..IFireWallConfig
firewall configuration

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


FireWallLoggerDestination Methods

The FireWallLoggerDestination type exposes the following members.

Methods

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified item.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified item.
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IAppliedResetRule) | Adds a applied reset rule to the data buffer for the report
 | FileAndLineNr | Get the file the and line Nr. or the calling method.
Public method | Flush | Flushes this instance.
Public method | Unblock | Add to the IP addresses that are no longer limiting activities for a given user or for all users

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


Dispose Method

FireWallLoggerDestination..::..Dispose Method

Overload List

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

See Also

FireWallLoggerDestination Class
FireWallLoggerDestination Members
Walter.Web.FireWall.Destinations Namespace


Dispose Method (Boolean)

FireWallLoggerDestination..::..Dispose Method (Boolean)

Releases unmanaged and - optionally - managed resources.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true to release both managed and unmanaged resources; false to release only unmanaged resources.

See Also

FireWallLoggerDestination Class
Dispose Overload
Walter.Web.FireWall.Destinations Namespace


Dispose Method

FireWallLoggerDestination..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

See Also

FireWallLoggerDestination Class
Dispose Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method

FireWallLoggerDestination..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified item.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified item.
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IAppliedResetRule) | Adds a applied reset rule to the data buffer for the report

See Also

FireWallLoggerDestination Class
FireWallLoggerDestination Members
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (IContentSecurityPolicyViolation)

FireWallLoggerDestination..::..Enqueue Method (IContentSecurityPolicyViolation)

Enqueues the specified item.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IContentSecurityPolicyViolation item
)

Parameters

item
Type: IContentSecurityPolicyViolation
The item.

See Also

FireWallLoggerDestination Class
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (IFireWallViolations)

FireWallLoggerDestination..::..Enqueue Method (IFireWallViolations)

Enqueues the specified item.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IFireWallViolations item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The item.

See Also

FireWallLoggerDestination Class
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (BlockedUserRequest)

FireWallLoggerDestination..::..Enqueue Method (BlockedUserRequest)

Enqueues the specified blocked user request.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    BlockedUserRequest blockedUserRequest
)

Parameters

blockedUserRequest
Type: BlockedUserRequest
The blocked user request.

See Also

FireWallLoggerDestination Class
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (FireWallDiskViolation)

FireWallLoggerDestination..::..Enqueue Method (FireWallDiskViolation)

enqueue a disk based violation

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    FireWallDiskViolation item
)

Parameters

item
Type: Walter.Web.FireWall.ViewModels..::..FireWallDiskViolation
the violation to process

See Also

FireWallLoggerDestination Class
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (IAppliedResetRule)

FireWallLoggerDestination..::..Enqueue Method (IAppliedResetRule)

Adds a applied reset rule to the data buffer for the report

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IAppliedResetRule item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IAppliedResetRule

See Also

FireWallLoggerDestination Class
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


FileAndLineNr Method

FireWallLoggerDestination..::..FileAndLineNr Method

Get the file the and line Nr. or the calling method.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected static string FileAndLineNr(
    Nullable<string> path,
    Nullable<int> l
)

Parameters

path
Type: Nullable <(Of <(<' String >)>)>
The path.
l
Type: Nullable <(Of <(<' Int32 >)>)>
The l.

Return Value

System.String.

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


Flush Method

FireWallLoggerDestination..::..Flush Method

Flushes this instance.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Flush()

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


Unblock Method

FireWallLoggerDestination..::..Unblock Method

Add to the IP addresses that are no longer limiting activities for a given user or for all users

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Unblock(
    IUnblock action
)

Parameters

action
Type: Walter.Web.FireWall..::..IUnblock
The item to process

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


FireWallLoggerDestination Properties

The FireWallLoggerDestination type exposes the following members.

Properties

 | Name | Description
Protected property | ApplicationName | Application Name as used for Operations management
Protected property | ApplicationTag | Application asset tag id as used for Operations management
Protected property | appliedResetRule | list of reset entries
Protected property | blocked | The blocked users queue
Protected property | cspr | The CSPR
Protected property | DiskViolations | The disk violations that where recorded since last processed
Public property | FireWall | Gets or sets the fire wall.
Protected property | fwv | The FWV
Protected property | IsFlushing | Gets or sets a value indicating whether this instance is flushing.
Public property | LastDataReceivedUtc | Gets or sets the last data received UTC.
Public property | LastDataWriteTimeUtc | Gets or sets the last data write time UTC.
Public property | LastFlushed | The last time the underlying storage was flushed
Protected property | phishy | queue holding the phishy request log
Protected property | unblocked | the list of unblocked entries

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


ApplicationName Property

FireWallLoggerDestination..::..ApplicationName Property

Application Name as used for Operations management

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected string ApplicationName { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


ApplicationTag Property

FireWallLoggerDestination..::..ApplicationTag Property

Application asset tag id as used for Operations management

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected Nullable<string> ApplicationTag { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


appliedResetRule Property

FireWallLoggerDestination..::..appliedResetRule Property

list of reset entries

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected ConcurrentQueue<IAppliedResetRule> appliedResetRule { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


blocked Property

FireWallLoggerDestination..::..blocked Property

The blocked users queue

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected ConcurrentQueue<BlockedUserRequest> blocked { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


cspr Property

FireWallLoggerDestination..::..cspr Property

The CSPR

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected ConcurrentQueue<IContentSecurityPolicyViolation> cspr { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


DiskViolations Property

FireWallLoggerDestination..::..DiskViolations Property

The disk violations that where recorded since last processed

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IReadOnlyList<FireWallDiskViolation> DiskViolations { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


FireWall Property

FireWallLoggerDestination..::..FireWall Property

Gets or sets the fire wall.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual Nullable<IFireWall> FireWall { get; set; }

Field Value

The fire wall.

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


fwv Property

FireWallLoggerDestination..::..fwv Property

The FWV

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected ConcurrentQueue<IFireWallViolations> fwv { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


IsFlushing Property

FireWallLoggerDestination..::..IsFlushing Property

Gets or sets a value indicating whether this instance is flushing.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected bool IsFlushing { get; set; }

Field Value

true if this instance is flushing; otherwise, false.

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


LastDataReceivedUtc Property

FireWallLoggerDestination..::..LastDataReceivedUtc Property

Gets or sets the last data received UTC.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> LastDataReceivedUtc { get; set; }

Field Value

The last data received UTC.

Remarks

You assume that when LastDataReceivedUtc is after then LastDataWriteTimeUtc that data is update, the inverse is not true as you can receive data on a container flushed while flushing later containers are being processed

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


LastDataWriteTimeUtc Property

FireWallLoggerDestination..::..LastDataWriteTimeUtc Property

Gets or sets the last data write time UTC.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> LastDataWriteTimeUtc { get; set; }

Field Value

The last data write time UTC.

Remarks

You assume that when LastDataReceivedUtc is after then LastDataWriteTimeUtc that data is update, the inverse is not true as you can receive data on a container flushed while flushing later containers are being processed

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


LastFlushed Property

FireWallLoggerDestination..::..LastFlushed Property

The last time the underlying storage was flushed

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastFlushed { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


phishy Property

FireWallLoggerDestination..::..phishy Property

queue holding the phishy request log

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected ConcurrentQueue<PhishyVisitStats> phishy { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


unblocked Property

FireWallLoggerDestination..::..unblocked Property

the list of unblocked entries

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected ConcurrentQueue<IUnblock> unblocked { get; }

See Also

FireWallLoggerDestination Class
Walter.Web.FireWall.Destinations Namespace


IAsyncDatabaseReportDestination Interface

Asynchronous interface states that the reporting destination is a database IDatabaseReportDesination

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IAsyncDatabaseReportDestination : IDatabaseReportDestination

See Also

IAsyncDatabaseReportDestination Members
Walter.Web.FireWall.Destinations Namespace


IAsyncDatabaseReportDestination Members

Methods

 | Name | Description
Public method | TryLogPageRequestAsync(IPageRequest) | Tries the log page request, this needs to be stored before the page is send to the client.
Public method | TryLogPageRequestAsync(Uri, String, String, Int64, Int64, String, String, Nullable<(Of <<'(Int32>)>>), Boolean) | Logs the page request.

See Also

IAsyncDatabaseReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


IAsyncDatabaseReportDestination Methods

Methods

 | Name | Description
Public method | TryLogPageRequestAsync(IPageRequest) | Tries the log page request, this needs to be stored before the page is send to the client.
Public method | TryLogPageRequestAsync(Uri, String, String, Int64, Int64, String, String, Nullable<(Of <<'(Int32>)>>), Boolean) | Logs the page request.

See Also

IAsyncDatabaseReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


TryLogPageRequestAsync Method

IAsyncDatabaseReportDestination..::..TryLogPageRequestAsync Method

Overload List

 | Name | Description
Public method | TryLogPageRequestAsync(IPageRequest) | Tries the log page request, this needs to be stored before the page is send to the client.
Public method | TryLogPageRequestAsync(Uri, String, String, Int64, Int64, String, String, Nullable<(Of <<'(Int32>)>>), Boolean) | Logs the page request.

See Also

IAsyncDatabaseReportDestination Interface
IAsyncDatabaseReportDestination Members
Walter.Web.FireWall.Destinations Namespace


TryLogPageRequestAsync Method (IPageRequest)

IAsyncDatabaseReportDestination..::..TryLogPageRequestAsync Method (IPageRequest)

Tries the log page request, this needs to be stored before the page is send to the client.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<int> TryLogPageRequestAsync(
    IPageRequest pageRequest
)

Parameters

pageRequest
Type: Walter.Web.FireWall..::..IPageRequest
The page that was used to process the request

Remarks

TryLogServedPageRequest will send the data to the backing storage for later processing and needs this data to be able to make a match

See Also

IAsyncDatabaseReportDestination Interface
TryLogPageRequestAsync Overload
Walter.Web.FireWall.Destinations Namespace


TryLogPageRequestAsync Method (Uri, String, String, Int64, Int64, String, String, Nullable(Int32), Boolean)

IAsyncDatabaseReportDestination..::..TryLogPageRequestAsync Method (Uri, String, String, Int64, Int64, String, String, Nullable<(Of <(<'Int32>)>)>, Boolean)

Logs the page request.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<int> TryLogPageRequestAsync(
    Uri url,
    string trace,
    string sessionId,
    long pageGroupId,
    long cidr,
    string ip4Address,
    string ip6Address,
    Nullable<int> userId,
    bool logedIn
)

Parameters

url
Type: Uri
The URL.
trace
Type: String
The trace.
sessionId
Type: String
The session identifier.
pageGroupId
Type: Int64
The page group identifier.
cidr
Type: Int64
The CIDR (Classless Inter-Domain Routing) numeric representation of the ip address.
ip4Address
Type: String
The ip4 address.
ip6Address
Type: String
The ip6 address.
userId
Type: Nullable <(Of <(<' Int32 >)>)>
The user identifier.
logedIn
Type: Boolean
if set to true [loged in].

See Also

IAsyncDatabaseReportDestination Interface
TryLogPageRequestAsync Overload
Walter.Web.FireWall.Destinations Namespace


IDatabaseReportDestination Interface

Interface states that the reporting destination is a database IDatabaseReportDesination

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IDatabaseReportDestination : IReportDestination

See Also

IDatabaseReportDestination Members
Walter.Web.FireWall.Destinations Namespace


IDatabaseReportDestination Members

The IDatabaseReportDestination type exposes the following members.

Methods

 | Name | Description
Public method | TryLogPageRequest | Tries the log page request, this needs to be stored before the page is send to the client.

See Also

IDatabaseReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


IDatabaseReportDestination Methods

The IDatabaseReportDestination type exposes the following members.

Methods

 | Name | Description
Public method | TryLogPageRequest | Tries the log page request, this needs to be stored before the page is send to the client.

See Also

IDatabaseReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


TryLogPageRequest Method

IDatabaseReportDestination..::..TryLogPageRequest Method

Tries the log page request, this needs to be stored before the page is send to the client.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryLogPageRequest(
    IPageRequest pageRequest
)

Parameters

pageRequest
Type: Walter.Web.FireWall..::..IPageRequest
The page that was used to process the request

Remarks

TryLogServedPageRequest will send the data to the backing storage for later processing and needs this data to be able to make a match

See Also

IDatabaseReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


IEventLogReporting Interface

logging using windows event log

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEventLogReporting : IReportDestination

See Also

Walter.Web.FireWall.Destinations Namespace


IFireWallDiskLoggerDestination Interface

Interface IFireWallDiskLoggerDestination

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallDiskLoggerDestination : IReportDestination

See Also

IFireWallDiskLoggerDestination Members
Walter.Web.FireWall.Destinations Namespace


IFireWallDiskLoggerDestination Members

The IFireWallDiskLoggerDestination type exposes the following members.

Methods

 | Name | Description
Public method | LogException<(Of <<'(T>)>>) | Logs the exception.

See Also

IFireWallDiskLoggerDestination Interface
Walter.Web.FireWall.Destinations Namespace


IFireWallDiskLoggerDestination Methods

The IFireWallDiskLoggerDestination type exposes the following members.

Methods

 | Name | Description
Public method | LogException<(Of <<'(T>)>>) | Logs the exception.

See Also

IFireWallDiskLoggerDestination Interface
Walter.Web.FireWall.Destinations Namespace


LogException(T) Method

IFireWallDiskLoggerDestination..::..LogException<(Of <(<'T>)>)> Method

Logs the exception.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void LogException<T>(
    T code,
    string message,
    Nullable<string> memberName,
    Nullable<string> sourceFilePath,
    Nullable<int> sourceLineNumber
)
where T : Enum

Type Parameters

T

Parameters

code
Type: T
The code.
message
Type: String
The message.
memberName
Type: Nullable <(Of <(<' String >)>)>
Name of the member.
sourceFilePath
Type: Nullable <(Of <(<' String >)>)>
The source file path.
sourceLineNumber
Type: Nullable <(Of <(<' Int32 >)>)>
The source line number.

See Also

IFireWallDiskLoggerDestination Interface
Walter.Web.FireWall.Destinations Namespace


ILoggerReportDesination Interface

Interface ILoggerReportDesination used by the Walter.Web.FireWall.Ilogger Implements the IReportDestination

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ILoggerReportDesination : IReportDestination

See Also

ILoggerReportDesination Members
Walter.Web.FireWall.Destinations Namespace
Walter.Web.FireWall.Destinations..::..IReportDestination


ILoggerReportDesination Members

The ILoggerReportDesination type exposes the following members.

Properties

 | Name | Description
Public property | Level | log level used by the engine

See Also

ILoggerReportDesination Interface
Walter.Web.FireWall.Destinations Namespace


ILoggerReportDesination Properties

The ILoggerReportDesination type exposes the following members.

Properties

 | Name | Description
Public property | Level | log level used by the engine

See Also

ILoggerReportDesination Interface
Walter.Web.FireWall.Destinations Namespace


Level Property

ILoggerReportDesination..::..Level Property

log level used by the engine

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Level { get; }

See Also

ILoggerReportDesination Interface
Walter.Web.FireWall.Destinations Namespace


IPhishyVisitStatsLogger Interface

log Phishy Visit Stats

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IPhishyVisitStatsLogger

See Also

IPhishyVisitStatsLogger Members
Walter.Web.FireWall.Destinations Namespace


IPhishyVisitStatsLogger Members

The IPhishyVisitStatsLogger type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue | enqueue the phishy stats

See Also

IPhishyVisitStatsLogger Interface
Walter.Web.FireWall.Destinations Namespace


IPhishyVisitStatsLogger Methods

The IPhishyVisitStatsLogger type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue | enqueue the phishy stats

See Also

IPhishyVisitStatsLogger Interface
Walter.Web.FireWall.Destinations Namespace


Enqueue Method

IPhishyVisitStatsLogger..::..Enqueue Method

enqueue the phishy stats

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    PhishyVisitStats phishy
)

Parameters

phishy
Type: Walter.Web.FireWall.Models..::..PhishyVisitStats
the entry

See Also

IPhishyVisitStatsLogger Interface
Walter.Web.FireWall.Destinations Namespace


IReportDestination Interface

the destination configuration and invocation method used for enabling the reporting engine to persists it's reports to

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IReportDestination

See Also

IReportDestination Members
Walter.Web.FireWall.Destinations Namespace


IReportDestination Members

The IReportDestination type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue(IContentSecurityPolicyViolation) | enqueue a CSP violation
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IFireWallViolations) | the firewall violation to process
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(IAppliedResetRule) | Enqueue the meta data belonging to a reset command
Public method | Flush | Send buffered violation to the destinations
Public method | Unblock | document that the following IP address and or user can be allowed to pass the firewall again

Properties

 | Name | Description
Public property | LastDataReceivedUtc | The last time the report received buffered data
Public property | LastDataWriteTimeUtc | The last time data was flushed to the destination
Public property | LastFlushed | last time flush was called on the data store

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


IReportDestination Methods

The IReportDestination type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue(IContentSecurityPolicyViolation) | enqueue a CSP violation
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IFireWallViolations) | the firewall violation to process
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(IAppliedResetRule) | Enqueue the meta data belonging to a reset command
Public method | Flush | Send buffered violation to the destinations
Public method | Unblock | document that the following IP address and or user can be allowed to pass the firewall again

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


Enqueue Method

IReportDestination..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(IContentSecurityPolicyViolation) | enqueue a CSP violation
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IFireWallViolations) | the firewall violation to process
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(IAppliedResetRule) | Enqueue the meta data belonging to a reset command

See Also

IReportDestination Interface
IReportDestination Members
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (IContentSecurityPolicyViolation)

IReportDestination..::..Enqueue Method (IContentSecurityPolicyViolation)

enqueue a CSP violation

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IContentSecurityPolicyViolation item
)

Parameters

item
Type: IContentSecurityPolicyViolation
the violation to process

See Also

IReportDestination Interface
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (FireWallDiskViolation)

IReportDestination..::..Enqueue Method (FireWallDiskViolation)

enqueue a disk based violation

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    FireWallDiskViolation item
)

Parameters

item
Type: Walter.Web.FireWall.ViewModels..::..FireWallDiskViolation
the violation to process

See Also

IReportDestination Interface
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (IFireWallViolations)

IReportDestination..::..Enqueue Method (IFireWallViolations)

the firewall violation to process

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IFireWallViolations item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations

See Also

IReportDestination Interface
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (BlockedUserRequest)

IReportDestination..::..Enqueue Method (BlockedUserRequest)

Enqueues the specified blocked user request.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    BlockedUserRequest blockedUserRequest
)

Parameters

blockedUserRequest
Type: BlockedUserRequest
The blocked user request.

See Also

IReportDestination Interface
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Enqueue Method (IAppliedResetRule)

IReportDestination..::..Enqueue Method (IAppliedResetRule)

Enqueue the meta data belonging to a reset command

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IAppliedResetRule item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IAppliedResetRule
the item to add

See Also

IReportDestination Interface
Enqueue Overload
Walter.Web.FireWall.Destinations Namespace


Flush Method

IReportDestination..::..Flush Method

Send buffered violation to the destinations

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Flush()

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


Unblock Method

IReportDestination..::..Unblock Method

document that the following IP address and or user can be allowed to pass the firewall again

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Unblock(
    IUnblock action
)

Parameters

action
Type: Walter.Web.FireWall..::..IUnblock

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


IReportDestination Properties

The IReportDestination type exposes the following members.

Properties

 | Name | Description
Public property | LastDataReceivedUtc | The last time the report received buffered data
Public property | LastDataWriteTimeUtc | The last time data was flushed to the destination
Public property | LastFlushed | last time flush was called on the data store

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


LastDataReceivedUtc Property

IReportDestination..::..LastDataReceivedUtc Property

The last time the report received buffered data

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastDataReceivedUtc { get; }

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


LastDataWriteTimeUtc Property

IReportDestination..::..LastDataWriteTimeUtc Property

The last time data was flushed to the destination

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastDataWriteTimeUtc { get; }

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


LastFlushed Property

IReportDestination..::..LastFlushed Property

last time flush was called on the data store

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastFlushed { get; }

See Also

IReportDestination Interface
Walter.Web.FireWall.Destinations Namespace


IReportFlowDestination Interface

Interface indicating that the class can be used to report user flow logging showing how the user uses the system.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IReportFlowDestination

Remarks

The reporting interface can be implemented by anyone that likes to consume user flow through a system for commercial or regulatory requirements as it demonstrates how the user is consuming he system as well as the data reflect on the data returned.

See Also

IReportFlowDestination Members
Walter.Web.FireWall.Destinations Namespace


IReportFlowDestination Members

The IReportFlowDestination type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue | Enqueue the flow in the logger for processing
Public method | LogCanvas | Logs the canvas that the user was looking at.

See Also

IReportFlowDestination Interface
Walter.Web.FireWall.Destinations Namespace


IReportFlowDestination Methods

The IReportFlowDestination type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue | Enqueue the flow in the logger for processing
Public method | LogCanvas | Logs the canvas that the user was looking at.

See Also

IReportFlowDestination Interface
Walter.Web.FireWall.Destinations Namespace


Enqueue Method

IReportFlowDestination..::..Enqueue Method

Enqueue the flow in the logger for processing

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    ProtocolMethod method,
    Uri fromUrl,
    Uri toUrl,
    Nullable<Uri> redirectedFrom,
    IUserIdentity user,
    FlowReason reason
)

Parameters

method
Type: ProtocolMethod
The protocol method, this is a HttpGet, HttpPost etc
fromUrl
Type: Uri
the previous location the user was on, can be a search engine, can be an internal page
toUrl
Type: Uri
the page served
redirectedFrom
Type: Nullable <(Of <(<'Uri>)>)>
the page requested but not given
user
Type: Walter.Web.FireWall..::..IUserIdentity
the user
reason
Type: Walter.Web.FireWall.Infrastructure..::..FlowReason
the reason the flow occurred

See Also

IReportFlowDestination Interface
Walter.Web.FireWall.Destinations Namespace


LogCanvas Method

IReportFlowDestination..::..LogCanvas Method

Logs the canvas that the user was looking at.

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void LogCanvas(
    byte[] stream,
    CanvasDataType dataType,
    Uri fromUrl,
    IUserIdentity user
)

Parameters

stream
Type: array< Byte >[]()[][]
The data stream that is logged.
dataType
Type: Walter.Web.FireWall.Infrastructure..::..CanvasDataType
Type of the data that the steam is representing.
fromUrl
Type: Uri
the URL that is being archived.
user
Type: Walter.Web.FireWall..::..IUserIdentity
The user that was consuming the page.

See Also

IReportFlowDestination Interface
Walter.Web.FireWall.Destinations Namespace


RazorTemplateOptions Class

Template options for the razor view engine

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class RazorTemplateOptions

See Also

RazorTemplateOptions Members
Walter.Web.FireWall.Destinations Namespace


RazorTemplateOptions Members

The RazorTemplateOptions type exposes the following members.

Properties

 | Name | Description
Public property | EmailReportView | The Razor view use to render email report with when using the email add-on. Leave it blank for using the internal generated HTML for this report
Public property | HealthReportView | The Razor view use to render health report with when calling the IFireWall.Report method with the HTML as output format. Leave it blank to use the internal generated HTML for this report

See Also

RazorTemplateOptions Class
Walter.Web.FireWall.Destinations Namespace


RazorTemplateOptions Properties

The RazorTemplateOptions type exposes the following members.

Properties

 | Name | Description
Public property | EmailReportView | The Razor view use to render email report with when using the email add-on. Leave it blank for using the internal generated HTML for this report
Public property | HealthReportView | The Razor view use to render health report with when calling the IFireWall.Report method with the HTML as output format. Leave it blank to use the internal generated HTML for this report

See Also

RazorTemplateOptions Class
Walter.Web.FireWall.Destinations Namespace


EmailReportView Property

RazorTemplateOptions..::..EmailReportView Property

The Razor view use to render email report with when using the email add-on. Leave it blank for using the internal generated HTML for this report

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> EmailReportView { get; set; }

Field Value

The email view to render when creating a email.

Field Value

The Email report view to render.

See Also

RazorTemplateOptions Class
Walter.Web.FireWall.Destinations Namespace


HealthReportView Property

RazorTemplateOptions..::..HealthReportView Property

The Razor view use to render health report with when calling the IFireWall.Report method with the HTML as output format. Leave it blank to use the internal generated HTML for this report

Namespace: Walter.Web.FireWall.Destinations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> HealthReportView { get; set; }

Field Value

The health report view to render.

See Also

RazorTemplateOptions Class
Walter.Web.FireWall.Destinations Namespace


Walter.Web.FireWall.Destinations.Email Namespace

Classes

 | Class | Description
Public class | EMailAddress | Email address to send mails to as well as the frequency and the last email send. Data can be stored in a database if Walter.Web.FireWall.SqlLogger is used else it is stored on disk specified in the FireWallConfiguration this defaults to \AppData\Emails
Public class | EmailAudit | Class EmailAudit is used to document the emails created and send during a application session.
Public class | EmailBufferDiskLocation | Class allows the buffering of emails on disk before the emails need to be send.
Public class | EmailBufferLocation | Base class for managing storage buffering violations that need to be communicated.
Public class | EmailBufferSqlServerLocation | Class allows the documenting of the emails on SQL Server showing before as well as before the emails need to be send.
Public class | EMailConfiguration | This class represents the e-mail configuration used by the firewall. Email configuration contains mail addresses and their individual preferences as well as mail server connection properties
Public class | EmailReportDesination | Send all violations per email, buffering could be disk or database. This class manages saving the data and retrieving the data and ensures you do not get the same violation multiple times.

Interfaces

 | Interface | Description
Public interface | IEmailBufferDiskLocation | Indicates that the Incidents are buffered on disk before being send
Public interface | IEmailBufferLocation | Interface IEmailBufferLocation contains no properties but indicates the type of storage used
Public interface | IEmailBufferSqlServerLocation | Indicates that the Items are stored in a database ///
Public interface | IEMailConfiguration | Basic email configuration interface containing the details for working with IFireWall SMTP reporting interface
Public interface | IEmailReportDesination | Send all violations per email, buffering could be disk or database. This class manages saving the data and retrieving the data and ensures you do not get the same violation multiple times.
Public interface | IMailAttachmentFactory | Email attachment interface will generate attachments for emails

Enumerations

 | Enumeration | Description
Public enumeration | EMailRoles | EMail roles that an address may implement, basically states what the users accepts being contacted about. These are your email addresses of your contacts managed by you,


EMailAddress Class

Email address to send mails to as well as the frequency and the last email send. Data can be stored in a database if Walter.Web.FireWall.SqlLogger is used else it is stored on disk specified in the FireWallConfiguration this defaults to \AppData\Emails

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class EMailAddress

Remarks

Data stored on disk is not humanly editable it is encrypted using your domain key

See Also

EMailAddress Members
Walter.Web.FireWall.Destinations.Email Namespace


EMailAddress Members

The EMailAddress type exposes the following members.

Constructors

 | Name | Description
Public method | EMailAddress | Initializes a new instance of the EMailAddress class.

Methods

 | Name | Description
Public method | LastUpdate | the last update on all reporting categories

Properties

 | Name | Description
Public property | Frequency | Gets or sets the frequency the mail address should get email defaults to 1 minute.
Public property | LastDataUtc | Gets the last data UTC date a mail was send for a specific report (thread safe).
Public property | LastEmailUtc | Gets or sets the last time an email was send to this address.
Public property | Roles | Gets or sets the roles assigned to the email address.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailAddress Constructor

Initializes a new instance of the EMailAddress class.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EMailAddress(
    string displayName,
    string address
)

Parameters

displayName
Type: String
The mailbox or receiver name.
address
Type: String
The email address.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailAddress Methods

The EMailAddress type exposes the following members.

Methods

 | Name | Description
Public method | LastUpdate | the last update on all reporting categories

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


LastUpdate Method

EMailAddress..::..LastUpdate Method

the last update on all reporting categories

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastUpdate()

Return Value

UTC Date Time last reporting data

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailAddress Properties

The EMailAddress type exposes the following members.

Properties

 | Name | Description
Public property | Frequency | Gets or sets the frequency the mail address should get email defaults to 1 minute.
Public property | LastDataUtc | Gets the last data UTC date a mail was send for a specific report (thread safe).
Public property | LastEmailUtc | Gets or sets the last time an email was send to this address.
Public property | Roles | Gets or sets the roles assigned to the email address.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


Frequency Property

EMailAddress..::..Frequency Property

Gets or sets the frequency the mail address should get email defaults to 1 minute.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Frequency { get; set; }

Field Value

The frequency.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


LastDataUtc Property

EMailAddress..::..LastDataUtc Property

Gets the last data UTC date a mail was send for a specific report (thread safe).

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<ReportTypes, DateTime> LastDataUtc { get; }

Field Value

The last data UTC.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


LastEmailUtc Property

EMailAddress..::..LastEmailUtc Property

Gets or sets the last time an email was send to this address.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> LastEmailUtc { get; set; }

Field Value

The last time an email was send.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


Roles Property

EMailAddress..::..Roles Property

Gets or sets the roles assigned to the email address.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EMailRoles Roles { get; set; }

Field Value

The roles.

See Also

EMailAddress Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailAudit Class

Class EmailAudit is used to document the emails created and send during a application session.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class EmailAudit

Remarks

The email log can be used in status reports to identify the health of the mail system

See Also

EmailAudit Members
Walter.Web.FireWall.Destinations.Email Namespace


EmailAudit Members

The EmailAudit type exposes the following members.

Constructors

 | Name | Description
Public method | EmailAudit | Initializes a new instance of the EmailAudit class.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Body | Gets or sets the body.
Public property | CreatedUtc | Gets the created UTC.
Public property | EmailNr | A number stating the session number of the email
Public property | Error | Gets or sets the error.
Public property | SendUtc | Gets or sets the send.
Public property | SessionStartedUtc | The time the mailer session started
Public property | Subject | Gets or sets the subject.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailAudit Constructor

Initializes a new instance of the EmailAudit class.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EmailAudit(
    EMailAddress address,
    string subject,
    string body
)

Parameters

address
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The address.
subject
Type: String
The subject.
body
Type: String
The body.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailAudit Properties

The EmailAudit type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets the address.
Public property | Body | Gets or sets the body.
Public property | CreatedUtc | Gets the created UTC.
Public property | EmailNr | A number stating the session number of the email
Public property | Error | Gets or sets the error.
Public property | SendUtc | Gets or sets the send.
Public property | SessionStartedUtc | The time the mailer session started
Public property | Subject | Gets or sets the subject.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


Address Property

EmailAudit..::..Address Property

Gets the address.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EMailAddress Address { get; }

Field Value

The address.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


Body Property

EmailAudit..::..Body Property

Gets or sets the body.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Body { get; set; }

Field Value

The body.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


CreatedUtc Property

EmailAudit..::..CreatedUtc Property

Gets the created UTC.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime CreatedUtc { get; }

Field Value

The created UTC.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailNr Property

EmailAudit..::..EmailNr Property

A number stating the session number of the email

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int EmailNr { get; }

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


Error Property

EmailAudit..::..Error Property

Gets or sets the error.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Exception> Error { get; set; }

Field Value

The error.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


SendUtc Property

EmailAudit..::..SendUtc Property

Gets or sets the send.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime SendUtc { get; set; }

Field Value

The send.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


SessionStartedUtc Property

EmailAudit..::..SessionStartedUtc Property

The time the mailer session started

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime SessionStartedUtc { get; }

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


Subject Property

EmailAudit..::..Subject Property

Gets or sets the subject.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Subject { get; set; }

Field Value

The subject.

See Also

EmailAudit Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferDiskLocation Class

Class allows the buffering of emails on disk before the emails need to be send.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class EmailBufferDiskLocation : EmailBufferLocation,
    IEmailBufferDiskLocation

Inheritance Hierarchy

Walter.Web.FireWall.Destinations.Email..::..EmailBufferLocation
Walter.Web.FireWall.Destinations.Email..::..EmailBufferDiskLocation

See Also

EmailBufferDiskLocation Members
Walter.Web.FireWall.Destinations.Email Namespace
Walter.Web.FireWall.Destinations.Email..::..EmailBufferLocation
Walter.Web.FireWall.Destinations.Email..::..IEmailBufferDiskLocation


EmailBufferDiskLocation Members

The EmailBufferDiskLocation type exposes the following members.

Constructors

 | Name | Description
Public method | EmailBufferDiskLocation | Initializes a new instance of the EmailBufferDiskLocation class with default storage location.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.
Public method | GenerateData | Generate the data that is used to create email report (Inherited from EmailBufferLocation.)
Public method | GetAppliedResetRules | Retrieve the applied firewall incidents from the underlying data buffer
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation for a given account and store in memory the last time data was send.
Public method | GetFireWallViolations | Gets the fire wall violations for a given account and store in memory the last time data was send.
Public method | LastUpdate | get the date the account meta data was last updated
Public method | RemoveAllEMail | remove all email from backing storage for a given account
Public method | UpdateAccountData | Update the account between the item in memory and the item on disk

Properties

 | Name | Description
Public property | Details | Details of where stored
Public property | DirectoryPath | Gets or sets the directory full or relative path to use as root directory for the users and reports.
Public property | Enabled | Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false. (Inherited from EmailBufferLocation.)
Public property | IsInitialized | Indicate that store has been initialized and can be accessed (Inherited from EmailBufferLocation.)
Public property | StorageLocation | location where the email data is stored

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferDiskLocation Constructor

Initializes a new instance of the EmailBufferDiskLocation class with default storage location.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EmailBufferDiskLocation(
    IExceptionConsole console,
    IDiskGuard guard,
    IIncidentDatabase incidentDatabase,
    Nullable<ILoggerFactory> factory
)

Parameters

console
Type: Walter.BOM..::..IExceptionConsole
guard
Type: Walter.IO..::..IDiskGuard
incidentDatabase
Type: Walter.Web.FireWall.RuleEngine..::..IIncidentDatabase
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>

Remarks

Data will be stored at [WebSiteRoot]\App_Data\EmailBuffer\

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferDiskLocation Methods

The EmailBufferDiskLocation type exposes the following members.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.
Public method | GenerateData | Generate the data that is used to create email report (Inherited from EmailBufferLocation.)
Public method | GetAppliedResetRules | Retrieve the applied firewall incidents from the underlying data buffer
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation for a given account and store in memory the last time data was send.
Public method | GetFireWallViolations | Gets the fire wall violations for a given account and store in memory the last time data was send.
Public method | LastUpdate | get the date the account meta data was last updated
Public method | RemoveAllEMail | remove all email from backing storage for a given account
Public method | UpdateAccountData | Update the account between the item in memory and the item on disk

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Add Method

EmailBufferDiskLocation..::..Add Method

Overload List

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.

See Also

EmailBufferDiskLocation Class
EmailBufferDiskLocation Members
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IContentSecurityPolicyViolation)

EmailBufferDiskLocation..::..Add Method (EMailAddress, IContentSecurityPolicyViolation)

Adds SCP violation item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Add(
    EMailAddress account,
    IContentSecurityPolicyViolation item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: IContentSecurityPolicyViolation
The item to add.

See Also

EmailBufferDiskLocation Class
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IFireWallViolations)

EmailBufferDiskLocation..::..Add Method (EMailAddress, IFireWallViolations)

Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Add(
    EMailAddress account,
    IFireWallViolations item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The item to add.

See Also

EmailBufferDiskLocation Class
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IAppliedResetRule)

EmailBufferDiskLocation..::..Add Method (EMailAddress, IAppliedResetRule)

Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Add(
    EMailAddress account,
    IAppliedResetRule item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: Walter.Web.FireWall.Models..::..IAppliedResetRule
The item to add.

Exceptions

Exception | Condition
[ArgumentNullException] | account
[ArgumentNullException] | item

See Also

EmailBufferDiskLocation Class
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


GetAppliedResetRules Method

EmailBufferDiskLocation..::..GetAppliedResetRules Method

Retrieve the applied firewall incidents from the underlying data buffer

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IAppliedResetRule[] GetAppliedResetRules(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account to get them for.

Return Value

IAppliedResetRule[]

Exceptions

Exception | Condition
[ArgumentNullException] | account

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


GetContentSecurityPolicyViolation Method

EmailBufferDiskLocation..::..GetContentSecurityPolicyViolation Method

Gets the content security policy violation for a given account and store in memory the last time data was send.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IContentSecurityPolicyViolation[] GetContentSecurityPolicyViolation(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account used for sending the items to.

Return Value

Walter.Web.FireWall.BOM.Violations.IFireWallViolations[].

Remarks

If your web application terminates the last send email account date will be lost, basically it will not know when the last time was, use database option if this is important for you

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


GetFireWallViolations Method

EmailBufferDiskLocation..::..GetFireWallViolations Method

Gets the fire wall violations for a given account and store in memory the last time data was send.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFireWallViolations[] GetFireWallViolations(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account used for sending the items to.

Return Value

Walter.Web.FireWall.BOM.Violations.IFireWallViolations[].

Remarks

If your web application terminates the last send email account date will be lost, basically it will not know when the last time was, use database option if this is important for you

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


LastUpdate Method

EmailBufferDiskLocation..::..LastUpdate Method

get the date the account meta data was last updated

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastUpdate(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to test

Return Value

last update date

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


RemoveAllEMail Method

EmailBufferDiskLocation..::..RemoveAllEMail Method

remove all email from backing storage for a given account

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void RemoveAllEMail(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to remove all mail for

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


UpdateAccountData Method

EmailBufferDiskLocation..::..UpdateAccountData Method

Update the account between the item in memory and the item on disk

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateAccountData(
    ref EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress %
the account to synchronize

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferDiskLocation Properties

The EmailBufferDiskLocation type exposes the following members.

Properties

 | Name | Description
Public property | Details | Details of where stored
Public property | DirectoryPath | Gets or sets the directory full or relative path to use as root directory for the users and reports.
Public property | Enabled | Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false. (Inherited from EmailBufferLocation.)
Public property | IsInitialized | Indicate that store has been initialized and can be accessed (Inherited from EmailBufferLocation.)
Public property | StorageLocation | location where the email data is stored

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Details Property

EmailBufferDiskLocation..::..Details Property

Details of where stored

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Details { get; }

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


DirectoryPath Property

EmailBufferDiskLocation..::..DirectoryPath Property

Gets or sets the directory full or relative path to use as root directory for the users and reports.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DirectoryPath { get; set; }

Field Value

The directory path to use, invalid directories will be ignored.

Exceptions

Exception | Condition
[IOException] | Will generate an exception if the directory does not exists and it can't create it

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


StorageLocation Property

EmailBufferDiskLocation..::..StorageLocation Property

location where the email data is stored

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StorageLocations StorageLocation { get; }

See Also

EmailBufferDiskLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferLocation Class

Base class for managing storage buffering violations that need to be communicated.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class EmailBufferLocation : IEmailBufferLocation

See Also

EmailBufferLocation Members
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferLocation Members

The EmailBufferLocation type exposes the following members.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.
Public method | GenerateData | Generate the data that is used to create email report
Public method | GetAppliedResetRules | Retrieve the applied firewall incidents from the underlying data buffer
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation from the underlying data buffer.
Public method | GetFireWallViolations | Gets the fire wall violations from the underlying data buffer..
Public method | LastUpdate | get the date the account meta data was last updated
Public method | RemoveAllEMail | remove all email from backing storage for a given account
Public method | UpdateAccountData | Updates the account meta data.

Properties

 | Name | Description
Public property | Details | Details of where stored
Public property | Enabled | Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false.
Public property | IsInitialized | Indicate that store has been initialized and can be accessed
Public property | StorageLocation | Storage location for the data

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferLocation Methods

The EmailBufferLocation type exposes the following members.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.
Public method | GenerateData | Generate the data that is used to create email report
Public method | GetAppliedResetRules | Retrieve the applied firewall incidents from the underlying data buffer
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation from the underlying data buffer.
Public method | GetFireWallViolations | Gets the fire wall violations from the underlying data buffer..
Public method | LastUpdate | get the date the account meta data was last updated
Public method | RemoveAllEMail | remove all email from backing storage for a given account
Public method | UpdateAccountData | Updates the account meta data.

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Add Method

EmailBufferLocation..::..Add Method

Overload List

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.

See Also

EmailBufferLocation Class
EmailBufferLocation Members
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IContentSecurityPolicyViolation)

EmailBufferLocation..::..Add Method (EMailAddress, IContentSecurityPolicyViolation)

Adds SCP violation item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Add(
    EMailAddress account,
    IContentSecurityPolicyViolation item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: IContentSecurityPolicyViolation
The item to add.

See Also

EmailBufferLocation Class
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IFireWallViolations)

EmailBufferLocation..::..Add Method (EMailAddress, IFireWallViolations)

Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Add(
    EMailAddress account,
    IFireWallViolations item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The item to add.

See Also

EmailBufferLocation Class
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IAppliedResetRule)

EmailBufferLocation..::..Add Method (EMailAddress, IAppliedResetRule)

Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Add(
    EMailAddress account,
    IAppliedResetRule item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: Walter.Web.FireWall.Models..::..IAppliedResetRule
The item to add.

See Also

EmailBufferLocation Class
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


GenerateData Method

EmailBufferLocation..::..GenerateData Method

Generate the data that is used to create email report

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EmailReportData GenerateData(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to create the data set for

Return Value

Email report data

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


GetAppliedResetRules Method

EmailBufferLocation..::..GetAppliedResetRules Method

Retrieve the applied firewall incidents from the underlying data buffer

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IAppliedResetRule[] GetAppliedResetRules(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account to get them for.

Return Value

IAppliedResetRule[]

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


GetContentSecurityPolicyViolation Method

EmailBufferLocation..::..GetContentSecurityPolicyViolation Method

Gets the content security policy violation from the underlying data buffer.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IContentSecurityPolicyViolation[] GetContentSecurityPolicyViolation(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account to get them for.

Return Value

IContentSecurityPolicyViolation[].

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


GetFireWallViolations Method

EmailBufferLocation..::..GetFireWallViolations Method

Gets the fire wall violations from the underlying data buffer..

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFireWallViolations[] GetFireWallViolations(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account to get them for..

Return Value

IFireWallViolations[].

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


LastUpdate Method

EmailBufferLocation..::..LastUpdate Method

get the date the account meta data was last updated

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastUpdate(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to test

Return Value

last update date

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


RemoveAllEMail Method

EmailBufferLocation..::..RemoveAllEMail Method

remove all email from backing storage for a given account

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void RemoveAllEMail(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to remove all mail for

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


UpdateAccountData Method

EmailBufferLocation..::..UpdateAccountData Method

Updates the account meta data.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateAccountData(
    ref EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress %
The account to update.

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferLocation Properties

The EmailBufferLocation type exposes the following members.

Properties

 | Name | Description
Public property | Details | Details of where stored
Public property | Enabled | Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false.
Public property | IsInitialized | Indicate that store has been initialized and can be accessed
Public property | StorageLocation | Storage location for the data

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Details Property

EmailBufferLocation..::..Details Property

Details of where stored

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Details { get; }

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Enabled Property

EmailBufferLocation..::..Enabled Property

Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Enabled { get; set; }

Field Value

true if enabled; otherwise, false.

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


IsInitialized Property

EmailBufferLocation..::..IsInitialized Property

Indicate that store has been initialized and can be accessed

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsInitialized { get; set; }

Field Value

true if this instance is initialized; otherwise, false.

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


StorageLocation Property

EmailBufferLocation..::..StorageLocation Property

Storage location for the data

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StorageLocations StorageLocation { get; }

See Also

EmailBufferLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferSqlServerLocation Class

Class allows the documenting of the emails on SQL Server showing before as well as before the emails need to be send.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class EmailBufferSqlServerLocation : EmailBufferLocation

Inheritance Hierarchy

Walter.Web.FireWall.Destinations.Email..::..EmailBufferLocation
Walter.Web.FireWall.Destinations.Email..::..EmailBufferSqlServerLocation

See Also

EmailBufferSqlServerLocation Members
Walter.Web.FireWall.Destinations.Email Namespace
Walter.Web.FireWall.Destinations.Email..::..EmailBufferLocation
Walter.Web.FireWall.Destinations.Email..::..IEmailBufferSqlServerLocation


EmailBufferSqlServerLocation Members

The EmailBufferSqlServerLocation type exposes the following members.

Constructors

 | Name | Description
Protected method | EmailBufferSqlServerLocation | Initializes a new instance of the EmailBufferSqlServerLocation class.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account. (Inherited from EmailBufferLocation.)
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account. (Inherited from EmailBufferLocation.)
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account. (Inherited from EmailBufferLocation.)
Protected method | CreateTableIfMissing | Creates the table if missing.
Public method | GenerateData | Generate the data that is used to create email report (Inherited from EmailBufferLocation.)
Public method | GetAppliedResetRules | Retrieve the applied firewall incidents from the underlying data buffer (Inherited from EmailBufferLocation.)
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation from the underlying data buffer. (Inherited from EmailBufferLocation.)
Public method | GetFireWallViolations | Gets the fire wall violations from the underlying data buffer.. (Inherited from EmailBufferLocation.)
Public method | LastUpdate | get the date the account meta data was last updated (Inherited from EmailBufferLocation.)
Public method | RemoveAllEMail | remove all email from backing storage for a given account (Inherited from EmailBufferLocation.)
Public method | StoreEMail | Stores a users email for archiving
Public method | UpdateAccountData | Updates the account meta data. (Inherited from EmailBufferLocation.)

Fields

Name | Description
NAMED_INSTANCE_NAME | Of you intent to use a separate database for mail storage then use this name when specify a custom connection string
PERMISSION_INSTANCE_NAME | when specifying schema and user permissions you can do so by registering a named DI object using this name and will be injected

Properties

 | Name | Description
Protected property | DB | interface to the database tools
Public property | Details | Details of where stored
Public property | Enabled | Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false. (Inherited from EmailBufferLocation.)
Public property | IsInitialized | Indicate that store has been initialized and can be accessed (Inherited from EmailBufferLocation.)
Protected property | Permission | execute permission granted to user or user group
Protected property | Schema | the schema used by the DDL objects
Public property | StorageLocation | location where the email data is stored

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferSqlServerLocation Constructor

Initializes a new instance of the EmailBufferSqlServerLocation class.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected EmailBufferSqlServerLocation(
    IDatabaseTools databasTools,
    IExceptionConsole console,
    Nullable<ILoggerFactory> loggerFactory
)

Parameters

databasTools
Type: IDatabaseTools
The database tools to use.
console
Type: Walter.BOM..::..IExceptionConsole
loggerFactory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
Firewall to send configuration errors to

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferSqlServerLocation Fields

The EmailBufferSqlServerLocation type exposes the following members.

Fields

Name | Description
NAMED_INSTANCE_NAME | Of you intent to use a separate database for mail storage then use this name when specify a custom connection string
PERMISSION_INSTANCE_NAME | when specifying schema and user permissions you can do so by registering a named DI object using this name and will be injected

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


NAMED_INSTANCE_NAME Field

EmailBufferSqlServerLocation..::..NAMED_INSTANCE_NAME Field

Of you intent to use a separate database for mail storage then use this name when specify a custom connection string

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const string NAMED_INSTANCE_NAME

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


PERMISSION_INSTANCE_NAME Field

EmailBufferSqlServerLocation..::..PERMISSION_INSTANCE_NAME Field

when specifying schema and user permissions you can do so by registering a named DI object using this name and will be injected

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const string PERMISSION_INSTANCE_NAME

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferSqlServerLocation Methods

The EmailBufferSqlServerLocation type exposes the following members.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account. (Inherited from EmailBufferLocation.)
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account. (Inherited from EmailBufferLocation.)
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account. (Inherited from EmailBufferLocation.)
Protected method | CreateTableIfMissing | Creates the table if missing.
Public method | GenerateData | Generate the data that is used to create email report (Inherited from EmailBufferLocation.)
Public method | GetAppliedResetRules | Retrieve the applied firewall incidents from the underlying data buffer (Inherited from EmailBufferLocation.)
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation from the underlying data buffer. (Inherited from EmailBufferLocation.)
Public method | GetFireWallViolations | Gets the fire wall violations from the underlying data buffer.. (Inherited from EmailBufferLocation.)
Public method | LastUpdate | get the date the account meta data was last updated (Inherited from EmailBufferLocation.)
Public method | RemoveAllEMail | remove all email from backing storage for a given account (Inherited from EmailBufferLocation.)
Public method | StoreEMail | Stores a users email for archiving
Public method | UpdateAccountData | Updates the account meta data. (Inherited from EmailBufferLocation.)

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


CreateTableIfMissing Method

EmailBufferSqlServerLocation..::..CreateTableIfMissing Method

Creates the table if missing.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected void CreateTableIfMissing(
    TableTypes type,
    DateTime lastUpdate,
    out IReadOnlyList<TSqlResult> updateLog
)

Parameters

type
Type: Walter.DataTools..::..TableTypes
The type of script to run.
lastUpdate
Type: DateTime
The last time a update was done
updateLog
Type: IReadOnlyList<(Of <(<'TSqlResult>)>)>%

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


StoreEMail Method

EmailBufferSqlServerLocation..::..StoreEMail Method

Stores a users email for archiving

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void StoreEMail(
    EMailAddress address,
    string subject,
    string email
)

Parameters

address
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The address used
subject
Type: String
The subject line in the email
email
Type: String
the email that was send

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailBufferSqlServerLocation Properties

The EmailBufferSqlServerLocation type exposes the following members.

Properties

 | Name | Description
Protected property | DB | interface to the database tools
Public property | Details | Details of where stored
Public property | Enabled | Gets or sets a value indicating whether buffering is enabled. If this class is mis-configured this will default to false. (Inherited from EmailBufferLocation.)
Public property | IsInitialized | Indicate that store has been initialized and can be accessed (Inherited from EmailBufferLocation.)
Protected property | Permission | execute permission granted to user or user group
Protected property | Schema | the schema used by the DDL objects
Public property | StorageLocation | location where the email data is stored

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


DB Property

EmailBufferSqlServerLocation..::..DB Property

interface to the database tools

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IDatabaseTools DB { get; }

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Details Property

EmailBufferSqlServerLocation..::..Details Property

Details of where stored

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Details { get; }

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Permission Property

EmailBufferSqlServerLocation..::..Permission Property

execute permission granted to user or user group

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected string Permission { get; set; }

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


Schema Property

EmailBufferSqlServerLocation..::..Schema Property

the schema used by the DDL objects

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected string Schema { get; set; }

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


StorageLocation Property

EmailBufferSqlServerLocation..::..StorageLocation Property

location where the email data is stored

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StorageLocations StorageLocation { get; }

See Also

EmailBufferSqlServerLocation Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailConfiguration Class

This class represents the e-mail configuration used by the firewall. Email configuration contains mail addresses and their individual preferences as well as mail server connection properties

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class EMailConfiguration : IEMailConfiguration

See Also

EMailConfiguration Members
Walter.Web.FireWall.Destinations.Email Namespace


EMailConfiguration Members

The EMailConfiguration type exposes the following members.

Constructors

 | Name | Description
Public method | EMailConfiguration | create an email configuration setting

Methods

 | Name | Description
Public method | IsValid | Test to see if the configuration is provided required data

Properties

 | Name | Description
Public property | Archive | Duration for how long emails are to be archived
Public property | DefaultEmail | Gets or sets to.
Public property | EmailLogEntries | The size of the email audit log to use in the EMailLog audit log.
Public property | From | Gets or sets from.
Public property | IgnoreServerCertificateErrors | Ignore mail server certificate errors when connecting
Public property | MailingList | list of mail addresses that is to be used for the various mail contacts and their roles.
Public property | Password | Gets or sets the password that should be used.
Public property | Port | Gets or sets the port.
Public property | Server | Gets or sets the Mail server name or IP address.
Public property | Subject | The subject template of the emails send
Public property | UserName | Gets or sets the users user name.
Public property | UseSsl | Gets a value indicating whether to use SSL.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailConfiguration Constructor

create an email configuration setting

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EMailConfiguration()

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailConfiguration Methods

The EMailConfiguration type exposes the following members.

Methods

 | Name | Description
Public method | IsValid | Test to see if the configuration is provided required data

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


IsValid Method

EMailConfiguration..::..IsValid Method

Test to see if the configuration is provided required data

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsValid()

Return Value

True if the configuration contains Server, User, Password and From sender

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailConfiguration Properties

The EMailConfiguration type exposes the following members.

Properties

 | Name | Description
Public property | Archive | Duration for how long emails are to be archived
Public property | DefaultEmail | Gets or sets to.
Public property | EmailLogEntries | The size of the email audit log to use in the EMailLog audit log.
Public property | From | Gets or sets from.
Public property | IgnoreServerCertificateErrors | Ignore mail server certificate errors when connecting
Public property | MailingList | list of mail addresses that is to be used for the various mail contacts and their roles.
Public property | Password | Gets or sets the password that should be used.
Public property | Port | Gets or sets the port.
Public property | Server | Gets or sets the Mail server name or IP address.
Public property | Subject | The subject template of the emails send
Public property | UserName | Gets or sets the users user name.
Public property | UseSsl | Gets a value indicating whether to use SSL.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


Archive Property

EMailConfiguration..::..Archive Property

Duration for how long emails are to be archived

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Archive { get; set; }

Remarks

The default value is copied from IFireWallConfig.Reporting.DataRetention as set by DataRetention. Please note that the data volume for a disk based storage configuration can be quite overwhelming depending on the emails

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


DefaultEmail Property

EMailConfiguration..::..DefaultEmail Property

Gets or sets to.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> DefaultEmail { get; set; }

Field Value

To.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailLogEntries Property

EMailConfiguration..::..EmailLogEntries Property

The size of the email audit log to use in the EMailLog audit log.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int EmailLogEntries { get; set; }

Remarks

The value should be low enough for you to get the information you need, the default value is 50 email.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace
IEmailReportDesination..::..EMailLog


From Property

EMailConfiguration..::..From Property

Gets or sets from.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string From { get; set; }

Field Value

From.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


IgnoreServerCertificateErrors Property

EMailConfiguration..::..IgnoreServerCertificateErrors Property

Ignore mail server certificate errors when connecting

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IgnoreServerCertificateErrors { get; set; }

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


MailingList Property

EMailConfiguration..::..MailingList Property

list of mail addresses that is to be used for the various mail contacts and their roles.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public List<EMailAddress> MailingList { get; }

Remarks

These users are administrators of the website, one would normally not add user emails here as these are managed by the identity platform

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


Password Property

EMailConfiguration..::..Password Property

Gets or sets the password that should be used.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Password { get; set; }

Field Value

The password.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


Port Property

EMailConfiguration..::..Port Property

Gets or sets the port.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Port { get; set; }

Field Value

The port.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


Server Property

EMailConfiguration..::..Server Property

Gets or sets the Mail server name or IP address.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Server { get; set; }

Field Value

The server.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


Subject Property

EMailConfiguration..::..Subject Property

The subject template of the emails send

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Subject { get; set; }

Field Value

The subject to use the {Domain} template will be replaced with the domain name.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


UserName Property

EMailConfiguration..::..UserName Property

Gets or sets the users user name.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string UserName { get; set; }

Field Value

The user.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


UseSsl Property

EMailConfiguration..::..UseSsl Property

Gets a value indicating whether to use SSL.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UseSsl { get; set; }

Field Value

true if [use SSL]; otherwise, false.

See Also

EMailConfiguration Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailReportDesination Class

Send all violations per email, buffering could be disk or database. This class manages saving the data and retrieving the data and ensures you do not get the same violation multiple times.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class EmailReportDesination : IEmailReportDesination,
    IReportDestination

Remarks

This class is implemented in NuGet packages Walter.Web.FireWall.MailKitLogger and Walter.Web.FireWall.SMTPLogger for consuming the email data. Look at getting started at https://support.asp-waf.com for help if you are interested in how implement your own.

See Also

EmailReportDesination Members
Walter.Web.FireWall.Destinations.Email Namespace


EmailReportDesination Members

The EmailReportDesination type exposes the following members.

Constructors

 | Name | Description
Protected method | EmailReportDesination | Initializes a new instance of the EmailReportDesination class.

Methods

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Enqueue(EMailRoles, String, String, Boolean) | Send mail to all users in Role
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Security Policy Violation item.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations in the email report.
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(IAppliedResetRule) |
Public method | Flush | Send buffered violation to the destinations
Public method | Unblock | document that the following IP address and or user can be allowed to pass the firewall again

Properties

 | Name | Description
Protected property | DataBuffer | Data buffer collecting email reports to be send to mail addresses
Public property | Details | Details for the storage
Protected property | DiskViolations | The disk violations that where recorded since last processed
Public property | EMailsSend | The number of email send in this session
Public property | LastDataReceivedUtc | Gets or sets the last data received UTC.
Public property | LastDataWriteTimeUtc | Gets or sets the last data write time UTC.
Public property | LastFlushed | The last time the underlying storage was flushed
Protected property | licenseViolations | The license violations on this feature
Protected property | LogBuffer | Write access to the Email Log
Public property | MailFrequency | Gets or sets the mail frequency when to send emails (default 10 minutes).
Protected property | SmtpConfiguration | The current configuration
Public property | StorageLocation | location of the storage

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailReportDesination Constructor

Initializes a new instance of the EmailReportDesination class.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected EmailReportDesination(
    IEMailConfiguration smtpConfiguration,
    IEmailBufferLocation dataBuffer,
    Nullable<ILoggerFactory> factory
)

Parameters

smtpConfiguration
Type: Walter.Web.FireWall.Destinations.Email..::..IEMailConfiguration
The SMTP configuration.
dataBuffer
Type: Walter.Web.FireWall.Destinations.Email..::..IEmailBufferLocation
data buffer for exceptions
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>

Exceptions

Exception | Condition
[System.ArgumentNullException] | dataBuffer
[System.ArgumentNullException] | smtpConfiguration
[ArgumentNullException] | smtpConfiguration

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailReportDesination Methods

The EmailReportDesination type exposes the following members.

Methods

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Enqueue(EMailRoles, String, String, Boolean) | Send mail to all users in Role
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Security Policy Violation item.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations in the email report.
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(IAppliedResetRule) |
Public method | Flush | Send buffered violation to the destinations
Public method | Unblock | document that the following IP address and or user can be allowed to pass the firewall again

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


Dispose Method

EmailReportDesination..::..Dispose Method

Overload List

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

See Also

EmailReportDesination Class
EmailReportDesination Members
Walter.Web.FireWall.Destinations.Email Namespace


Dispose Method (Boolean)

EmailReportDesination..::..Dispose Method (Boolean)

Releases unmanaged and - optionally - managed resources.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true to release both managed and unmanaged resources; false to release only unmanaged resources.

See Also

EmailReportDesination Class
Dispose Overload
Walter.Web.FireWall.Destinations.Email Namespace


Dispose Method

EmailReportDesination..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

See Also

EmailReportDesination Class
Dispose Overload
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method

EmailReportDesination..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(EMailRoles, String, String, Boolean) | Send mail to all users in Role
Public method | Enqueue(FireWallDiskViolation) | enqueue a disk based violation
Public method | Enqueue(IContentSecurityPolicyViolation) | Enqueues the specified Security Policy Violation item.
Public method | Enqueue(IFireWallViolations) | Enqueues the specified FireWall Violations in the email report.
Public method | Enqueue(BlockedUserRequest) | Enqueues the specified blocked user request.
Public method | Enqueue(IAppliedResetRule) |

See Also

EmailReportDesination Class
EmailReportDesination Members
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method (EMailRoles, String, String, Boolean)

EmailReportDesination..::..Enqueue Method (EMailRoles, String, String, Boolean)

Send mail to all users in Role

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    EMailRoles roles,
    string subject,
    string body,
    bool isHtml
)

Parameters

roles
Type: Walter.Web.FireWall.Destinations.Email..::..EMailRoles
The role or Roles that will receive the email
subject
Type: String
The subject of the email
body
Type: String
The body of the email
isHtml
Type: Boolean
indicates if the email is in HTML format

See Also

EmailReportDesination Class
Enqueue Overload
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method (FireWallDiskViolation)

EmailReportDesination..::..Enqueue Method (FireWallDiskViolation)

enqueue a disk based violation

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    FireWallDiskViolation item
)

Parameters

item
Type: Walter.Web.FireWall.ViewModels..::..FireWallDiskViolation
the violation to process

See Also

EmailReportDesination Class
Enqueue Overload
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method (IContentSecurityPolicyViolation)

EmailReportDesination..::..Enqueue Method (IContentSecurityPolicyViolation)

Enqueues the specified Security Policy Violation item.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IContentSecurityPolicyViolation item
)

Parameters

item
Type: IContentSecurityPolicyViolation
The item in the email reports.

See Also

EmailReportDesination Class
Enqueue Overload
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method (IFireWallViolations)

EmailReportDesination..::..Enqueue Method (IFireWallViolations)

Enqueues the specified FireWall Violations in the email report.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IFireWallViolations item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The item.

See Also

EmailReportDesination Class
Enqueue Overload
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method (BlockedUserRequest)

EmailReportDesination..::..Enqueue Method (BlockedUserRequest)

Enqueues the specified blocked user request.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    BlockedUserRequest blockedUserRequest
)

Parameters

blockedUserRequest
Type: BlockedUserRequest
The blocked user request.

See Also

EmailReportDesination Class
Enqueue Overload
Walter.Web.FireWall.Destinations.Email Namespace


Enqueue Method (IAppliedResetRule)

EmailReportDesination..::..Enqueue Method (IAppliedResetRule)

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Enqueue(
    IAppliedResetRule item
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IAppliedResetRule

See Also

EmailReportDesination Class
Enqueue Overload
Walter.Web.FireWall.Destinations.Email Namespace


Flush Method

EmailReportDesination..::..Flush Method

Send buffered violation to the destinations

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Flush()

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


Unblock Method

EmailReportDesination..::..Unblock Method

document that the following IP address and or user can be allowed to pass the firewall again

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Unblock(
    IUnblock action
)

Parameters

action
Type: Walter.Web.FireWall..::..IUnblock
The action.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


EmailReportDesination Properties

The EmailReportDesination type exposes the following members.

Properties

 | Name | Description
Protected property | DataBuffer | Data buffer collecting email reports to be send to mail addresses
Public property | Details | Details for the storage
Protected property | DiskViolations | The disk violations that where recorded since last processed
Public property | EMailsSend | The number of email send in this session
Public property | LastDataReceivedUtc | Gets or sets the last data received UTC.
Public property | LastDataWriteTimeUtc | Gets or sets the last data write time UTC.
Public property | LastFlushed | The last time the underlying storage was flushed
Protected property | licenseViolations | The license violations on this feature
Protected property | LogBuffer | Write access to the Email Log
Public property | MailFrequency | Gets or sets the mail frequency when to send emails (default 10 minutes).
Protected property | SmtpConfiguration | The current configuration
Public property | StorageLocation | location of the storage

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


DataBuffer Property

EmailReportDesination..::..DataBuffer Property

Data buffer collecting email reports to be send to mail addresses

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IEmailBufferLocation DataBuffer { get; }

Field Value

The data buffer.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


Details Property

EmailReportDesination..::..Details Property

Details for the storage

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Details { get; }

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


DiskViolations Property

EmailReportDesination..::..DiskViolations Property

The disk violations that where recorded since last processed

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IReadOnlyList<FireWallDiskViolation> DiskViolations { get; }

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailsSend Property

EmailReportDesination..::..EMailsSend Property

The number of email send in this session

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int EMailsSend { get; set; }

Field Value

The e mails send.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


LastDataReceivedUtc Property

EmailReportDesination..::..LastDataReceivedUtc Property

Gets or sets the last data received UTC.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> LastDataReceivedUtc { get; set; }

Field Value

The last data received UTC.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


LastDataWriteTimeUtc Property

EmailReportDesination..::..LastDataWriteTimeUtc Property

Gets or sets the last data write time UTC.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> LastDataWriteTimeUtc { get; set; }

Field Value

The last data write time UTC.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


LastFlushed Property

EmailReportDesination..::..LastFlushed Property

The last time the underlying storage was flushed

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastFlushed { get; }

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


licenseViolations Property

EmailReportDesination..::..licenseViolations Property

The license violations on this feature

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected Nullable<LicenseViolation> licenseViolations { get; set; }

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


LogBuffer Property

EmailReportDesination..::..LogBuffer Property

Write access to the Email Log

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected RingBuffer<EmailAudit> LogBuffer { get; }

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


MailFrequency Property

EmailReportDesination..::..MailFrequency Property

Gets or sets the mail frequency when to send emails (default 10 minutes).

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan MailFrequency { get; set; }

Field Value

The e-mail frequency.

Remarks

Please note that if using disk storage and your web application frequently re-starts you may get your emails more often then specified or not if no violations.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


SmtpConfiguration Property

EmailReportDesination..::..SmtpConfiguration Property

The current configuration

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IEMailConfiguration SmtpConfiguration { get; }

Field Value

The SMTP configuration.

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


StorageLocation Property

EmailReportDesination..::..StorageLocation Property

location of the storage

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StorageLocations StorageLocation { get; }

See Also

EmailReportDesination Class
Walter.Web.FireWall.Destinations.Email Namespace


EMailRoles Enumeration

EMail roles that an address may implement, basically states what the users accepts being contacted about. These are your email addresses of your contacts managed by you,

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum EMailRoles

Members

Member name | Description
None | Role was not set
OwnAccountRelatedViolations | The users own account related violations are send
FireWallAdministrationViolations | The fire wall administration related violations are send
UnauthorizedPhysicalFilesViolation | The unauthorized physical files was altered and user needs to be notified
ProductUpdates | Product updates are send to account
SecurityRelevant | Security relevant roles (default)

Remarks

ASP-WAF does not maintain or access any data

See Also

Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferDiskLocation Interface

Indicates that the Incidents are buffered on disk before being send

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEmailBufferDiskLocation : IEmailBufferLocation

See Also

IEmailBufferDiskLocation Members
Walter.Web.FireWall.Destinations.Email Namespace
Walter.Web.FireWall.Destinations.Email..::..IEmailBufferLocation


IEmailBufferDiskLocation Members

The IEmailBufferDiskLocation type exposes the following members.

Properties

 | Name | Description
Public property | DirectoryPath | Gets or sets the directory full or relative path to use as root directory for the users and reports.

See Also

IEmailBufferDiskLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferDiskLocation Properties

The IEmailBufferDiskLocation type exposes the following members.

Properties

 | Name | Description
Public property | DirectoryPath | Gets or sets the directory full or relative path to use as root directory for the users and reports.

See Also

IEmailBufferDiskLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


DirectoryPath Property

IEmailBufferDiskLocation..::..DirectoryPath Property

Gets or sets the directory full or relative path to use as root directory for the users and reports.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string DirectoryPath { get; set; }

Field Value

The directory path.

See Also

IEmailBufferDiskLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferLocation Interface

Interface IEmailBufferLocation contains no properties but indicates the type of storage used

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEmailBufferLocation

See Also

IEmailBufferLocation Members
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferLocation Members

The IEmailBufferLocation type exposes the following members.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.
Public method | GenerateData | Generated structured dataset for email reports
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation.
Public method | GetFireWallViolations | Gets the fire wall violations.
Public method | LastUpdate | get the date the account meta data was last updated
Public method | UpdateAccountData | Updates the account meta data.

Properties

 | Name | Description
Public property | IsInitialized | indicate that store has been initialized and can be accessed

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferLocation Methods

The IEmailBufferLocation type exposes the following members.

Methods

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.
Public method | GenerateData | Generated structured dataset for email reports
Public method | GetContentSecurityPolicyViolation | Gets the content security policy violation.
Public method | GetFireWallViolations | Gets the fire wall violations.
Public method | LastUpdate | get the date the account meta data was last updated
Public method | UpdateAccountData | Updates the account meta data.

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


Add Method

IEmailBufferLocation..::..Add Method

Overload List

 | Name | Description
Public method | Add(EMailAddress, IContentSecurityPolicyViolation) | Adds SCP violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IFireWallViolations) | Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.
Public method | Add(EMailAddress, IAppliedResetRule) | Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.

See Also

IEmailBufferLocation Interface
IEmailBufferLocation Members
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IContentSecurityPolicyViolation)

IEmailBufferLocation..::..Add Method (EMailAddress, IContentSecurityPolicyViolation)

Adds SCP violation item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    EMailAddress account,
    IContentSecurityPolicyViolation item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: IContentSecurityPolicyViolation
The item to add.

See Also

IEmailBufferLocation Interface
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IFireWallViolations)

IEmailBufferLocation..::..Add Method (EMailAddress, IFireWallViolations)

Adds Firewall incident/ violation item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    EMailAddress account,
    IFireWallViolations item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: Walter.Web.FireWall.Models..::..IFireWallViolations
The item to add.

See Also

IEmailBufferLocation Interface
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


Add Method (EMailAddress, IAppliedResetRule)

IEmailBufferLocation..::..Add Method (EMailAddress, IAppliedResetRule)

Adds Firewall incident reset audit item that will be stored in the email buffer for the specified account.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    EMailAddress account,
    IAppliedResetRule item
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account that will get the scheduled mail.
item
Type: Walter.Web.FireWall.Models..::..IAppliedResetRule
The item to add.

Exceptions

Exception | Condition
[ArgumentNullException] | account
[ArgumentNullException] | item

See Also

IEmailBufferLocation Interface
Add Overload
Walter.Web.FireWall.Destinations.Email Namespace


GenerateData Method

IEmailBufferLocation..::..GenerateData Method

Generated structured dataset for email reports

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
EmailReportData GenerateData(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to send the report to

Return Value

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


GetContentSecurityPolicyViolation Method

IEmailBufferLocation..::..GetContentSecurityPolicyViolation Method

Gets the content security policy violation.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IContentSecurityPolicyViolation[] GetContentSecurityPolicyViolation(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account to get them for.

Return Value

IContentSecurityPolicyViolation[].

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


GetFireWallViolations Method

IEmailBufferLocation..::..GetFireWallViolations Method

Gets the fire wall violations.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallViolations[] GetFireWallViolations(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
The account to get them for..

Return Value

IFireWallViolations[].

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


LastUpdate Method

IEmailBufferLocation..::..LastUpdate Method

get the date the account meta data was last updated

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastUpdate(
    EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the account to test

Return Value

last update date

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


UpdateAccountData Method

IEmailBufferLocation..::..UpdateAccountData Method

Updates the account meta data.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateAccountData(
    ref EMailAddress account
)

Parameters

account
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress %
The account to update.

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferLocation Properties

The IEmailBufferLocation type exposes the following members.

Properties

 | Name | Description
Public property | IsInitialized | indicate that store has been initialized and can be accessed

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IsInitialized Property

IEmailBufferLocation..::..IsInitialized Property

indicate that store has been initialized and can be accessed

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsInitialized { get; }

See Also

IEmailBufferLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferSqlServerLocation Interface

Indicates that the Items are stored in a database ///

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEmailBufferSqlServerLocation : IEmailBufferLocation

See Also

IEmailBufferSqlServerLocation Members
Walter.Web.FireWall.Destinations.Email Namespace
Walter.Web.FireWall.Destinations.Email..::..IEmailBufferLocation


IEmailBufferSqlServerLocation Members

The IEmailBufferSqlServerLocation type exposes the following members.

Methods

 | Name | Description
Public method | ConfirmSend | Confirms the collected emails are send and change the status from processing to processed and store the date the mail was send.
Public method | GetEMails | Retrieve the emails for a given account on a given date
Public method | GetEMailsAsync | Retrieve the emails for a given account on a given date
Public method | MailArchive | Retrieve the total amount of emails currently stored in the email archive
Public method | MailArchiveAsync | Retrieve the total amount of emails currently stored in the email archive

Properties

 | Name | Description
Public property | KeepSendMails | Gets or sets the duration as for how long keep send mails.
Public property | QueueLength | count of unprocessed statements

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferSqlServerLocation Methods

The IEmailBufferSqlServerLocation type exposes the following members.

Methods

 | Name | Description
Public method | ConfirmSend | Confirms the collected emails are send and change the status from processing to processed and store the date the mail was send.
Public method | GetEMails | Retrieve the emails for a given account on a given date
Public method | GetEMailsAsync | Retrieve the emails for a given account on a given date
Public method | MailArchive | Retrieve the total amount of emails currently stored in the email archive
Public method | MailArchiveAsync | Retrieve the total amount of emails currently stored in the email archive

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


ConfirmSend Method

IEmailBufferSqlServerLocation..::..ConfirmSend Method

Confirms the collected emails are send and change the status from processing to processed and store the date the mail was send.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ConfirmSend(
    string emailAddress
)

Parameters

emailAddress
Type: String
The mail address that was processed

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


GetEMails Method

IEmailBufferSqlServerLocation..::..GetEMails Method

Retrieve the emails for a given account on a given date

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ValueTuple<string, string>> GetEMails(
    EMailAddress address,
    DateTime day
)

Parameters

address
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the emails send
day
Type: DateTime
the day that you would like to get the mails for

Return Value

list with subject and mails body (HTML) on given day

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


GetEMailsAsync Method

IEmailBufferSqlServerLocation..::..GetEMailsAsync Method

Retrieve the emails for a given account on a given date

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<IReadOnlyList<ValueTuple<string, string>>> GetEMailsAsync(
    EMailAddress address,
    DateTime day
)

Parameters

address
Type: Walter.Web.FireWall.Destinations.Email..::..EMailAddress
the emails send
day
Type: DateTime
the day that you would like to get the mails for

Return Value

list with subject and mails body (HTML) on given day

Remarks

Data is stored GDPR compliant and encrypted based on license key, email account and configured password. Content is irrecoverably lost if configuration password is changed

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


MailArchive Method

IEmailBufferSqlServerLocation..::..MailArchive Method

Retrieve the total amount of emails currently stored in the email archive

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ValueTuple<string, DateTime, int>> MailArchive(
    Nullable<string> accountFilter
)

Parameters

accountFilter
Type: Nullable <(Of <(<' String >)>)>
Optionally filter a specific account (no wild-cards)

Return Value

list of tuple containing the account and a count of mails on a given day

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


MailArchiveAsync Method

IEmailBufferSqlServerLocation..::..MailArchiveAsync Method

Retrieve the total amount of emails currently stored in the email archive

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<IReadOnlyList<ValueTuple<string, DateTime, int>>> MailArchiveAsync(
    Nullable<string> accountFilter,
    CancellationToken cancellationToken
)

Parameters

accountFilter
Type: Nullable <(Of <(<' String >)>)>
Optionally filter a specific account (no wild-cards)
cancellationToken
Type: CancellationToken
Propagates notification that operations should be canceled.

Return Value

list of tuple containing the account and a count of mails on a given day

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailBufferSqlServerLocation Properties

The IEmailBufferSqlServerLocation type exposes the following members.

Properties

 | Name | Description
Public property | KeepSendMails | Gets or sets the duration as for how long keep send mails.
Public property | QueueLength | count of unprocessed statements

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


KeepSendMails Property

IEmailBufferSqlServerLocation..::..KeepSendMails Property

Gets or sets the duration as for how long keep send mails.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan KeepSendMails { get; set; }

Field Value

The keep send mails for a given duration.

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


QueueLength Property

IEmailBufferSqlServerLocation..::..QueueLength Property

count of unprocessed statements

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int QueueLength { get; }

See Also

IEmailBufferSqlServerLocation Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEMailConfiguration Interface

Basic email configuration interface containing the details for working with IFireWall SMTP reporting interface

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEMailConfiguration

Remarks

Particularly important is the MailingList as well as the default email, if both are empty the SMTP reporting has no address to report to.

See Also

IEMailConfiguration Members
Walter.Web.FireWall.Destinations.Email Namespace
IEMailConfiguration..::..MailingList
IEMailConfiguration..::..DefaultEmail


IEMailConfiguration Members

The IEMailConfiguration type exposes the following members.

Methods

 | Name | Description
Public method | IsValid | Test to see if the configuration is provided required data

Properties

 | Name | Description
Public property | DefaultEmail | The default email address that will get all notifications, leave it blank if you use like to use the mailing list
Public property | EmailLogEntries | The size of the email audit log to use in the EMailLog audit log.
Public property | From | Gets or sets from email address.
Public property | IgnoreServerCertificateErrors | Ignore mail server certificate errors when connecting
Public property | MailingList | list of mail addresses that is to be used for the various mail contacts and their roles.
Public property | Password | Gets or sets the password that should be used.
Public property | Port | Gets or sets the port.
Public property | Server | Gets or sets the Mail server name or IP address.
Public property | Subject | The subject template of the emails send,the template {DomainName} will be populated with your actual domain name this helps if you are monitoring several firewall instances
Public property | UserName | Gets or sets the user.
Public property | UseSsl | Gets a value indicating whether to use SSL.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEMailConfiguration Methods

The IEMailConfiguration type exposes the following members.

Methods

 | Name | Description
Public method | IsValid | Test to see if the configuration is provided required data

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


IsValid Method

IEMailConfiguration..::..IsValid Method

Test to see if the configuration is provided required data

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsValid()

Return Value

True if the configuration contains Server, User, Password and From sender

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEMailConfiguration Properties

The IEMailConfiguration type exposes the following members.

Properties

 | Name | Description
Public property | DefaultEmail | The default email address that will get all notifications, leave it blank if you use like to use the mailing list
Public property | EmailLogEntries | The size of the email audit log to use in the EMailLog audit log.
Public property | From | Gets or sets from email address.
Public property | IgnoreServerCertificateErrors | Ignore mail server certificate errors when connecting
Public property | MailingList | list of mail addresses that is to be used for the various mail contacts and their roles.
Public property | Password | Gets or sets the password that should be used.
Public property | Port | Gets or sets the port.
Public property | Server | Gets or sets the Mail server name or IP address.
Public property | Subject | The subject template of the emails send,the template {DomainName} will be populated with your actual domain name this helps if you are monitoring several firewall instances
Public property | UserName | Gets or sets the user.
Public property | UseSsl | Gets a value indicating whether to use SSL.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


DefaultEmail Property

IEMailConfiguration..::..DefaultEmail Property

The default email address that will get all notifications, leave it blank if you use like to use the mailing list

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> DefaultEmail { get; set; }

Field Value

To.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


EmailLogEntries Property

IEMailConfiguration..::..EmailLogEntries Property

The size of the email audit log to use in the EMailLog audit log.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int EmailLogEntries { get; set; }

Remarks

/// The value should be low enough for you to get the information you need.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace
IEmailReportDesination..::..EMailLog


From Property

IEMailConfiguration..::..From Property

Gets or sets from email address.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string From { get; set; }

Field Value

From.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


IgnoreServerCertificateErrors Property

IEMailConfiguration..::..IgnoreServerCertificateErrors Property

Ignore mail server certificate errors when connecting

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IgnoreServerCertificateErrors { get; set; }

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


MailingList Property

IEMailConfiguration..::..MailingList Property

list of mail addresses that is to be used for the various mail contacts and their roles.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
List<EMailAddress> MailingList { get; }

Remarks

These users are administrators of the website, one would normally not add user emails here as these are managed by the identity platform

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


Password Property

IEMailConfiguration..::..Password Property

Gets or sets the password that should be used.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Password { get; set; }

Field Value

The password.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


Port Property

IEMailConfiguration..::..Port Property

Gets or sets the port.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Port { get; set; }

Field Value

The port.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


Server Property

IEMailConfiguration..::..Server Property

Gets or sets the Mail server name or IP address.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Server { get; set; }

Field Value

The server.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


Subject Property

IEMailConfiguration..::..Subject Property

The subject template of the emails send,the template {DomainName} will be populated with your actual domain name this helps if you are monitoring several firewall instances

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Subject { get; set; }

Field Value

The subject.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


UserName Property

IEMailConfiguration..::..UserName Property

Gets or sets the user.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string UserName { get; set; }

Field Value

The user.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


UseSsl Property

IEMailConfiguration..::..UseSsl Property

Gets a value indicating whether to use SSL.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool UseSsl { get; set; }

Field Value

true if [use SSL]; otherwise, false.

See Also

IEMailConfiguration Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailReportDesination Interface

Send all violations per email, buffering could be disk or database. This class manages saving the data and retrieving the data and ensures you do not get the same violation multiple times.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IEmailReportDesination : IReportDestination

Remarks

This class is implemented in NuGet packages Walter.Web.FireWall.MailKitLogger and Walter.Web.FireWall.SMTPLogger for consuming the email data. Look at getting started at https://support.asp-waf.com for help if you are interested in how implement your own.

See Also

IEmailReportDesination Members
Walter.Web.FireWall.Destinations.Email Namespace


IEmailReportDesination Members

The IEmailReportDesination type exposes the following members.

Properties

 | Name | Description
Public property | EMailLog | A audit buffer showing the status of the last 50 email send
Public property | EMailsSend | The number of email send in this session
Public property | MailFrequency | Gets or sets the mail frequency when to send emails (default 10 minutes).

See Also

IEmailReportDesination Interface
Walter.Web.FireWall.Destinations.Email Namespace


IEmailReportDesination Properties

The IEmailReportDesination type exposes the following members.

Properties

 | Name | Description
Public property | EMailLog | A audit buffer showing the status of the last 50 email send
Public property | EMailsSend | The number of email send in this session
Public property | MailFrequency | Gets or sets the mail frequency when to send emails (default 10 minutes).

See Also

IEmailReportDesination Interface
Walter.Web.FireWall.Destinations.Email Namespace


EMailLog Property

IEmailReportDesination..::..EMailLog Property

A audit buffer showing the status of the last 50 email send

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyBuffer<EmailAudit> EMailLog { get; }

Remarks

The value to buffer is configurable via email configuration

See Also

IEmailReportDesination Interface
Walter.Web.FireWall.Destinations.Email Namespace


EMailsSend Property

IEmailReportDesination..::..EMailsSend Property

The number of email send in this session

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int EMailsSend { get; }

See Also

IEmailReportDesination Interface
Walter.Web.FireWall.Destinations.Email Namespace


MailFrequency Property

IEmailReportDesination..::..MailFrequency Property

Gets or sets the mail frequency when to send emails (default 10 minutes).

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan MailFrequency { get; set; }

Field Value

The e-mail frequency.

Remarks

Please note that if using disk storage and your web application frequently re-starts you may get your emails more often then specified or not if no violations.

See Also

IEmailReportDesination Interface
Walter.Web.FireWall.Destinations.Email Namespace


IMailAttachmentFactory Interface

Email attachment interface will generate attachments for emails

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IMailAttachmentFactory

See Also

IMailAttachmentFactory Members
Walter.Web.FireWall.Destinations.Email Namespace


IMailAttachmentFactory Members

Methods

 | Name | Description
Public method | GenerateFor(array<IFireWallViolations>[]()[][]) | Generates attachments for IFireWallViolations.
Public method | GenerateFor(IReadOnlyList<(Of <<'(FireWallDiskViolation>)>>)) | Generates attachments for FireWallDiskViolation.

See Also

IMailAttachmentFactory Interface
Walter.Web.FireWall.Destinations.Email Namespace


IMailAttachmentFactory Methods

Methods

 | Name | Description
Public method | GenerateFor(array<IFireWallViolations>[]()[][]) | Generates attachments for IFireWallViolations.
Public method | GenerateFor(IReadOnlyList<(Of <<'(FireWallDiskViolation>)>>)) | Generates attachments for FireWallDiskViolation.

See Also

IMailAttachmentFactory Interface
Walter.Web.FireWall.Destinations.Email Namespace


GenerateFor Method

IMailAttachmentFactory..::..GenerateFor Method

Overload List

 | Name | Description
Public method | GenerateFor(array<IFireWallViolations>[]()[][]) | Generates attachments for IFireWallViolations.
Public method | GenerateFor(IReadOnlyList<(Of <<'(FireWallDiskViolation>)>>)) | Generates attachments for FireWallDiskViolation.

See Also

IMailAttachmentFactory Interface
IMailAttachmentFactory Members
Walter.Web.FireWall.Destinations.Email Namespace


GenerateFor Method (IFireWallViolations[])

IMailAttachmentFactory..::..GenerateFor Method (array<IFireWallViolations>[]()[][])

Generates attachments for IFireWallViolations.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<Attachment> GenerateFor(
    IFireWallViolations[] fwl
)

Parameters

fwl
Type: array<IFireWallViolations>[]()[][]
The array of IFireWallViolations.

Return Value

System.Collections.Generic.IEnumerable<System.Net.Mail.Attachment>.

See Also

IMailAttachmentFactory Interface
GenerateFor Overload
Walter.Web.FireWall.Destinations.Email Namespace


GenerateFor Method (IReadOnlyList(FireWallDiskViolation))

IMailAttachmentFactory..::..GenerateFor Method (IReadOnlyList<(Of <(<'FireWallDiskViolation>)>)>)

Generates attachments for FireWallDiskViolation.

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<Attachment> GenerateFor(
    IReadOnlyList<FireWallDiskViolation> diskViolations
)

Parameters

diskViolations
Type: IReadOnlyList<(Of <(<' FireWallDiskViolation >)>)>
The disk violations.

Return Value

System.Collections.Generic.IEnumerable<System.Net.Mail.Attachment>.

See Also

IMailAttachmentFactory Interface
GenerateFor Overload
Walter.Web.FireWall.Destinations.Email Namespace


Walter.Web.FireWall.DiskLogger Namespace

Classes

 | Class | Description
Public class | FireWallDiskLoggerOptions | Disk logger options for use with the firewall. Please look in the bin directory for sample PowerShell scripts

Enumerations

 | Enumeration | Description
Public enumeration | PowerShellFilesOption | State how to deal with the PowerShell scriptfile


FireWallDiskLoggerOptions Class

Disk logger options for use with the firewall. Please look in the bin directory for sample PowerShell scripts

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public sealed class FireWallDiskLoggerOptions

See Also

FireWallDiskLoggerOptions Members
Walter.Web.FireWall.DiskLogger Namespace


FireWallDiskLoggerOptions Members

The FireWallDiskLoggerOptions type exposes the following members.

Properties

 | Name | Description
Public property | CommandLine | If provided then the firewall will try to run the provided process defined in the ProcessStartInfo class
Public property | DataDirectory | Directory for general logs and scripts
Public property | ExceptionDirectory | This is the location where the FireWall exceptions are going to get written to.
Public property | ExcludeUserTypes | user types to exclude from processing like search engines for web applications
Public property | GenerateScriptsFor | The settings allow you to specify for what locations to generate scripts for.
Public property | PowerShellDirectory | Directory used to write PowerShell files to.
Public property | PowerShellOption | Inform how to deal with PowerShell options
Public property | WaitOnCommand | Wait on the CommandLine to finish executing before starting a new process
Public property | WebSiteNames | Gets or sets the web site names separate names using a comma, use empty string for IIS global management.

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


FireWallDiskLoggerOptions Properties

The FireWallDiskLoggerOptions type exposes the following members.

Properties

 | Name | Description
Public property | CommandLine | If provided then the firewall will try to run the provided process defined in the ProcessStartInfo class
Public property | DataDirectory | Directory for general logs and scripts
Public property | ExceptionDirectory | This is the location where the FireWall exceptions are going to get written to.
Public property | ExcludeUserTypes | user types to exclude from processing like search engines for web applications
Public property | GenerateScriptsFor | The settings allow you to specify for what locations to generate scripts for.
Public property | PowerShellDirectory | Directory used to write PowerShell files to.
Public property | PowerShellOption | Inform how to deal with PowerShell options
Public property | WaitOnCommand | Wait on the CommandLine to finish executing before starting a new process
Public property | WebSiteNames | Gets or sets the web site names separate names using a comma, use empty string for IIS global management.

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


CommandLine Property

FireWallDiskLoggerOptions..::..CommandLine Property

If provided then the firewall will try to run the provided process defined in the ProcessStartInfo class

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public Nullable<ProcessStartInfo> CommandLine { get; set; }

Remarks

We chose the ProcessStartInfo class over a command line as this allows a easy way to provide a user name and password on should never allow the IIS or any other Internet exposed service to start processes at any given time.

The process specified in the command line will be executed based on the flushing interval of the firewall if in this case items where written to disk.

Examples

The bellow samople shows how to execute a bat file after the blocking or unblocking commands where issued
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
       , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
       , options =&gt;
       {
           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);

   }).UseDiskLogging(opt=>{
       opt.DataDirectory = @"D:\Web-FireWall\FireWall";
       opt.PowerShellOption = Walter.Web.FireWall.DiskLogger.PowerShellFilesOption.GenerateIfMissing;
       opt.Commandline = new System.Diagnostics.ProcessStartInfo(@"D:\jobs\FireWall.bat"){UseShellExecute = true};
       });

   services.AddMvc(options =&gt;
       options.Filters.Add&lt;Walter.Web.FireWall.Filters.FireWallFilter&gt;()
   );

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


DataDirectory Property

FireWallDiskLoggerOptions..::..DataDirectory Property

Directory for general logs and scripts

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public string DataDirectory { get; set; }

Remarks

If you update the path after files have been generated use AlwaysOverWrite to force the path changes

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


ExceptionDirectory Property

FireWallDiskLoggerOptions..::..ExceptionDirectory Property

This is the location where the FireWall exceptions are going to get written to.

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public string ExceptionDirectory { get; set; }

Remarks

This log allows you to use a 3rd party application and look at the errors that have been raised by the firewall and contains the information needed to solve the issued raised.

The file contains the following data fields:

Date | the date in yyyy.MMM.dd HH:mm:ss format
Type | the type of exception including the namespace
Code | a number containing a unique error value
Message | The error message from the exception
memberName | the method causing or raising the exception
Class | the class causing or raising the exception
Help | link to the help index to solve the issue if the issue is a known issue

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


ExcludeUserTypes Property

FireWallDiskLoggerOptions..::..ExcludeUserTypes Property

user types to exclude from processing like search engines for web applications

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public UserTypes ExcludeUserTypes { get; set; }

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


GenerateScriptsFor Property

FireWallDiskLoggerOptions..::..GenerateScriptsFor Property

The settings allow you to specify for what locations to generate scripts for.

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public InterceptLocations GenerateScriptsFor { get; set; }

Field Value

generate scripts for flags.

Remarks

Supported are ExternalFireWall, InServerlIIS and InApplIIS When configuring IIS this will require that you install IP and Domain Restrictions see https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/ipsecurity/add for details

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


PowerShellDirectory Property

FireWallDiskLoggerOptions..::..PowerShellDirectory Property

Directory used to write PowerShell files to.

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public string PowerShellDirectory { get; set; }

Remarks

If you update the path after files have been generated use AlwaysOverWrite to force the path changes

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


PowerShellOption Property

FireWallDiskLoggerOptions..::..PowerShellOption Property

Inform how to deal with PowerShell options

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public PowerShellFilesOption PowerShellOption { get; set; }

Remarks

By default, if the files already exist, then they will not be replaced.

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


WaitOnCommand Property

FireWallDiskLoggerOptions..::..WaitOnCommand Property

Wait on the CommandLine to finish executing before starting a new process

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public bool WaitOnCommand { get; set; }

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


WebSiteNames Property

FireWallDiskLoggerOptions..::..WebSiteNames Property

Gets or sets the web site names separate names using a comma, use empty string for IIS global management.

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public Nullable<string> WebSiteNames { get; set; }

Field Value

The web site names.

Remarks

When configuring IIS this will require that you install IP and Domain Restrictions see https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/ipsecurity/add for details

See Also

FireWallDiskLoggerOptions Class
Walter.Web.FireWall.DiskLogger Namespace


PowerShellFilesOption Enumeration

State how to deal with the PowerShell scriptfile

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public enum PowerShellFilesOption

Members

Member name | Description
DoNotUse | The do not use
GenerateIfMissing | Generate the script files if they are missing
OverWrite | Overwrite the script files if they exist

See Also

Walter.Web.FireWall.DiskLogger Namespace


Walter.Web.FireWall.EventArguments Namespace

Classes

 | Class | Description
Public class | EndpointsCreatedEventArgs | Argument provided when endpoints have been created and you have subscribed to the OnEndpointsCreated event
Public class | ExceptionCaughtEventArgs | Event triggered when a process monitored by the firewall Exception Caught. Implements the [System.EventArgs]
Public class | FireWallCookieIncidentEventArgs | Class FireWallCookieIncidentEventArgs. Implements the FireWallIncidentEventArgs
Public class | FireWallCreatedEventArgs | Class FireWallCreatedEventArgs. This class cannot be inherited. Implements the [System.EventArgs]
Public class | FireWallDiskManipulationEventArgs | Event arguments raised by the firewall when disk manipulations has been discovered
Public class | FireWallIncidentEventArgs | The Guard event that's being raised by the firewall when the firewall is about to create an incident allowing you to intervene
Public class | FireWallResetEventArgs | Class FireWallResetEventArgs is used in the FireWall reset command and will be triggered when a reset command has executed Implements the [System.EventArgs]
Public class | GuardActionEventArgs | Guard events being raised by the firewall when an GuardAction is anything but NoAction
Public class | InterceptChangedEventArgs | Class InterceptChangedEventArgs. This class cannot be inherited. Implements the [System.EventArgs]
Public class | PageCreatedEventArgs | Page event that is raised by the firewall when resource is being requested
Public class | PageSendEventArgs | Page event that is raised by the firewall when resource has been send
Public class | PhishyRequestEventArgs | Argument used when a Phishy Request is considered, a phishy request is a request that is processed by your web application that resulted from a URL that is unknown to the firewall
Public class | RootPageDisposedEventArgs | This class is used when the firewall releases a IPageRequest if the request is a root request.
Public class | RulesCreatedEventArgs | Event triggered when the rules have been applied before the rules are used to generate endpoint protection defaults
Public class | UserTypeChangedEventArgs | Class UserTypeChangedEventArgs is triggered when the firewall detects a user group association change. Implements the EventArgs


EndpointsCreatedEventArgs Class

Argument provided when endpoints have been created and you have subscribed to the OnEndpointsCreated event

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class EndpointsCreatedEventArgs

Examples

Extend the firewall by subscribing to the OnEndpointsCreated
Large sample code showing the use of events
public void ConfigureServices(IServiceCollection services)
   {
       services.AddLogging();
       services.Configure<CookiePolicyOptions>(options =>
       {
           options.CheckConsentNeeded = context => true;
           options.MinimumSameSitePolicy = SameSiteMode.None;
           options.ConsentCookie.Name = "GDPR";
       });

       services.AddMemoryCache();
       services.AddAntiforgery();
       services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
           , domainName: new Uri("https://www.test.dll", UriKind.Absolute), options =>
          {
              options.JoinCustomerImprovementProgramWithEmail = "info@test.dll";
              options.Cypher.ApplicationPassword = "123456$even";
              options.ApplicationName = "www.test.dll";
              options.ApplicationTag = "WS3";
              options.ContactDetails.Address = "Main street 11, Suite 404, New York, USA";
              options.ContactDetails.EMail = "support@test.dll";
              options.ContactDetails.Name = "123 Corp ltd";

              options.UseSession = false;
              //view located in ~/Views/Shared
              options.Cashing.GeoLocation.SlidingExpiration = TimeSpan.FromMinutes(20);

              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.WebServices.CSPReportUrl = new Uri(Links.CSPViolation, UriKind.Relative);

              // use events to take control
              options.OnEndpointsCreated+= Options_OnEndpointsCreated;
              options.OnFireWallCreated += Options_OnFireWallCreated;

              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.TrustedCrossSiteDomains.AddRange(new[] { new Uri("https://gateway.test.dll", UriKind.Absolute), new Uri("https://support.test.dll", UriKind.Absolute) });
              options.Rules.AllowWhiteListing = false;
              options.Rules.Headers.AddDefaultSecurePolicy()
                                   .AddStrictTransportSecurityNoCache()
                                   .AddXssProtectionBlockAndReport()
                                   .AddContentSecurityPolicyButTrust(trustingSites: Walter.Web.FireWall.TrustingSites.Jquery | Walter.Web.FireWall.TrustingSites.Google
                                             , allowInline: true
                                             , framesPolicy: Walter.Web.FireWall.FramesPolicy.Self);

          })
           .UseGeography(new System.IO.DirectoryInfo("D:\\MaxMind"))
           .UseDiskLogging(options => { options.Directory = @"D:\Firewall"; })
           .UserDatabase(DatabaseConnections.FireWallState)
           .UseFireWallReportingDatabase(DatabaseConnections.FireWall)
           .UseSMTPReportingDatabase(DatabaseConnections.FireWallMail, options =>
            {
                options.Archive = TimeSpan.FromDays(180);
                options.Server = "mail.test.dll";
                options.UserName = "noreply@test.dll";
                options.Password = "123456$even";
                options.Port = 25;
                options.From = "noreply@test.dll";
                options.IgnoreServerCertificateErrors = true;
                options.DefaultEmail = "info@test.dll";
                options.Archive = TimeSpan.FromDays(60);
                options.MailingList.AddRange(new[] {
                 new EMailAddress("Security Admin","security@test.dll") {
                     Frequency= TimeSpan.FromHours(1),
                     Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
                 new EMailAddress("Website Admin","WebMaster@test.dll"){
                     Frequency= TimeSpan.FromHours(1),
                     Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
                  });
            });

       services.AddMvc(options =>
           options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
       );
       services.AddControllersWithViews()
               .AddNewtonsoftJson(options=> {
                   options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                   options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
                   options.SerializerSettings.Formatting = Formatting.Indented;
               });
   }

   private void Options_OnFireWallCreated(Walter.Web.FireWall.IFireWall firewall)
   {
       //get the configurationvar json=  JsonConvert.SerializeObject(firewall.Configuration);//get filenamevar fileName = Path.Combine(new FileInfo(this.GetType().Assembly.Location).DirectoryName,"last known good firewall configuration.json");//tell firewall to write it to disk as uncontrolled changes to disk will raise an incident
       firewall.WriteFile(new FileInfo(fileName), json);

       //Reset all rules in the region licensed to provide content and tell all cookies to ignore that the users where blocked
       firewall.ResetFireWallBlocking(GeoLocation.WESTERN_EUROPE , GeoLocation.NORTH_AMERICA , GeoLocation.Japan, GeoLocation.Taiwan, GeoLocation.NewZealand, GeoLocation.Austria);

       //use own firewall rules
       firewall.OnResourceRequested += ManualValidation;
   }

   private void ManualValidation(object sender, PageCreatedEventArgs e)
   {
       // process my own rules before any filter or middleware is working with the IPageRequest
       e.Request.GuardAction = MyOwnRuleEngine.ProcessPage(e.Request);
   }

   private void Options_OnEndpointsCreated(object sender,  Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
   {
       foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf"))
       {
           item.AllowAddhockAccess = true;
       }

       foreach (var item in e.Links.EndpointsInPath("*.css", "*.png", "*.jpg"))
       {
           item.FirewallDisabled = true;
       }
   }

See Also

EndpointsCreatedEventArgs Members
Walter.Web.FireWall.EventArguments Namespace


EndpointsCreatedEventArgs Members

The EndpointsCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | FireWallConfiguration | Gets the fire wall configuration.
Public property | Links | Gets the endpoints discovered by the firewall.

See Also

EndpointsCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


EndpointsCreatedEventArgs Properties

The EndpointsCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | FireWallConfiguration | Gets the fire wall configuration.
Public property | Links | Gets the endpoints discovered by the firewall.

See Also

EndpointsCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallConfiguration Property

EndpointsCreatedEventArgs..::..FireWallConfiguration Property

Gets the fire wall configuration.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFireWallConfig FireWallConfiguration { get; }

Field Value

The fire wall configuration.

Examples

Use the event to fine-tune rules for static files
C#
private void Options_OnEndpointsCreated(object? sender, Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
   {
       foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf", "*.chm"))
       {
           item.AllowAddhockAccess = true;
           item.FirewallDisabled = true;
       }

       foreach (var item in e.Links.EndpointsInPath("*.css", "*.png", "*.jpg", "*.ico"))
       {
           item.FirewallDisabled = true;
       }
   }

See Also

EndpointsCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Links Property

EndpointsCreatedEventArgs..::..Links Property

Gets the endpoints discovered by the firewall.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IKnownLinks Links { get; }

Field Value

The known links for the firewall.

Examples

Use the event to fine-tune rules for static files
C#
private void Options_OnEndpointsCreated(object? sender, Walter.Web.FireWall.EventArguments.EndpointsCreatedEventArgs e)
   {
       foreach (var item in e.Links.EndpointsInPath("*.zip", "*.pdf", "*.chm"))
       {
           item.AllowAddhockAccess = true;
           item.FirewallDisabled = true;
       }

       foreach (var item in e.Links.EndpointsInPath("*.css", "*.png", "*.jpg", "*.ico"))
       {
           item.FirewallDisabled = true;
       }
   }

See Also

EndpointsCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


ExceptionCaughtEventArgs Class

Event triggered when a process monitored by the firewall Exception Caught. Implements the [System.EventArgs]

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ExceptionCaughtEventArgs

See Also

ExceptionCaughtEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
[System.EventArgs]


ExceptionCaughtEventArgs Members

The ExceptionCaughtEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | ExceptionHandled | Gets or sets a value indicating whether [exception handled].
Public property | ExceptionModel | Gets the exception model.
Public property | Model | The object passed as model to the view rendered with the exception if populated or the view had a model
Public property | Page | Gets the page.
Public property | RedirectToAction | Gets the redirect to action.
Public property | RedirectToController | Gets the redirect to controller.
Public property | TransferModelInRoutDictionary | Gets a value indicating whether to transfer model in rout dictionary (only simple models supported work).

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


ExceptionCaughtEventArgs Properties

The ExceptionCaughtEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | ExceptionHandled | Gets or sets a value indicating whether [exception handled].
Public property | ExceptionModel | Gets the exception model.
Public property | Model | The object passed as model to the view rendered with the exception if populated or the view had a model
Public property | Page | Gets the page.
Public property | RedirectToAction | Gets the redirect to action.
Public property | RedirectToController | Gets the redirect to controller.
Public property | TransferModelInRoutDictionary | Gets a value indicating whether to transfer model in rout dictionary (only simple models supported work).

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


ExceptionHandled Property

ExceptionCaughtEventArgs..::..ExceptionHandled Property

Gets or sets a value indicating whether [exception handled].

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ExceptionHandled { get; set; }

Field Value

true if [exception handled]; otherwise, false.

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


ExceptionModel Property

ExceptionCaughtEventArgs..::..ExceptionModel Property

Gets the exception model.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ViewResult ExceptionModel { get; }

Field Value

The exception model.

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Model Property

ExceptionCaughtEventArgs..::..Model Property

The object passed as model to the view rendered with the exception if populated or the view had a model

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Object> Model { get; }

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Page Property

ExceptionCaughtEventArgs..::..Page Property

Gets the page.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Page { get; }

Field Value

The page.

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


RedirectToAction Property

ExceptionCaughtEventArgs..::..RedirectToAction Property

Gets the redirect to action.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectToAction { get; set; }

Field Value

The redirect to action.

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


RedirectToController Property

ExceptionCaughtEventArgs..::..RedirectToController Property

Gets the redirect to controller.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectToController { get; set; }

Field Value

The redirect to controller.

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


TransferModelInRoutDictionary Property

ExceptionCaughtEventArgs..::..TransferModelInRoutDictionary Property

Gets a value indicating whether to transfer model in rout dictionary (only simple models supported work).

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TransferModelInRoutDictionary { get; set; }

Field Value

true if to transfer model in rout dictionary; otherwise, false.

Remarks

You can store the model in memory using the firewall user and pick it up and remove it from [IMemoryCache] if enabled in your application

See Also

ExceptionCaughtEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallCookieIncidentEventArgs Class

Class FireWallCookieIncidentEventArgs. Implements the FireWallIncidentEventArgs

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class FireWallCookieIncidentEventArgs : FireWallIncidentEventArgs

Inheritance Hierarchy

Walter.Web.FireWall.EventArguments..::..FireWallIncidentEventArgs
Walter.Web.FireWall.EventArguments..::..FireWallCookieIncidentEventArgs

See Also

FireWallCookieIncidentEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
Walter.Web.FireWall.EventArguments..::..FireWallIncidentEventArgs


FireWallCookieIncidentEventArgs Members

The FireWallCookieIncidentEventArgs type exposes the following members.

Constructors

 | Name | Description
Public method | FireWallCookieIncidentEventArgs | Initializes a new instance of the FireWallCookieIncidentEventArgs class.

Properties

 | Name | Description
Public property | AllowRaiseIncident | Leave it on true if you would like to allow to happen, set it to the default false if you like to prevent the firewall from creating an incident (Inherited from FireWallIncidentEventArgs.)
Public property | CookiePoisoning | Access the cookie poisoning session data.
Public property | Data | Access the data that caused, and is considered to be out of allowed range for the request as specified on the endpoint's configuration. (Inherited from FireWallIncidentEventArgs.)
Public property | Page | access to the page and all it's properties. (Inherited from FireWallIncidentEventArgs.)
Public property | PoisonedCookies | Gets the poisoned cookies.
Public property | StackEntry | Access the stack entry describing the incident (Inherited from FireWallIncidentEventArgs.)
Public property | UserAgent | Gets the user agent used in this request.

See Also

FireWallCookieIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallCookieIncidentEventArgs Constructor

Initializes a new instance of the FireWallCookieIncidentEventArgs class.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallCookieIncidentEventArgs(
    FireWallStackItem item,
    IPageRequest page
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..FireWallStackItem
The item.
page
Type: Walter.Web.FireWall..::..IPageRequest
The page.

See Also

FireWallCookieIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallCookieIncidentEventArgs Properties

The FireWallCookieIncidentEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | AllowRaiseIncident | Leave it on true if you would like to allow to happen, set it to the default false if you like to prevent the firewall from creating an incident (Inherited from FireWallIncidentEventArgs.)
Public property | CookiePoisoning | Access the cookie poisoning session data.
Public property | Data | Access the data that caused, and is considered to be out of allowed range for the request as specified on the endpoint's configuration. (Inherited from FireWallIncidentEventArgs.)
Public property | Page | access to the page and all it's properties. (Inherited from FireWallIncidentEventArgs.)
Public property | PoisonedCookies | Gets the poisoned cookies.
Public property | StackEntry | Access the stack entry describing the incident (Inherited from FireWallIncidentEventArgs.)
Public property | UserAgent | Gets the user agent used in this request.

See Also

FireWallCookieIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


CookiePoisoning Property

FireWallCookieIncidentEventArgs..::..CookiePoisoning Property

Access the cookie poisoning session data.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ICookiePoisoningRuleEngine CookiePoisoning { get; }

Field Value

The cookie poisoning.

See Also

FireWallCookieIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


PoisonedCookies Property

FireWallCookieIncidentEventArgs..::..PoisonedCookies Property

Gets the poisoned cookies.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<PoisonedCookie> PoisonedCookies { get; }

Field Value

The poisoned cookies.

See Also

FireWallCookieIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


UserAgent Property

FireWallCookieIncidentEventArgs..::..UserAgent Property

Gets the user agent used in this request.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IUserAgent UserAgent { get; }

Field Value

The user agent.

Remarks

See the user agent associated credibility via the MetaData

See Also

FireWallCookieIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace
IUserAgent..::..MetaData


FireWallCreatedEventArgs Class

Class FireWallCreatedEventArgs. This class cannot be inherited. Implements the [System.EventArgs]

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallCreatedEventArgs

See Also

FireWallCreatedEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
[System.EventArgs]


FireWallCreatedEventArgs Members

The FireWallCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | FireWall | Gets access to the fire wall that has been created.

See Also

FireWallCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallCreatedEventArgs Properties

The FireWallCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | FireWall | Gets access to the fire wall that has been created.

See Also

FireWallCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWall Property

FireWallCreatedEventArgs..::..FireWall Property

Gets access to the fire wall that has been created.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFireWall FireWall { get; }

Field Value

The firewall.

See Also

FireWallCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallDiskManipulationEventArgs Class

Event arguments raised by the firewall when disk manipulations has been discovered

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class FireWallDiskManipulationEventArgs

Remarks

This argument allows you to perform a choice of actions the firewall will do for all future requests

Examples

The following code shows how to use the firewall to send an mail (if mail add-on installed) when a change on disk is detected by a application that is actually communicating via the network. This could be RemoteDesktop WinVCM or TeamViewer, Telnet, FTP etc.
C#
 private void MyFireWall_OnDiskManipulation(object sender, DiskManipulationEventArgs e)
 {
     foreach (var item in e.Violation.Talking)
     {
         if (item.tcpRecord.Scope == Walter.Net.Networking.CommunicationScopes.WAN)
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with external communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);
         }
         else
         {
             (this as IFireWall).SendEmail(EMailRoles.SecurityRelevant
                                         , "A file change with internal communication was detected"
                                         , MakeEmailBody(item.tcpRecord.Scope,e.Violation.ExecutingBinary, item.tcpRecord.RemoteAddress)
                                         , true);

         }
     }
     e.Action = ApplicationCompromisedActions.ShutDown | ApplicationCompromisedActions.PersistOnReboot;
 }

 private string MakeEmailBody(Walter.Net.Networking.CommunicationScopes scope,string executingBinary, IPAddress remoteAddress)
 {
    private string MakeEmailBody(Walter.Net.Networking.CommunicationScope scope,string executingBinary, IPAddress remoteAddress)
    {
        if (scope == Walter.Net.Networking.CommunicationScopes.WAN)
        {
            var map = _geo.QueryMapLocation(remoteAddress);
            var whois = Whois(remoteAddress);
            return @"
            <p>
                We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}
            </p><p>
                While capturing the issue we recorded the IP coming from {City} - {Country} <a hfref="{Link}">google maps link</a></p><p>The IP address is managed by :<br />
                {WhoIs}
            </p>
             ".Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                .Replace("{City}", map.City, StringComparison.OrdinalIgnoreCase)
                .Replace("{Country}", map.Country, StringComparison.OrdinalIgnoreCase)
                .Replace("{Link}", map.GoogleMapLocation().AbsoluteUri, StringComparison.OrdinalIgnoreCase)
                .Replace("{WhoIs}", whois.ToHtml(), StringComparison.OrdinalIgnoreCase);
        }

        return  @"<p> We have detected a disk change by {ApplicationPath} from IP address: {IPAddress}-{scope}</p>"
                   .Replace("{ApplicationPath}", executingBinary, StringComparison.OrdinalIgnoreCase)
                   .Replace("{IPAddress}", remoteAddress.ToString(), StringComparison.OrdinalIgnoreCase)
                   .Replace("{Scope}",scope.ToString(),StringComparison.OrdinalIgnoreCase);
     }
   }
}

See Also

FireWallDiskManipulationEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
[Walter.IO.IDiskGuard]


FireWallDiskManipulationEventArgs Members

The FireWallDiskManipulationEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Action | the action to perform
Public property | Changed | The violation discovered enriched with information that started the process

See Also

FireWallDiskManipulationEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallDiskManipulationEventArgs Properties

The FireWallDiskManipulationEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Action | the action to perform
Public property | Changed | The violation discovered enriched with information that started the process

See Also

FireWallDiskManipulationEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Action Property

FireWallDiskManipulationEventArgs..::..Action Property

the action to perform

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ApplicationCompromisedActions Action { get; set; }

See Also

FireWallDiskManipulationEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Changed Property

FireWallDiskManipulationEventArgs..::..Changed Property

The violation discovered enriched with information that started the process

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallDiskViolation Changed { get; }

See Also

FireWallDiskManipulationEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallIncidentEventArgs Class

The Guard event that's being raised by the firewall when the firewall is about to create an incident allowing you to intervene

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class FireWallIncidentEventArgs

Examples

You can use the firewall to test and see if you are using routs that would cause your application to block valid requests. This way you can update your blocking patterns to match valid and invalid rules.

It is always recommended to not use default routs as all bot's are scripted to use those and the fastest way to detect a malicious user is by having a honey pot or a default not implemented

C#
private void FireWall_OnIncident(object sender, FireWallIncidentEventArgs e)
   {
       switch (e.StackEntry.Reason)
       {
           case Walter.BOM.FirewallBlockReasons.PenetrationAttempt:
               if (Enum.TryParse<Walter.Web.FireWall.RuleEngine.UrlValidatedResult>(e.Data[IncidentAssertType.RuleNr], out var list))
               {
                   _logger?.Lazy().LogCritical("Url triggered {pattern} in {location} in Configuration.Rules.blockedPatterns.{list}"
                       , e.Data[IncidentAssertType.Pattern]
                       , e.Data[IncidentAssertType.Location]
                       , list);
                   LogTodo<ConfigurationTasks>(ConfigurationTasks.UrlNotValid
                       , $"Update Configuration.Rules.blockedPatterns.{list} on {e.Data[IncidentAssertType.Pattern]} at the {e.Data[IncidentAssertType.Location]} in URL{e.Page.OriginalUrl}"
                       , false);
               }

               break;
           default:
               base.LogTodo<ConfigurationTasks>(ConfigurationTasks.Setup, message: $"Test Rule \"{e.StackEntry.Rule}\" on {e.Page.OriginalUrl}", optional: true);
               break;
       }
   }

See Also

FireWallIncidentEventArgs Members
Walter.Web.FireWall.EventArguments Namespace


FireWallIncidentEventArgs Members

The FireWallIncidentEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | AllowRaiseIncident | Leave it on true if you would like to allow to happen, set it to the default false if you like to prevent the firewall from creating an incident
Public property | Data | Access the data that caused, and is considered to be out of allowed range for the request as specified on the endpoint's configuration.
Public property | Page | access to the page and all it's properties.
Public property | StackEntry | Access the stack entry describing the incident

See Also

FireWallIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallIncidentEventArgs Properties

The FireWallIncidentEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | AllowRaiseIncident | Leave it on true if you would like to allow to happen, set it to the default false if you like to prevent the firewall from creating an incident
Public property | Data | Access the data that caused, and is considered to be out of allowed range for the request as specified on the endpoint's configuration.
Public property | Page | access to the page and all it's properties.
Public property | StackEntry | Access the stack entry describing the incident

See Also

FireWallIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


AllowRaiseIncident Property

FireWallIncidentEventArgs..::..AllowRaiseIncident Property

Leave it on true if you would like to allow to happen, set it to the default false if you like to prevent the firewall from creating an incident

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowRaiseIncident { get; set; }

Field Value

true if allow; otherwise, false.

Remarks

By setting it to false you will also say that no issue is detected and this can harm other protection pattern recognitions. If you use events, then you are responsible to set it to true and allowing the firewall to block the request

Examples

before going live you can use the event to document rules that are capturing false positives.
C#
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
   {
       _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
           , e.Page.Method
           , e.Page.OriginalUrl.AbsolutePath
           , e.Page.FireWallRoute
           , e.StackEntry.Rule
           , e.StackEntry.RuleNr
           , e.StackEntry.Reason
           , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
           );

       e.AllowRaiseIncident = false;
   }

See Also

FireWallIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace
RulesConfig..::..TolerateMaximumViolations
RulesConfig..::..TolerateMaximumViolationsIn


Data Property

FireWallIncidentEventArgs..::..Data Property

Access the data that caused, and is considered to be out of allowed range for the request as specified on the endpoint's configuration.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<IncidentAssertType, string> Data { get; }

Field Value

The data.

Examples

before going live you can use the event to document rules that are capturing false positives.
C#
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
   {
       _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
           , e.Page.Method
           , e.Page.OriginalUrl.AbsolutePath
           , e.Page.FireWallRoute
           , e.StackEntry.Rule
           , e.StackEntry.RuleNr
           , e.StackEntry.Reason
           , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
           );

       e.AllowRaiseIncident = false;
   }

See Also

FireWallIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Page Property

FireWallIncidentEventArgs..::..Page Property

access to the page and all it's properties.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Page { get; }

Field Value

The page involved.

Remarks

At this point in time there is no decision on the action to recommend, at this time you can cancel the incident, no incident no blocking or redirecting

Examples

before going live you can use the event to document rules that are capturing false positives.
C#
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
   {
       _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
           , e.Page.Method
           , e.Page.OriginalUrl.AbsolutePath
           , e.Page.FireWallRoute
           , e.StackEntry.Rule
           , e.StackEntry.RuleNr
           , e.StackEntry.Reason
           , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
           );

       e.AllowRaiseIncident = false;
   }

See Also

FireWallIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace
IFireWall..::..OnGuardAction
IFireWall..::..OnIncident


StackEntry Property

FireWallIncidentEventArgs..::..StackEntry Property

Access the stack entry describing the incident

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallStackItem StackEntry { get; }

Remarks

The stack contains detailed information what issue raised the event

Examples

before going live you can use the event to document rules that are capturing false positives.
C#
private void MyFireWall_OnIncident(object? sender, Walter.Web.FireWall.EventArguments.FireWallIncidentEventArgs e)
   {
       _logger?.Lazy().LogCritical("{Method} {page} : {route}\n   {rule}:{RuleNr}\n   Reasons:{Reason}\n   {data}"
           , e.Page.Method
           , e.Page.OriginalUrl.AbsolutePath
           , e.Page.FireWallRoute
           , e.StackEntry.Rule
           , e.StackEntry.RuleNr
           , e.StackEntry.Reason
           , string.Join("\n   ", e.Data.Select(s => $"{s.Key}:{s.Value}"))
           );

       e.AllowRaiseIncident = false;
   }

See Also

FireWallIncidentEventArgs Class
Walter.Web.FireWall.EventArguments Namespace
IPageRequest..::..ViolationsStack


FireWallResetEventArgs Class

Class FireWallResetEventArgs is used in the FireWall reset command and will be triggered when a reset command has executed Implements the [System.EventArgs]

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallResetEventArgs

See Also

FireWallResetEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
[System.EventArgs]


FireWallResetEventArgs Members

The FireWallResetEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Meta | Gets the meta of a reset command.

See Also

FireWallResetEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


FireWallResetEventArgs Properties

The FireWallResetEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Meta | Gets the meta of a reset command.

See Also

FireWallResetEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Meta Property

FireWallResetEventArgs..::..Meta Property

Gets the meta of a reset command.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IAppliedResetRule Meta { get; }

Field Value

The meta.

See Also

FireWallResetEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


GuardActionEventArgs Class

Guard events being raised by the firewall when an GuardAction is anything but NoAction

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class GuardActionEventArgs

Examples

You can interact with the action based on your own application work-flows. the bellow sample shows that users that are found to be spoofing are blocked for at-least 1 year
C#
private void FireWall_OnGuardAction(object sender, GuardActionEventArgs e)
   {
       if (e.Page.User.AsFirewallUser().IsSpoofing)
       {
           foreach (var item in e.Page.Incidents())
           {
               item.Expires = DateTime.UtcNow.AddDays(300);
           }
       }
       e.AllowGuardAction = true;
   }

See Also

GuardActionEventArgs Members
Walter.Web.FireWall.EventArguments Namespace


GuardActionEventArgs Members

The GuardActionEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Action | The guard action being recommended by the firewall
Public property | AllowGuardAction | Set to true if you would like to allow the firewall to execute the recommended guard action, leave it to the default false if you like to prevent it from happening.
Public property | BlockTill | Gets or sets the "block till" date for the user. If A hard block was already set then this property reflects that data
Public property | Page | The Page that triggered the action
Public property | ReturnLegalNotice | Gets or sets the text you would like to return as a legal notice.
Public property | ReturnPayload | Gets or sets the return payload to a malicious attack (offensive response).

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


GuardActionEventArgs Properties

The GuardActionEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Action | The guard action being recommended by the firewall
Public property | AllowGuardAction | Set to true if you would like to allow the firewall to execute the recommended guard action, leave it to the default false if you like to prevent it from happening.
Public property | BlockTill | Gets or sets the "block till" date for the user. If A hard block was already set then this property reflects that data
Public property | Page | The Page that triggered the action
Public property | ReturnLegalNotice | Gets or sets the text you would like to return as a legal notice.
Public property | ReturnPayload | Gets or sets the return payload to a malicious attack (offensive response).

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Action Property

GuardActionEventArgs..::..Action Property

The guard action being recommended by the firewall

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GuardAction Action { get; }

Remarks

This is the recommendation for the given request, you can't change it but you can prevent it by setting AllowGuardAction to false (not the default)

If you like a redirect rather than a you need to update the annotation of your endpoint using the redirect rule you intend to be applied. The Violation stack contains the Modules that raised a incident, these modules would need to be provided with a redirect configuration.

Examples

You can interact with the action based on your own application work-flows. the bellow sample shows that users that are found to be spoofing are blocked for at-least 1 year
C#
private void FireWall_OnGuardAction(object sender, GuardActionEventArgs e)
   {
       if (e.Page.User.AsFirewallUser().IsSpoofing)
       {
           foreach (var item in e.Page.Incidents())
           {
               item.Expires = DateTime.UtcNow.AddDays(300);
           }
       }
       e.AllowGuardAction = true;
   }

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace
IPageRequest..::..ViolationsStack


AllowGuardAction Property

GuardActionEventArgs..::..AllowGuardAction Property

Set to true if you would like to allow the firewall to execute the recommended guard action, leave it to the default false if you like to prevent it from happening.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowGuardAction { get; set; }

Remarks

By not setting it to true you will also say that no issue is detected and this can harm other protection pattern recognitions. If you use events, then you are responsible to set it to true and allowing the firewall to block the request

Examples

You can interact with the action based on your own application work-flows. the bellow sample shows that users that are found to be spoofing are blocked for at-least 1 year
C#
private void FireWall_OnGuardAction(object sender, GuardActionEventArgs e)
   {
       if (e.Page.User.AsFirewallUser().IsSpoofing)
       {
           foreach (var item in e.Page.Incidents())
           {
               item.Expires = DateTime.UtcNow.AddDays(300);
           }
       }
       e.AllowGuardAction = true;
   }

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


BlockTill Property

GuardActionEventArgs..::..BlockTill Property

Gets or sets the "block till" date for the user. If A hard block was already set then this property reflects that data

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> BlockTill { get; set; }

Field Value

The block till date.

Remarks

The assigning of a block till date allows you to work with the block date as blocking may vary on the incidents and the number of incidents and the number of each type of incidents you will tolerate. Not assigning a value will use the rules on the endpoints, overwriting the value will cause a hard-block

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Page Property

GuardActionEventArgs..::..Page Property

The Page that triggered the action

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Page { get; }

Remarks

Interesting in this context is the data collected in the ViolationsStack as it contains a stack-trace like list of violations in this page

Examples

You can use the firewall to test your rules before taking the firewall into production by recording all blocking events
C#
private void MyFireWall_OnGuardAction(object? sender, Walter.Web.FireWall.EventArguments.GuardActionEventArgs e)
   {
       e.AllowGuardAction = false;
       _logger?.Lazy().LogCritical("{Method} {page} : {route}\n\t{action}:{RuleNr}\n\tReasons:{Reason}\n\t{data}"
           , e.Page.Method
           , e.Page.OriginalUrl.AbsolutePath
           , e.Page.FireWallRoute
           , e.Action
           , string.Join("\n\t\t", e.Page.ViolationsStack.Select(s => s.ToString()))
           );
   }

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace
IPageRequest..::..ViolationsStack
IPageRequest..::..RootPage


ReturnLegalNotice Property

GuardActionEventArgs..::..ReturnLegalNotice Property

Gets or sets the text you would like to return as a legal notice.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ReturnLegalNotice { get; set; }

Field Value

The return legal notice.

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


ReturnPayload Property

GuardActionEventArgs..::..ReturnPayload Property

Gets or sets the return payload to a malicious attack (offensive response).

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<FileInfo> ReturnPayload { get; set; }

Field Value

The return payload.

See Also

GuardActionEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


InterceptChangedEventArgs Class

Class InterceptChangedEventArgs. This class cannot be inherited. Implements the [System.EventArgs]

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class InterceptChangedEventArgs

See Also

Walter.Web.FireWall.EventArguments Namespace
[System.EventArgs]


PageCreatedEventArgs Class

Page event that is raised by the firewall when resource is being requested

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class PageCreatedEventArgs

Remarks

Page requests can serve multiple types of data, not just web pages, the are used when ever a request is served by the web service

See Also

PageCreatedEventArgs Members
Walter.Web.FireWall.EventArguments Namespace


PageCreatedEventArgs Members

The PageCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Request | The page request generated before any filter or middleware had the ability to process it

See Also

PageCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


PageCreatedEventArgs Properties

The PageCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Request | The page request generated before any filter or middleware had the ability to process it

See Also

PageCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Request Property

PageCreatedEventArgs..::..Request Property

The page request generated before any filter or middleware had the ability to process it

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Request { get; }

Remarks

page requests can serve multiple types of data, not just web pages, the are used when ever a request is served by the web service

See Also

PageCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


PageSendEventArgs Class

Page event that is raised by the firewall when resource has been send

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class PageSendEventArgs

Remarks

Page requests can serve multiple types of data, not just web pages, the are used when ever a request is served by the web service.

the IPageRequest is a ideal hook to park process issues on by adding any exceptions that occur during the processing of your request to the IPageRequest.Exception property. if more then 1 error was assigned to the property they will be added to the IPageRequest.Exceptions list where IPageRequest.Exception is always the last exception that was added to the page request

See Also

PageSendEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
Walter.Web.FireWall..::..IPageRequest


PageSendEventArgs Members

The PageSendEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Request | The page request generated before any filter or middleware had the ability to process it

See Also

PageSendEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


PageSendEventArgs Properties

The PageSendEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Request | The page request generated before any filter or middleware had the ability to process it

See Also

PageSendEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Request Property

PageSendEventArgs..::..Request Property

The page request generated before any filter or middleware had the ability to process it

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Request { get; }

Remarks

page requests can serve multiple types of data, not just web pages, the are used when ever a request is served by the web service

See Also

PageSendEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


PhishyRequestEventArgs Class

Argument used when a Phishy Request is considered, a phishy request is a request that is processed by your web application that resulted from a URL that is unknown to the firewall

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class PhishyRequestEventArgs

Examples

Assuming the firewall using the SMTP NuGet package we use the NuGet package extension method to send a email to the configured developers mailbox for those that are responsible for security
C#
private void MyFireWall_OnPhishyRequest(object sender, PhishyRequestEventArgs e)
{
    e.IgnoreForNow = true;
    (sender as IFireWall)?.SendEmail(EMailRoles.SecurityRelevant, $"URL {e.Request.OriginalUrl.PathAndQuery} phishy", $"Consider protection for {e.Request.OriginalUrl.PathAndQuery} on {e.Request}", false);
}

See Also

PhishyRequestEventArgs Members
Walter.Web.FireWall.EventArguments Namespace


PhishyRequestEventArgs Members

The PhishyRequestEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | CreateIncident | If false then it will instruct the firewall not to create a incident for the phishy request
Public property | IgnoreForNow | If set to true, it will instruct the firewall that no more reporting regarding this URL is needed for the duration of the firewall session.
Public property | Request | The requested page that does not seem to have a protected or supported endpoint
Public property | SiteMapSearch | SiteMap search status for the phishy request

See Also

PhishyRequestEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


PhishyRequestEventArgs Properties

The PhishyRequestEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | CreateIncident | If false then it will instruct the firewall not to create a incident for the phishy request
Public property | IgnoreForNow | If set to true, it will instruct the firewall that no more reporting regarding this URL is needed for the duration of the firewall session.
Public property | Request | The requested page that does not seem to have a protected or supported endpoint
Public property | SiteMapSearch | SiteMap search status for the phishy request

See Also

PhishyRequestEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


CreateIncident Property

PhishyRequestEventArgs..::..CreateIncident Property

If false then it will instruct the firewall not to create a incident for the phishy request

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool CreateIncident { get; set; }

Remarks

The default value will be set to true if the SiteMapSearch is NotEvaluated or NotFound.

See Also

PhishyRequestEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


IgnoreForNow Property

PhishyRequestEventArgs..::..IgnoreForNow Property

If set to true, it will instruct the firewall that no more reporting regarding this URL is needed for the duration of the firewall session.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IgnoreForNow { get; set; }

Remarks

Note that the same URL can be submitted with a different header or query parameters, setting IgnoreForNow to true may cause the firewall to remain silent

See Also

PhishyRequestEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Request Property

PhishyRequestEventArgs..::..Request Property

The requested page that does not seem to have a protected or supported endpoint

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPageRequest Request { get; }

See Also

PhishyRequestEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


SiteMapSearch Property

PhishyRequestEventArgs..::..SiteMapSearch Property

SiteMap search status for the phishy request

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapSearchResult SiteMapSearch { get; }

See Also

PhishyRequestEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


RootPageDisposedEventArgs Class

This class is used when the firewall releases a IPageRequest if the request is a root request.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class RootPageDisposedEventArgs : PageSendEventArgs

Remarks

The firewall will invoke OnRootPageRequestDisposed and allows the consumer of the event the possibility to access the properties of the IPageRequest

Inheritance Hierarchy

Walter.Web.FireWall.EventArguments..::..PageSendEventArgs
Walter.Web.FireWall.EventArguments..::..RootPageDisposedEventArgs

See Also

RootPageDisposedEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
IPageRequest..::..RootPage
FireWallBase..::..OnRootPageRequestDisposed


RootPageDisposedEventArgs Members

The RootPageDisposedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Request | The page request generated before any filter or middleware had the ability to process it (Inherited from PageSendEventArgs.)

See Also

RootPageDisposedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


RootPageDisposedEventArgs Properties

The RootPageDisposedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Request | The page request generated before any filter or middleware had the ability to process it (Inherited from PageSendEventArgs.)

See Also

RootPageDisposedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


RulesCreatedEventArgs Class

Event triggered when the rules have been applied before the rules are used to generate endpoint protection defaults

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class RulesCreatedEventArgs

Remarks

Use this event to apply advanced runtime configuration to the firewall rules

Examples

The following code show how to update the pattern to allow access to the default .net default membership path "/Identity/Account/"
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.DomainKey
          , domainName: new Uri("https://www.your-domain.com", UriKind.Absolute)
          , options =>{
            options.OnRulesCreated+=(sender, rules)=> {
                rules.BlockedPatterns.NoPublicAccessToAdministration.Remove("/Identity/Account/")
                };
           });

See Also

RulesCreatedEventArgs Members
Walter.Web.FireWall.EventArguments Namespace


RulesCreatedEventArgs Members

The RulesCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Rules | The rules populated with the defaults or the values bound from IConfiguration

See Also

RulesCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


RulesCreatedEventArgs Properties

The RulesCreatedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Rules | The rules populated with the defaults or the values bound from IConfiguration

See Also

RulesCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Rules Property

RulesCreatedEventArgs..::..Rules Property

The rules populated with the defaults or the values bound from IConfiguration

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RulesConfig Rules { get; }

Remarks

Making changes to the rules will effect the firewall's default values as applied in the RuleEngine and endpoint protection for known links

See Also

RulesCreatedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


UserTypeChangedEventArgs Class

Class UserTypeChangedEventArgs is triggered when the firewall detects a user group association change. Implements the EventArgs

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class UserTypeChangedEventArgs

Examples

The bellow sample assumes that you are using a ILogger instance to document the changes and that we never block a search engine as behaving badly
C#
private void MyFireWall_OnUserTypeChange(object? sender, UserTypeChangedEventArgs e)
   {
       _logger?.Lazy().LogDebug("User is being changed from {oldType} to {newType}\n  Route: {route}\n   Rules:\n   Data: {data}"
           , e.OriginalType
           , e.NewType
           , e.Rout
           , string.Join("\n   ", e.Rules)
           );

       //allow the change
       e.AllowRaiseIncident = true;

       if (e.OriginalType.HasFlag(UserTypes.IsSearchEngine) && e.NewType.HasFlag(UserTypes.IsMalicious))
       {
           //remove the malicious flag from search engines to not prevent search engines from
           //indexing the site
           e.NewType &= ~UserTypes.IsMalicious;
       }
   }

See Also

UserTypeChangedEventArgs Members
Walter.Web.FireWall.EventArguments Namespace
EventArgs
UserTypes user classification
OnUserTypeChange event


UserTypeChangedEventArgs Members

The UserTypeChangedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Allow | Set to true if you would like to allow to happen, set it to the false if you like to prevent it.
Public property | Module | Gets the module used to evaluate the rules.
Public property | NewType | The type of user that is being projected based on the rules executed
Public property | OriginalType | Gets the user group that the request had assigned to the user before the evaluation took place.
Public property | Rout | Gets the firewall rout that was evaluated.
Public property | Rules | Gets the rule names that have been evaluated.
Public property | Url | The URL of the request that was being processed when the user change was detected
Public property | User | The user being changed

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


UserTypeChangedEventArgs Properties

The UserTypeChangedEventArgs type exposes the following members.

Properties

 | Name | Description
Public property | Allow | Set to true if you would like to allow to happen, set it to the false if you like to prevent it.
Public property | Module | Gets the module used to evaluate the rules.
Public property | NewType | The type of user that is being projected based on the rules executed
Public property | OriginalType | Gets the user group that the request had assigned to the user before the evaluation took place.
Public property | Rout | Gets the firewall rout that was evaluated.
Public property | Rules | Gets the rule names that have been evaluated.
Public property | Url | The URL of the request that was being processed when the user change was detected
Public property | User | The user being changed

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Allow Property

UserTypeChangedEventArgs..::..Allow Property

Set to true if you would like to allow to happen, set it to the false if you like to prevent it.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Allow { get; set; }

Remarks

user type detection is an important part of how the firewall deals with maliciose users, the decission of preventing a assignment should be well thought over. Look at the rules that where triggered that caused the evaluation

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Module Property

UserTypeChangedEventArgs..::..Module Property

Gets the module used to evaluate the rules.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Module { get; }

Field Value

The module.

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


NewType Property

UserTypeChangedEventArgs..::..NewType Property

The type of user that is being projected based on the rules executed

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes NewType { get; set; }

Field Value

The new type to apply.

Remarks

You can alter the type that will be applied by changing the value here

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


OriginalType Property

UserTypeChangedEventArgs..::..OriginalType Property

Gets the user group that the request had assigned to the user before the evaluation took place.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes OriginalType { get; }

Field Value

The type of the original.

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Rout Property

UserTypeChangedEventArgs..::..Rout Property

Gets the firewall rout that was evaluated.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DiscoveredRout> Rout { get; }

Field Value

The rout.

Remarks

Can be null if the request is of a 404 or no firewall endpoint was discovered for this url

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Rules Property

UserTypeChangedEventArgs..::..Rules Property

Gets the rule names that have been evaluated.

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<string> Rules { get; }

Field Value

The rules.

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Url Property

UserTypeChangedEventArgs..::..Url Property

The URL of the request that was being processed when the user change was detected

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri Url { get; }

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


User Property

UserTypeChangedEventArgs..::..User Property

The user being changed

Namespace: Walter.Web.FireWall.EventArguments
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFirewallUser User { get; }

See Also

UserTypeChangedEventArgs Class
Walter.Web.FireWall.EventArguments Namespace


Walter.Web.FireWall.Filters Namespace

Classes

 | Class | Description
Public class | BlockBotsFilter | Block Bots filter will reject all requests where the user was identified as being a BOT
Public class | BlockMaliciousUserFilter | Block Malicious user filter will reject all requests where the user was identified as being a BOT
Public class | CrossSiteFilter | Cross site filter will reject all cross site requests
Public class | FishingFilter | Used to capture a sort of activity where you try and post exceptions till you find a vulnerability in the system either by getting an answer by the system or by the system providing an error message leaking a vulnerability
Public class | PrivacyPreferencesFilter | This filter will inject the P3P header in your browser
Public class | ProtectorBase | The base class used by the FireWall Action Filters.
Public class | SecureCookiesFilter | Filter that can be used to ensure cookies are secured using GDPR compliant encryption

Enumerations

 | Enumeration | Description
Public enumeration | FireWallGuardActions | Enumerable that contains FireWall Guard Module names.
Public enumeration | SiteMapSearchResultFilter | Filter status for SiteMapAttribute


BlockBotsFilter Class

Block Bots filter will reject all requests where the user was identified as being a BOT

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BlockBotsFilter : UserBasedFilter

Remarks

This filter does not allow endpoint configurations, to configure user based filtering and by allowing exceptions use the User attribute annotation.

Depending on the license you can use events to manually control if a request is blocked

Examples

Register the firewall for always on configuration using only service settings and reject all cross site requests
C#
services.AddFireWall("License Token", "Domain key"
       , domainName: new Uri("https://www.mydomain.dll", UriKind.Absolute)
       , options =>
       {
           options.Cypher.ApplicationPassword = "123456$even";
           options.ApplicationName = "Test domain";
           options.ApplicationTag = "ITIL-9981771";
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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);
   });

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.CrossSiteFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.BlockBotsFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.BlockMaliciouseUserFilter>()
   );

Inheritance Hierarchy

ReportingFilter
UserBasedFilter
Walter.Web.FireWall.Filters..::..BlockBotsFilter

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

BlockBotsFilter Members
Walter.Web.FireWall.Filters Namespace
Walter.Web.FireWall.Annotations..::..UsersAttribute
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration


BlockBotsFilter Members

The BlockBotsFilter type exposes the following members.

Methods

 | Name | Description
Public method | OnAuthorization | (Inherited from UserBasedFilter.)

See Also

BlockBotsFilter Class
Walter.Web.FireWall.Filters Namespace


BlockBotsFilter Methods

The BlockBotsFilter type exposes the following members.

Methods

 | Name | Description
Public method | OnAuthorization | (Inherited from UserBasedFilter.)

See Also

BlockBotsFilter Class
Walter.Web.FireWall.Filters Namespace


BlockMaliciousUserFilter Class

Block Malicious user filter will reject all requests where the user was identified as being a BOT

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BlockMaliciousUserFilter : UserBasedFilter

Remarks

This filter does not allow endpoint configurations, to configure user based filtering and by allowing exceptions use the UsersAttribute annotation.

Depending on the license you can use events to manually control if a request is blocked

Examples

Register the firewall for always on configuration using only service settings and reject all cross site requests
C#
services.AddFireWall("License Token", "Domain key"
       , domainName: new Uri("https://www.mydomain.dll", UriKind.Absolute)
       , options =>
       {
           options.Cypher.ApplicationPassword = "123456$even";
           options.ApplicationName = "Test domain";
           options.ApplicationTag = "ITIL-9981771";
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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);
   });

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.CrossSiteFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.BlockBotsFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.BlockMaliciouseUserFilter>()
   );

Inheritance Hierarchy

ReportingFilter
UserBasedFilter
Walter.Web.FireWall.Filters..::..BlockMaliciousUserFilter

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

BlockMaliciousUserFilter Members
Walter.Web.FireWall.Filters Namespace
IFireWall.OnGuardAction: Will be raised if the firewall considers blocking and allows you to override the blocking action
IFireWall.OnIncident: Will be raised if the firewall considers generating an incident and allows you to override the incident registration
Walter.Web.FireWall.Annotations..::..UsersAttribute


BlockMaliciousUserFilter Members

The BlockMaliciousUserFilter type exposes the following members.

Methods

 | Name | Description
Public method | OnAuthorization | (Inherited from UserBasedFilter.)

See Also

BlockMaliciousUserFilter Class
Walter.Web.FireWall.Filters Namespace


BlockMaliciousUserFilter Methods

The BlockMaliciousUserFilter type exposes the following members.

Methods

 | Name | Description
Public method | OnAuthorization | (Inherited from UserBasedFilter.)

See Also

BlockMaliciousUserFilter Class
Walter.Web.FireWall.Filters Namespace


CrossSiteFilter Class

Cross site filter will reject all cross site requests

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CrossSiteFilter : ReportingFilter

Remarks

This filter does not allow any based on the endpoint configurations, to configure cross-site by allowing exceptions use the CrossSiteAttribute annotation

Depending on the license you can use events to manually control if a request is blocked

Examples

Register the firewall for always on configuration using only service settings and reject all cross site requests
C#
services.AddFireWall("License Token", "Domain key"
       , domainName: new Uri("https://www.mydomain.dll", UriKind.Absolute)
       , options =>
       {
           options.Cypher.ApplicationPassword = "123456$even";
           options.ApplicationName = "Test domain";
           options.ApplicationTag = "ITIL-9981771";
           options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
           options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
           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);
   });

   services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>()
       options.Filters.Add<Walter.Web.FireWall.Filters.CrossSiteFilter>()
   );

Inheritance Hierarchy

ReportingFilter
Walter.Web.FireWall.Filters..::..CrossSiteFilter

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

CrossSiteFilter Members
Walter.Web.FireWall.Filters Namespace
IFireWall..::..OnGuardAction
IFireWall..::..OnIncident
Walter.Web.FireWall.Annotations..::..CrossSiteAttribute


CrossSiteFilter Members

The CrossSiteFilter type exposes the following members.

Constructors

 | Name | Description
Public method | CrossSiteFilter | Initializes a new instance of the CrossSiteFilter class.

See Also

CrossSiteFilter Class
Walter.Web.FireWall.Filters Namespace


CrossSiteFilter Constructor

Initializes a new instance of the CrossSiteFilter class.

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public CrossSiteFilter(
    Nullable<IPageRequest> page
)

Parameters

page
Type: Nullable <(Of <(<' IPageRequest >)>)>
The page.

See Also

CrossSiteFilter Class
Walter.Web.FireWall.Filters Namespace


FireWallGuardActions Enumeration

Enumerable that contains FireWall Guard Module names.

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FireWallGuardActions

Members

Member name | Description
None | Indicates none set to be ignored or tested depending on the context
RejectKnownBadBoys | The reject known bad boys rule
RejectDDOS | The reject distributed denial of service request rule
IsBlocked | The manual is blocked rule, can be set by any user code by calling the Block() method from the IFirewall instance
RejectNonAspNet | The request is a non ASP net request rule
RejectPenetrationAttempts | Reject penetration attempts rule
RejectRepeatViolations | The reject known bad boys that are causing repeat violations
RejectWrongUserType | The reject requests from wrong user category like IsHuman or distinction like IsMalliciouse types rule
RejectWrongProtocol | The reject wrong protocol requests rule
RejectAddHockRequests | The reject add hock requests rule
EmbeddedResources | Embedded resources rule
RejectHitRatioViolations | The reject hit ratio violations
RejectRefreshViolations | The reject refresh violations rule
RejectScrubbing | The reject scrubbing rule
RejectInvalidUserSalt | User presented the wrong cipher salt to the response or request
RejectInvalidUserSessionId | Reject those that have the wrong firewall session id
RejectInvalidUserPageGroupHeader | reject those that have an invalid PageGroup identifier.
RejectCrossSiteRequests | Reject access to a resource if not from internal domain or from a domain that is white-listed (protects HttpPost requests)
RejectInvalidUserSessionHeaderId | Invalid session header in request
RejectWrongGeography | User access from the wrong geographic region
EarlyUserDiscovery | early user discovery modules
RejectPhsishing | early user discovery modules
RejectSemanticUrlAttack | Reject semantic url attacks
RejectAgentsConsideredMalicious | Reject requests from browsers and bots that are considered to be Malicious
RejectPoisonedCookies | Reject requests where the firewall detects poisoned cookies
RejectIntentions | reject a request based on browser intentions
RejectNavigation | reject or allow a request based on links rendered to the user
RejectSiteMapViolations | Reject access to endpoints that have not been rendered to a previous request
RejectHoneyPotTrap | reject users making use of a ^known honey-pot trap
RejectAPIPenetrationAttempts | A penetration attempt made against the firewall management API
RejectRejectWhoisProvider | Reject requests if the Internet service provider is having the wrong reputation for a user target user group
TCPResetAttack | A attempt is make to take the website off-line by flooding the site with connections that will be processed by the server but are never processed by the initiator
RejectCommonVulnerabilitiesExposuresExploits | the attack is a common vulnerabilities and exposure
CSPReport | The CSP report
ALL | Combination of almost all modules that can be disabled
API_ENDPOINT | shorthand for the modules that are typically skipped for API endpoints
API_ENDPOINT_LAX | shorthand for the modules that are typically skipped for API endpoints where you allow even those that are blocked to access the endpoint
AJAX_ENDPOINT | shorthand for the modules that are typically skipped for AJAX script endpoints

Remarks

The even though there are more guard modules that are active,this however is the list of rules that can be managed by means of configuration.

See Also

Walter.Web.FireWall.Filters Namespace
IPageRequest..::..ViolationsStack
IPageRequest..::..HasViolated(FireWallGuardActions)


FishingFilter Class

Used to capture a sort of activity where you try and post exceptions till you find a vulnerability in the system either by getting an answer by the system or by the system providing an error message leaking a vulnerability

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class FishingFilter

See Also

FishingFilter Members
Walter.Web.FireWall.Filters Namespace


FishingFilter Members

The FishingFilter type exposes the following members.

Constructors

 | Name | Description
Public method | FishingFilter | Create the filter

Methods

 | Name | Description
Public method | OnException | Called after an action has thrown an Exception.

See Also

FishingFilter Class
Walter.Web.FireWall.Filters Namespace


FishingFilter Constructor

Create the filter

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FishingFilter(
    Nullable<IPageRequest> request,
    Nullable<IModelMetadataProvider> modelMetadataProvider
)

Parameters

request
Type: Nullable <(Of <(<' IPageRequest >)>)>
modelMetadataProvider
Type: Nullable <(Of <(<'IModelMetadataProvider>)>)>

See Also

FishingFilter Class
Walter.Web.FireWall.Filters Namespace


FishingFilter Methods

The FishingFilter type exposes the following members.

Methods

 | Name | Description
Public method | OnException | Called after an action has thrown an Exception.

See Also

FishingFilter Class
Walter.Web.FireWall.Filters Namespace


OnException Method

FishingFilter..::..OnException Method

Called after an action has thrown an Exception.

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void OnException(
    ExceptionContext context
)

Parameters

context
Type: ExceptionContext
The ExceptionContext.

See Also

FishingFilter Class
Walter.Web.FireWall.Filters Namespace


PrivacyPreferencesFilter Class

This filter will inject the P3P header in your browser

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class PrivacyPreferencesFilter

Remarks

P3P header in your browser indicating that your cookies and browser state are following GDPR compliance and inform the user of the data it contains

You can enable the feature by injecting the filter in your MVC application

Examples

The bellow sample will inject privacy headers in each request
C#
services.AddMvc(options =>
       options.Filters.Add<Walter.Web.FireWall.Filters.PrivacyPreferencesFilter>()
   );

See Also

[AllMembers.T:Walter.Web.FireWall.Filters.PrivacyPreferencesFilter] Members
Walter.Web.FireWall.Filters Namespace


ProtectorBase Class

The base class used by the FireWall Action Filters.

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class ProtectorBase

See Also

[AllMembers.T:Walter.Web.FireWall.Filters.ProtectorBase] Members
Walter.Web.FireWall.Filters Namespace


SecureCookiesFilter Class

Filter that can be used to ensure cookies are secured using GDPR compliant encryption

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class SecureCookiesFilter

Examples

Enable the firewall to always secure cookies by setting the firewall on all requests
Use the filters to enable the firewall to work with all endpoints in your application
services.AddMvc(options => {
   options.Filters.Add<Walter.Web.FireWall.Filters.FireWallFilter>();
   options.Filters.Add<Walter.Web.FireWall.Filters.SecureCookiesFilter>();
});

See Also

[AllMembers.T:Walter.Web.FireWall.Filters.SecureCookiesFilter] Members
Walter.Web.FireWall.Filters Namespace
IPageRequest..::..User
IUserIdentity..::..TryReadCookie(String, Nullable<(Of <<'(String>)>>)%)
IUserIdentity..::..WriteCookie(String, String, TimeSpan, Boolean)
IUserIdentity..::..WriteCookie(String, String, TimeSpan, Boolean)
[IUserIdentity.WriteCookieAsync(string, string, TimeSpan, bool, System.Threading.CancellationToken)]


SiteMapSearchResultFilter Enumeration

Filter status for SiteMapAttribute

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum SiteMapSearchResultFilter

Members

Member name | Description
CurrentSitemapOnly | Allow links from the current pages page-site-map only
CurrentSessionOnly | The link must have been visible in the current session
RenderedToUser | The link must have been visible to user at some point

Remarks

Will enforce how strict a filter to apply when evaluating the plausibility that the user can navigate to the protected endpoint

See Also

Walter.Web.FireWall.Filters Namespace


Walter.Web.FireWall.GDPR Namespace

Classes

 | Class | Description
Public class | P3POptions | GDPR platform for privacy options that are generated for headers


P3POptions Class

GDPR platform for privacy options that are generated for headers

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class P3POptions

Remarks

P3P options should reflect the activities you perform with the data you collect.

By default you are collecting data when using the firewall as the firewall collects data to pseudo identify user and computer to analyses his actions and stores these for internal usage and preferences like blocking access to the site and reporting violations to authorities

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Members
Walter.Web.FireWall.GDPR Namespace


P3POptions Members

The P3POptions type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Converts the settings to P3P compact preference statement

Properties

 | Name | Description
Public property | Categorie | Data categories containing type and location of data
Public property | Purpose | Contains the reason why data is collected on the website
Public property | PurposeAcceptance | state how you allow users to accept policies, do they have to agree to some, none, all?
Public property | Recipients | Contains the information who will receive the data collected on the website
Public property | Remedies | Remedy for policy violations
Public property | Retention | Defines how and if data is retained as well as for how long

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


P3POptions Methods

The P3POptions type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Converts the settings to P3P compact preference statement

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


ToString Method

P3POptions..::..ToString Method

Converts the settings to P3P compact preference statement

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

the P3P string representation for a header entry.

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


P3POptions Properties

The P3POptions type exposes the following members.

Properties

 | Name | Description
Public property | Categorie | Data categories containing type and location of data
Public property | Purpose | Contains the reason why data is collected on the website
Public property | PurposeAcceptance | state how you allow users to accept policies, do they have to agree to some, none, all?
Public property | Recipients | Contains the information who will receive the data collected on the website
Public property | Remedies | Remedy for policy violations
Public property | Retention | Defines how and if data is retained as well as for how long

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


Categorie Property

P3POptions..::..Categorie Property

Data categories containing type and location of data

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Categories Categorie { get; set; }

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


Purpose Property

P3POptions..::..Purpose Property

Contains the reason why data is collected on the website

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Purposes Purpose { get; set; }

Remarks

Purposes of data collection are expressed in P3P compact policy format

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


PurposeAcceptance Property

P3POptions..::..PurposeAcceptance Property

state how you allow users to accept policies, do they have to agree to some, none, all?

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PolicyAcceptance PurposeAcceptance { get; set; }

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


Recipients Property

P3POptions..::..Recipients Property

Contains the information who will receive the data collected on the website

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Recipients Recipients { get; set; }

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


Remedies Property

P3POptions..::..Remedies Property

Remedy for policy violations

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Remedies Remedies { get; set; }

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


Retention Property

P3POptions..::..Retention Property

Defines how and if data is retained as well as for how long

Namespace: Walter.Web.FireWall.GDPR
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Retentions Retention { get; set; }

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

P3POptions Class
Walter.Web.FireWall.GDPR Namespace


Walter.Web.FireWall.GDPR.P3P Namespace

Enumerations

 | Enumeration | Description
Public enumeration | Categories | Indicates the type of data being stored in cookies and browser data
Public enumeration | PolicyAcceptance | how policy must be accepted
Public enumeration | Purposes | provides information as to why you are storing the data in cookies and browser storage
Public enumeration | Recipients | Who will receive the data collected by the site
Public enumeration | Remedies | Remedies for GDPR policy violations
Public enumeration | Retentions | If retained then why data is retained.


Categories Enumeration

Indicates the type of data being stored in cookies and browser data

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum Categories

Members

Member name | Description
None | Data category not specified
PhysicalContactInformation | Physical Contact Information
OnlineContactInformation | Online Contact Information
UniqueIdentifiers | Unique Identifiers
PurchaseInformation | Purchase Information
FinancialInformation | Financial Information
ComputerInformation | Computer Information
Navigation | Navigation and Click-stream Data
DemographicSocioeconomic | Demographic and Socioeconomic Data
Content | Content
Interactive | Interactive Data
ApplicationState | State Management Mechanisms
PoliticalInformation | Political Information
HealthInformation | Health Information
PreferenceData | Preference Data
LocationData | LocationData
GovernmentIssuedIdentifiers | Government Issued Identifiers
OtherCategory | other-category
ALL | Indicates that you store all categories of data in your cookies and browser data, quite unlikely and perhaps you need to have a coffee with legal

Remarks

It's a good idea not to miss any data category that you are storing however do not flag any data that you do not use just to be on the safe side.

See Also

Walter.Web.FireWall.GDPR.P3P Namespace


PolicyAcceptance Enumeration

how policy must be accepted

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum PolicyAcceptance

Members

Member name | Description
NotSet | acceptance is not specified
OptIn | user must op in
OptOut | user may chose to not opt in
Always | user always accepts the option and no choice is available

See Also

Walter.Web.FireWall.GDPR.P3P Namespace


Purposes Enumeration

provides information as to why you are storing the data in cookies and browser storage

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum Purposes

Members

Member name | Description
None | option is not set
Administration | Web Site and System Administration
Development | Research and Development
Tailoring | One-time Tailoring
PseudonymousAnalysis | Pseudonymous Analysis
PseudonymousDecision | Pseudonymous Decision
IndividualAnalysis | Individual Analysis
IndividualDecision | Individual Decision
Contacting | Contacting Visitors for Marketing of Services or Products
HistoricalPreservation | Historical Preservation
Telemarketing | for telemarketing Contacting Visitors for Marketing of Services or Products Via Telephone, Email etc.
OtherUses | Other Uses
CurrentActivity | Completion and Support of Activity For Which Data Was Provided
ALL | Indicates that you store data for all possible activities

Remarks

It's a good idea not to miss any data category that you are storing however do not flag any data that you do not use just to be on the safe side.

See Also

Walter.Web.FireWall.GDPR.P3P Namespace


Recipients Enumeration

Who will receive the data collected by the site

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum Recipients

Members

Member name | Description
None | not specified
OurEntity | Ourselves and/or entities acting as our agents or entities for whom we are acting as an agent
DeliveryEntities | Delivery services possibly following different practices
SameEntities | Legal entities following our practices
OtherEnteties | Legal entities following different practices
PublicFlora | For the public
UnrelatedThirdParties | Unrelated third parties
ALL | Indicates that you share your data with everyone

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

Walter.Web.FireWall.GDPR.P3P Namespace


Remedies Enumeration

Remedies for GDPR policy violations

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum Remedies

Members

Member name | Description
None | Remedies data is not set
COR | Correct
MON | Money
LAW | Law

See Also

Walter.Web.FireWall.GDPR.P3P Namespace


Retentions Enumeration

If retained then why data is retained.

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum Retentions

Members

Member name | Description
None | Not Specified
NoDataRetention | No Data Retention
StatedPurpose | Data is stored with a Stated Purpose in the sites privacy policy
LegalRequirement | Data is stored with a Legal Requirement in the sites privacy policy
BusinessPractices | Business Practices
DataStoredIndefinitely | Data is stored indefinitely
ALL | Data retention policy and practices by your site, normally these are not cookie related

Remarks

W3 P3P is considered out dated as a standard however we still support it as it allows for a structured communication of intentions. You can also use this class in your cookie accept banner

See Also

Walter.Web.FireWall.GDPR.P3P Namespace


Walter.Web.FireWall.Geo Namespace

Classes

 | Class | Description
Public class | GeoBlockingPolicy | The Geo blocking policy rule for the firewall
Public class | GeoBlockingPolicyBuilder | Builder pattern for generating and configuring GEO policy
Public class | GeoFreeAccess | geographic free access that's white-listed for the firewall

Interfaces

 | Interface | Description
Public interface | IAsyncMiddleware | indicates that the middleware expects to be executed async
Public interface | IGeoAPIFactory | specifies that the geo factory is using an api to get data
Public interface | IGeoFactory | Geography factory base implementation contract
Public interface | ILatLongRepository | Tells that the GEO factory is also capable of providing lat/long values as well as city related information

Enumerations

 | Enumeration | Description
Public enumeration | ContentType | defines what type of geo content is loaded
Public enumeration | GeoDataDetailLevels | Attempts to satisfy and control the Geographical data level accuracy if the GEO provider supports the level
Public enumeration | GeoFreeAccessReason | the reason why geographical blocking is not triggered
Public enumeration | GeoMethod | Specify the method of accessing GEO data from the Geo Provider


ContentType Enumeration

defines what type of geo content is loaded

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ContentType

Members

Member name | Description
GeoData | country data
CityData | city data
VPNData | VPN / proxy data
ISP | Internet service providers

See Also

Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicy Class

The Geo blocking policy rule for the firewall

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoBlockingPolicy

Remarks

Please note that for the policy to work you will need to include one of the Walter.Web.FireWall.Geo NuGet packages or implement your own based on the GeoFactory class and optionally implement the ILatLongRepository for city response

See Also

GeoBlockingPolicy Members
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicy Members

The GeoBlockingPolicy type exposes the following members.

Methods

 | Name | Description
Public method | IsBlocked | Determines whether the specified geographical location is blocked.
Public method | IsWhiteListed | Determines whether the IP address is white listed.

Properties

 | Name | Description
Public property | Allowed | All allowed regions for this application, the default is null meaning all countries are allowed unless blocked
Public property | ApiKey | API key if used,this is normally set via the Geography plug-in
Public property | Blocked | All regions blocked the default is null meaning no one is blocked
Public property | ConnectionString | The database connection string if used, this is normally set via the Geography plug-in
Public property | DataDetailLevels | Level of detail supported by the provider, normally set by the plug-in
Public property | GeoExclusions | Rules for requests from regions that should not be blocked even if they are theoretically are blocked
Public property | Item | access buffer with configuration values used by the add-ons to configure connection options
Public property | RedirectBlockedTo | The URL that will be used when a Geo-Blocked request is redirected to.
Public property | UseMethod | Gets or sets the method used to configure access to the GEO data. This value is normally set via the Geography plug-in

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicy Methods

The GeoBlockingPolicy type exposes the following members.

Methods

 | Name | Description
Public method | IsBlocked | Determines whether the specified geographical location is blocked.
Public method | IsWhiteListed | Determines whether the IP address is white listed.

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


IsBlocked Method

GeoBlockingPolicy..::..IsBlocked Method

Determines whether the specified geographical location is blocked.

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsBlocked(
    GeoLocation geoLocation
)

Parameters

geoLocation
Type: Walter.BOM.Geo..::..GeoLocation
The location.

Return Value

True if blocked

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


IsWhiteListed Method

GeoBlockingPolicy..::..IsWhiteListed Method

Determines whether the IP address is white listed.

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

True if white listed.

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicy Properties

The GeoBlockingPolicy type exposes the following members.

Properties

 | Name | Description
Public property | Allowed | All allowed regions for this application, the default is null meaning all countries are allowed unless blocked
Public property | ApiKey | API key if used,this is normally set via the Geography plug-in
Public property | Blocked | All regions blocked the default is null meaning no one is blocked
Public property | ConnectionString | The database connection string if used, this is normally set via the Geography plug-in
Public property | DataDetailLevels | Level of detail supported by the provider, normally set by the plug-in
Public property | GeoExclusions | Rules for requests from regions that should not be blocked even if they are theoretically are blocked
Public property | Item | access buffer with configuration values used by the add-ons to configure connection options
Public property | RedirectBlockedTo | The URL that will be used when a Geo-Blocked request is redirected to.
Public property | UseMethod | Gets or sets the method used to configure access to the GEO data. This value is normally set via the Geography plug-in

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


Allowed Property

GeoBlockingPolicy..::..Allowed Property

All allowed regions for this application, the default is null meaning all countries are allowed unless blocked

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<GeoLocation>[] Allowed { get; }

Remarks

You can configure the regions by using app.UseFireWall().UseGeoBlockingMiddleware()

Examples

Sample shows blocking access in according to EU regulation for Intangible transfer of technology related to dual-use items
EU embargo list
app.UseFireWall()
    .UseGeoBlockingMiddleware(options =>{
                    options.Block(new[] { GeoLocation.NorthKorea, GeoLocation.Iran, GeoLocation.Myanmar, GeoLocation.RussianFederation, GeoLocation.Syrian });
});

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


ApiKey Property

GeoBlockingPolicy..::..ApiKey Property

API key if used,this is normally set via the Geography plug-in

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ApiKey { get; set; }

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


Blocked Property

GeoBlockingPolicy..::..Blocked Property

All regions blocked the default is null meaning no one is blocked

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<GeoLocation>[] Blocked { get; }

Remarks

You can configure the regions by using app.UseFireWall().UseGeoBlockingMiddleware()

Examples

Sample shows blocking access in according to EU regulation for Intangible transfer of technology related to dual-use items
EU embargo list
app.UseFireWall()
    .UseGeoBlockingMiddleware(options =>{
                    options.Block(new[] { GeoLocation.NorthKorea, GeoLocation.Iran, GeoLocation.Myanmar, GeoLocation.RussianFederation, GeoLocation.Syrian });
});

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


ConnectionString Property

GeoBlockingPolicy..::..ConnectionString Property

The database connection string if used, this is normally set via the Geography plug-in

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ConnectionString { get; set; }

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


DataDetailLevels Property

GeoBlockingPolicy..::..DataDetailLevels Property

Level of detail supported by the provider, normally set by the plug-in

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoDataDetailLevels DataDetailLevels { get; set; }

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


GeoExclusions Property

GeoBlockingPolicy..::..GeoExclusions Property

Rules for requests from regions that should not be blocked even if they are theoretically are blocked

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HashSet<GeoFreeAccess> GeoExclusions { get; }

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


Item Property

GeoBlockingPolicy..::..Item Property

access buffer with configuration values used by the add-ons to configure connection options

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string this[
    string key
] { get; set; }

Parameters

key
Type: String
magic string with a value that is to contain configuration

Return Value

the configuration stored

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


RedirectBlockedTo Property

GeoBlockingPolicy..::..RedirectBlockedTo Property

The URL that will be used when a Geo-Blocked request is redirected to.

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RedirectBlockedTo { get; set; }

Field Value

The redirect URL.

Remarks

The OnIncident event can be used by specifying a value for TransferedTo on the event handler

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


UseMethod Property

GeoBlockingPolicy..::..UseMethod Property

Gets or sets the method used to configure access to the GEO data. This value is normally set via the Geography plug-in

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoMethod UseMethod { get; set; }

Field Value

The method used.

See Also

GeoBlockingPolicy Class
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicyBuilder Class

Builder pattern for generating and configuring GEO policy

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoBlockingPolicyBuilder

See Also

GeoBlockingPolicyBuilder Members
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicyBuilder Members

The GeoBlockingPolicyBuilder type exposes the following members.

Constructors

 | Name | Description
Public method | GeoBlockingPolicyBuilder | create a policy builder

Methods

 | Name | Description
Public method | Allow | Unless you have called blocked before all countries are allowed, you can allow location can be country or regions by explicitly setting them here
Public method | Block | Blocked location can be country or regions
Public method | Build | generates the GeoBlockingPolicy
Public method | Exclude | exclude a given IP address from the rule

Properties

 | Name | Description
Public property | RedirectUrl | Gets or sets the redirect URL.

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicyBuilder Constructor

create a policy builder

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockingPolicyBuilder(
    IFireWallConfig config
)

Parameters

config
Type: Walter.Web.FireWall..::..IFireWallConfig

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicyBuilder Methods

The GeoBlockingPolicyBuilder type exposes the following members.

Methods

 | Name | Description
Public method | Allow | Unless you have called blocked before all countries are allowed, you can allow location can be country or regions by explicitly setting them here
Public method | Block | Blocked location can be country or regions
Public method | Build | generates the GeoBlockingPolicy
Public method | Exclude | exclude a given IP address from the rule

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


Allow Method

GeoBlockingPolicyBuilder..::..Allow Method

Unless you have called blocked before all countries are allowed, you can allow location can be country or regions by explicitly setting them here

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockingPolicyBuilder Allow(
    IEnumerable<GeoLocation> geoLocations
)

Parameters

geoLocations
Type: IEnumerable<(Of <(<' GeoLocation >)>)>
country or regions to allowed

Return Value

the builder

Examples

Exclude only North Korea
Using the Walter.Web.FireWall.Geo.MaxMind NuGet package
app.UseFireWall().UseGeoBlockingMiddleware(options =>
   {
       options.Block(new[] { Walter.Web.FireWall.BOM.Geo.GeoLocation.NorthKorea });
       //using MaxMind files and specify absolute path
       options.UseFile(@"D:\MaxMind\GeoLite2-City.mmdb", Walter.Web.FireWall.Geo.ContentType.CityData);
       options.UseFile(@"D:\MaxMind\GeoLite2-Country.mmdb", Walter.Web.FireWall.Geo.ContentType.GeoData);
   });

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


Block Method

GeoBlockingPolicyBuilder..::..Block Method

Blocked location can be country or regions

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockingPolicyBuilder Block(
    IEnumerable<GeoLocation> geoLocations
)

Parameters

geoLocations
Type: IEnumerable<(Of <(<' GeoLocation >)>)>
the country or location to be blocked

Return Value

The builder

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


Build Method

GeoBlockingPolicyBuilder..::..Build Method

generates the GeoBlockingPolicy

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockingPolicy Build()

Return Value

GeoBlockingPolicy

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


Exclude Method

GeoBlockingPolicyBuilder..::..Exclude Method

exclude a given IP address from the rule

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockingPolicyBuilder Exclude(
    string ipAddress,
    GeoFreeAccessReason reasons,
    Nullable<DateTime> expired
)

Parameters

ipAddress
Type: String
the address to exclude
reasons
Type: Walter.Web.FireWall.Geo..::..GeoFreeAccessReason
the reason why to exclude it
expired
Type: Nullable <(Of <(<'DateTime>)>)>
when the exclusion is to be lifted

Return Value

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


GeoBlockingPolicyBuilder Properties

The GeoBlockingPolicyBuilder type exposes the following members.

Properties

 | Name | Description
Public property | RedirectUrl | Gets or sets the redirect URL.

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


RedirectUrl Property

GeoBlockingPolicyBuilder..::..RedirectUrl Property

Gets or sets the redirect URL.

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RedirectUrl { get; set; }

Field Value

The redirect URL.

See Also

GeoBlockingPolicyBuilder Class
Walter.Web.FireWall.Geo Namespace


GeoDataDetailLevels Enumeration

Attempts to satisfy and control the Geographical data level accuracy if the GEO provider supports the level

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum GeoDataDetailLevels

Members

Member name | Description
None | The Geographical data level accuracy is not set
County | The county
City | The city
Street | The street
LatLong | The lat long
ISP | The Internet Service Provider (ISP)

See Also

Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Class

geographic free access that's white-listed for the firewall

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoFreeAccess

See Also

GeoFreeAccess Members
Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Members

The GeoFreeAccess type exposes the following members.

Constructors

 | Name | Description
Public method | GeoFreeAccess(IPAddress, GeoFreeAccessReason) | Provides a reason why a given IP is given geographical free access that never expires.
Public method | GeoFreeAccess(IPAddress, GeoFreeAccessReason, DateTime) | Provides a reason why a given IP is given geographical free access that expires after a given date.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | compare one instance with another
Public method | Equals(Nullable<(Of <<'(GeoFreeAccess>)>>)) | compare one instance with another
Public method | GetHashCode | get the hash code

Properties

 | Name | Description
Public property | Address | The IP address to white-list
Public property | Expired | Indicates that the GEO blocking access is active
Public property | Expires | The date it should expire, leave null if never expires
Public property | Reason | The reason why we should allow the IP Address

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Constructor

Overload List

 | Name | Description
Public method | GeoFreeAccess(IPAddress, GeoFreeAccessReason) | Provides a reason why a given IP is given geographical free access that never expires.
Public method | GeoFreeAccess(IPAddress, GeoFreeAccessReason, DateTime) | Provides a reason why a given IP is given geographical free access that expires after a given date.

See Also

GeoFreeAccess Class
GeoFreeAccess Members
Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Constructor (IPAddress, GeoFreeAccessReason)

Provides a reason why a given IP is given geographical free access that never expires.

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoFreeAccess(
    IPAddress address,
    GeoFreeAccessReason reason
)

Parameters

address
Type: IPAddress
The address.
reason
Type: Walter.Web.FireWall.Geo..::..GeoFreeAccessReason
The reason.

See Also

GeoFreeAccess Class
GeoFreeAccess Overload
Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Constructor (IPAddress, GeoFreeAccessReason, DateTime)

Provides a reason why a given IP is given geographical free access that expires after a given date.

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoFreeAccess(
    IPAddress address,
    GeoFreeAccessReason reason,
    DateTime expiresUtc
)

Parameters

address
Type: IPAddress
The address.
reason
Type: Walter.Web.FireWall.Geo..::..GeoFreeAccessReason
The reason.
expiresUtc
Type: DateTime
Expires after a specific date

See Also

GeoFreeAccess Class
GeoFreeAccess Overload
Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Methods

The GeoFreeAccess type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | compare one instance with another
Public method | Equals(Nullable<(Of <<'(GeoFreeAccess>)>>)) | compare one instance with another
Public method | GetHashCode | get the hash code

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


Equals Method

GeoFreeAccess..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | compare one instance with another
Public method | Equals(Nullable<(Of <<'(GeoFreeAccess>)>>)) | compare one instance with another

See Also

GeoFreeAccess Class
GeoFreeAccess Members
Walter.Web.FireWall.Geo Namespace


Equals Method (Nullable(Object))

GeoFreeAccess..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

compare one instance with another

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if same

See Also

GeoFreeAccess Class
Equals Overload
Walter.Web.FireWall.Geo Namespace


Equals Method (Nullable(GeoFreeAccess))

GeoFreeAccess..::..Equals Method (Nullable<(Of <(<'GeoFreeAccess>)>)>)

compare one instance with another

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<GeoFreeAccess> other
)

Parameters

other
Type: Nullable <(Of <(<' GeoFreeAccess >)>)>
the other

Return Value

true if same

See Also

GeoFreeAccess Class
Equals Overload
Walter.Web.FireWall.Geo Namespace


GetHashCode Method

GeoFreeAccess..::..GetHashCode Method

get the hash code

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


GeoFreeAccess Properties

The GeoFreeAccess type exposes the following members.

Properties

 | Name | Description
Public property | Address | The IP address to white-list
Public property | Expired | Indicates that the GEO blocking access is active
Public property | Expires | The date it should expire, leave null if never expires
Public property | Reason | The reason why we should allow the IP Address

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


Address Property

GeoFreeAccess..::..Address Property

The IP address to white-list

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress Address { get; set; }

Field Value

The address.

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


Expired Property

GeoFreeAccess..::..Expired Property

Indicates that the GEO blocking access is active

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Expired { get; }

Field Value

true if expired; otherwise, false.

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


Expires Property

GeoFreeAccess..::..Expires Property

The date it should expire, leave null if never expires

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Expires { get; set; }

Field Value

The expires.

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


Reason Property

GeoFreeAccess..::..Reason Property

The reason why we should allow the IP Address

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoFreeAccessReason Reason { get; set; }

Field Value

The reason.

See Also

GeoFreeAccess Class
Walter.Web.FireWall.Geo Namespace


GeoFreeAccessReason Enumeration

the reason why geographical blocking is not triggered

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum GeoFreeAccessReason

Members

Member name | Description
Manual | Manual release
Google | Google gets access
Bing | Bing gets access
Yahoo | Yahoo get's access
Office | The office gets access
Yandex | The Yandex search engine gets access
Server | Server can be excluded as it should not be able to block itself

See Also

Walter.Web.FireWall.Geo Namespace


GeoMethod Enumeration

Specify the method of accessing GEO data from the Geo Provider

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum GeoMethod

Members

Member name | Description
NotSet | Not set, this will generate a to-do item as one needs to specify a way to connect
UseFile | The use files provided by MaxMind or IP2Location or your own implementation of IGeoFactory
UseApi | The use API provided by your data provider
UseDatabase | The a database, please note that the database needs to be configured for the provider specified. The Walter.Web.FireWall.Geo.Ip2Location NuGet package contains the database scrip and will create empty tables if the tabled do not exist
EmbeddedResource | The data is located in embedded resource

See Also

Walter.Web.FireWall.Geo Namespace


IAsyncMiddleware Interface

indicates that the middleware expects to be executed async

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IAsyncMiddleware

See Also

IAsyncMiddleware Members
Walter.Web.FireWall.Geo Namespace


IAsyncMiddleware Members

The IAsyncMiddleware type exposes the following members.

Methods

 | Name | Description
Public method | InvokeAsync | the task to execute

See Also

IAsyncMiddleware Interface
Walter.Web.FireWall.Geo Namespace


IAsyncMiddleware Methods

The IAsyncMiddleware type exposes the following members.

Methods

 | Name | Description
Public method | InvokeAsync | the task to execute

See Also

IAsyncMiddleware Interface
Walter.Web.FireWall.Geo Namespace


InvokeAsync Method

IAsyncMiddleware..::..InvokeAsync Method

the task to execute

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task InvokeAsync(
    HttpContext context,
    IPageRequest page
)

Parameters

context
Type: HttpContext
The context used
page
Type: Walter.Web.FireWall..::..IPageRequest
The page being executed

Return Value

See Also

IAsyncMiddleware Interface
Walter.Web.FireWall.Geo Namespace


IGeoAPIFactory Interface

specifies that the geo factory is using an api to get data

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IGeoAPIFactory : IGeoFactory

See Also

Walter.Web.FireWall.Geo Namespace


IGeoFactory Interface

Geography factory base implementation contract

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IGeoFactory

See Also

IGeoFactory Members
Walter.Web.FireWall.Geo Namespace


IGeoFactory Members

The IGeoFactory type exposes the following members.

Methods

 | Name | Description
Public method | IsBlocked | test to see if the geography is blocked
Public method | IsGeoBlocked | the IP address
Public method | IsGeoWhiteListed | test to see if the connection is white listed and will not be queried
Public method | QueryProxy | the geo location of the proxy (if enabled)
Public method | SetOptions | ensures that the options for the GEO provider are applied
Public method | TryGetLocation | Try and get a Geo location for a given IP address

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


IGeoFactory Methods

The IGeoFactory type exposes the following members.

Methods

 | Name | Description
Public method | IsBlocked | test to see if the geography is blocked
Public method | IsGeoBlocked | the IP address
Public method | IsGeoWhiteListed | test to see if the connection is white listed and will not be queried
Public method | QueryProxy | the geo location of the proxy (if enabled)
Public method | SetOptions | ensures that the options for the GEO provider are applied
Public method | TryGetLocation | Try and get a Geo location for a given IP address

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


IsBlocked Method

IGeoFactory..::..IsBlocked Method

test to see if the geography is blocked

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsBlocked(
    Nullable<GeoLocation> geo
)

Parameters

geo
Type: Nullable <(Of <(<' GeoLocation >)>)>
the geographical location to test

Return Value

true if blocked

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


IsGeoBlocked Method

IGeoFactory..::..IsGeoBlocked Method

the IP address

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsGeoBlocked(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to test

Return Value

true if blocked

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


IsGeoWhiteListed Method

IGeoFactory..::..IsGeoWhiteListed Method

test to see if the connection is white listed and will not be queried

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsGeoWhiteListed(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

True if released

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


QueryProxy Method

IGeoFactory..::..QueryProxy Method

the geo location of the proxy (if enabled)

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation QueryProxy(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

Unknown if not a proxy or not enables

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


SetOptions Method

IGeoFactory..::..SetOptions Method

ensures that the options for the GEO provider are applied

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void SetOptions()

Examples

The following samples shows how to use DI to create a functional firewall that can be used to UNIT test your code
C#
[ClassInitialize]
   public static void ClassInitialize(TestContext context)
   {
       var conf = new FireWallConfig(FireWallTrial.License, FireWallTrial.DomainKey, new System.Uri("https://localhost:5001", System.UriKind.Absolute))
       {
           AppDataFolder = datafolder,

       };
       conf.Geography.DataDetailLevels = GeoDataDetailLevels.County | GeoDataDetailLevels.City;
       conf.Geography.UseMethod = GeoMethod.UseFile;
       conf.Geography.ConnectionString = @"D:\MaxMind";
       conf.Geography[ContentType.GeoData.ToString()]  = Path.Combine(conf.Geography.ConnectionString, "GeoLite2-Country.mmdb");
       conf.Geography[ContentType.CityData.ToString()] = Path.Combine(conf.Geography.ConnectionString, "GeoLite2-City.mmdb");

       DIContainer.SetDefaultInstance<IFireWallConfig>(conf);
       var state = new DbState("dbo", "Data Source=LocalHost;Initial Catalog=AspWafFireWallState;Integrated Security=True;", TimeSpan.FromDays(365 * 3));
       DIContainer.SetDefaultInstance<DbState>(state);
       conf.Cashing.BufferFirewallData = TimeSpan.FromSeconds(3);
       var serviceProvider = new ServiceCollection()
                           .AddLogging()
                           .AddMemoryCache()
                           .AddSingleton<IFireWallConfig>(conf)
                           .AddSingleton(typeof(IFireWall), typeof(MyFireWall))
                           .AddSingleton(typeof(ILatLongRepository),typeof(MaxMindRepository))
                           .BuildServiceProvider();
       DIContainer.ServiceProvider = serviceProvider;

   }

   [TestMethod()]
   public void FlushTest()
   {
       var firewall = DIContainer.GetDefaultInstance<IFireWall>();
       // your test

   }

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


TryGetLocation Method

IGeoFactory..::..TryGetLocation Method

Try and get a Geo location for a given IP address

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetLocation(
    IPAddress remoteAddress,
    out GeoLocation location
)

Parameters

remoteAddress
Type: IPAddress
location
Type: Walter.BOM.Geo..::..GeoLocation %

Return Value

See Also

IGeoFactory Interface
Walter.Web.FireWall.Geo Namespace


ILatLongRepository Interface

Tells that the GEO factory is also capable of providing lat/long values as well as city related information

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ILatLongRepository : IGeoFactory

See Also

ILatLongRepository Members
Walter.Web.FireWall.Geo Namespace


ILatLongRepository Members

The ILatLongRepository type exposes the following members.

Methods

 | Name | Description
Public method | TryQueryMapLocation | Tries to look at the IP address and if plosive return a map location

See Also

ILatLongRepository Interface
Walter.Web.FireWall.Geo Namespace


ILatLongRepository Methods

The ILatLongRepository type exposes the following members.

Methods

 | Name | Description
Public method | TryQueryMapLocation | Tries to look at the IP address and if plosive return a map location

See Also

ILatLongRepository Interface
Walter.Web.FireWall.Geo Namespace


TryQueryMapLocation Method

ILatLongRepository..::..TryQueryMapLocation Method

Tries to look at the IP address and if plosive return a map location

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryQueryMapLocation(
    IPAddress ipAddress,
    out Nullable<IMapLocation> location
)

Parameters

ipAddress
Type: IPAddress
the address to look at
location
Type: Nullable <(Of <(<'IMapLocation>)>)>%
The location if successful

Return Value

True if successful

See Also

ILatLongRepository Interface
Walter.Web.FireWall.Geo Namespace


Walter.Web.FireWall.Geo.MaxMind Namespace

Classes

 | Class | Description
Public class | MaxMindApiRepository | MaxMind API repository Implements the [Walter.Web.FireWall.Specialized.GeoFactory] Implements the [Walter.Web.FireWall.Geo.IGeoAPIFactory]
Public class | MaxMindRepository | The Class MaxMindRepository implements GeoFactory as well as the ILatLongRepository assuming that you have city-level data . Implements the [GeoFactory] Implements the [ILatLongRepository] Implements the [IDisposable]


MaxMindApiRepository Class

MaxMind API repository Implements the [Walter.Web.FireWall.Specialized.GeoFactory] Implements the [Walter.Web.FireWall.Geo.IGeoAPIFactory]

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public class MaxMindApiRepository

See Also

MaxMindApiRepository Members
Walter.Web.FireWall.Geo.MaxMind Namespace
[Walter.Web.FireWall.Specialized.GeoFactory]
[Walter.Web.FireWall.Geo.IGeoAPIFactory]


MaxMindApiRepository Members

The MaxMindApiRepository type exposes the following members.

Constructors

 | Name | Description
Public method | MaxMindApiRepository | Initializes a new instance of the MaxMindApiRepository class.

Methods

 | Name | Description
Public method | QueryLocation | Queries the location based on the IP address.
Public method | QueryProxy | Queries the proxy.
Public method | SetOptions | Sets the options.

See Also

MaxMindApiRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindApiRepository Constructor

Initializes a new instance of the MaxMindApiRepository class.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public MaxMindApiRepository(
    IExceptionConsole console,
    IFireWallConfig conf,
    Nullable<IMemoryCache> memoryCache
)

Parameters

console
Type: IExceptionConsole
conf
Type: IFireWallConfig
Firewall configuration to integrate
memoryCache
Type: Nullable <(Of <(<'IMemoryCache>)>)>
The memory cache.

See Also

MaxMindApiRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindApiRepository Methods

The MaxMindApiRepository type exposes the following members.

Methods

 | Name | Description
Public method | QueryLocation | Queries the location based on the IP address.
Public method | QueryProxy | Queries the proxy.
Public method | SetOptions | Sets the options.

See Also

MaxMindApiRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


QueryLocation Method

MaxMindApiRepository..::..QueryLocation Method

Queries the location based on the IP address.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public GeoLocation QueryLocation(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address to find the country or region for.

Return Value

GeoLocation.

Exceptions

Exception | Condition
[ArgumentNullException] | IP address must be provided

See Also

MaxMindApiRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


QueryProxy Method

MaxMindApiRepository..::..QueryProxy Method

Queries the proxy.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public GeoLocation QueryProxy(
    IPAddress address
)

Parameters

address
Type: IPAddress
The address.

Return Value

GeoLocation.

See Also

MaxMindApiRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


SetOptions Method

MaxMindApiRepository..::..SetOptions Method

Sets the options.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public void SetOptions()

See Also

MaxMindApiRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindRepository Class

The Class MaxMindRepository implements GeoFactory as well as the ILatLongRepository assuming that you have city-level data . Implements the [GeoFactory] Implements the [ILatLongRepository] Implements the [IDisposable]

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public sealed class MaxMindRepository

See Also

MaxMindRepository Members
Walter.Web.FireWall.Geo.MaxMind Namespace
[GeoFactory]
[ILatLongRepository]
[IDisposable]


MaxMindRepository Members

The MaxMindRepository type exposes the following members.

Constructors

 | Name | Description
Public method | MaxMindRepository(IExceptionConsole, IFireWallConfig, Nullable<(Of <<'(IMemoryCache>)>>), Nullable<(Of <<'(ILoggerFactory>)>>), Nullable<(Of <<'(IKeyCDNClient>)>>)) | Use the MaxMind Repository in the firewall or in your code when ever doing GEO operations. If Cashing is enabled the GEO results will be remembered, please look at the Firewall configuration for Cashing to alter the cashing configurations to fit your needs
Public method | MaxMindRepository(IExceptionConsole, IFireWallConfig, IHostingEnvironment, Nullable<(Of <<'(IMemoryCache>)>>), Nullable<(Of <<'(ILoggerFactory>)>>), Nullable<(Of <<'(IKeyCDNClient>)>>)) | Use the MaxMind Repository in the firewall or in your code when ever doing GEO operations. If Cashing is enabled the GEO results will be remembered, please look at the Firewall configuration for Cashing to alter the cashing configurations to fit your needs

Methods

 | Name | Description
Public method | Anonymousnes | use MaxMind's unanimous database for the specified IP address.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. in this case it releases the max mind data readers
Public method | QueryASN | get the ISP name using the WHOIS repository or default back to maxMind
Public method | QueryLocation | queries IP address to retrieve country the request came from
Public method | QueryMapLocation | Get the map location for an IP address
Public method | QueryProxy | the geographical location of the proxy (if enabled)
Public method | SetOptions | set/ replace the options used when creating the instance
Public method | TryQueryMapLocation | Tries to look at the IP address and if possible return a map location

Properties

 | Name | Description
Public property | CityData | Gets the city meta data.
Public property | CountryData | Gets the country meta data.
Public property | ISPData | Gets the internet service provider meta data.
Public property | ProxyReader | Gets the proxy reader depending if you provided it with source data.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindRepository Constructor

Overload List

 | Name | Description
Public method | MaxMindRepository(IExceptionConsole, IFireWallConfig, Nullable<(Of <<'(IMemoryCache>)>>), Nullable<(Of <<'(ILoggerFactory>)>>), Nullable<(Of <<'(IKeyCDNClient>)>>)) | Use the MaxMind Repository in the firewall or in your code when ever doing GEO operations. If Cashing is enabled the GEO results will be remembered, please look at the Firewall configuration for Cashing to alter the cashing configurations to fit your needs
Public method | MaxMindRepository(IExceptionConsole, IFireWallConfig, IHostingEnvironment, Nullable<(Of <<'(IMemoryCache>)>>), Nullable<(Of <<'(ILoggerFactory>)>>), Nullable<(Of <<'(IKeyCDNClient>)>>)) | Use the MaxMind Repository in the firewall or in your code when ever doing GEO operations. If Cashing is enabled the GEO results will be remembered, please look at the Firewall configuration for Cashing to alter the cashing configurations to fit your needs

See Also

MaxMindRepository Class
MaxMindRepository Members
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindRepository Constructor (IExceptionConsole, IFireWallConfig, Nullable(IMemoryCache), Nullable(ILoggerFactory), Nullable(IKeyCDNClient))

MaxMindRepository Constructor (IExceptionConsole, IFireWallConfig, Nullable<(Of <(<'IMemoryCache>)>)>, Nullable<(Of <(<'ILoggerFactory>)>)>, Nullable<(Of <(<'IKeyCDNClient>)>)>)

Use the MaxMind Repository in the firewall or in your code when ever doing GEO operations. If Cashing is enabled the GEO results will be remembered, please look at the Firewall configuration for Cashing to alter the cashing configurations to fit your needs

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public MaxMindRepository(
    IExceptionConsole console,
    IFireWallConfig conf,
    Nullable<IMemoryCache> memoryCache,
    Nullable<ILoggerFactory> factory,
    Nullable<IKeyCDNClient> keyCDNClient
)

Parameters

console
Type: IExceptionConsole
conf
Type: IFireWallConfig
The firewall configuration needed to add
memoryCache
Type: Nullable <(Of <(<'IMemoryCache>)>)>
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
keyCDNClient
Type: Nullable <(Of <(<'IKeyCDNClient>)>)>

See Also

MaxMindRepository Class
MaxMindRepository Overload
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindRepository Constructor (IExceptionConsole, IFireWallConfig, IHostingEnvironment, Nullable(IMemoryCache), Nullable(ILoggerFactory), Nullable(IKeyCDNClient))

MaxMindRepository Constructor (IExceptionConsole, IFireWallConfig, IHostingEnvironment, Nullable<(Of <(<'IMemoryCache>)>)>, Nullable<(Of <(<'ILoggerFactory>)>)>, Nullable<(Of <(<'IKeyCDNClient>)>)>)

Use the MaxMind Repository in the firewall or in your code when ever doing GEO operations. If Cashing is enabled the GEO results will be remembered, please look at the Firewall configuration for Cashing to alter the cashing configurations to fit your needs

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public MaxMindRepository(
    IExceptionConsole console,
    IFireWallConfig conf,
    IHostingEnvironment hosting,
    Nullable<IMemoryCache> memoryCache,
    Nullable<ILoggerFactory> factory,
    Nullable<IKeyCDNClient> keyCDNClient
)

Parameters

console
Type: IExceptionConsole
conf
Type: IFireWallConfig
The firewall configuration needed to add
hosting
Type: IHostingEnvironment
Hosting environment used for disk access if enabled
memoryCache
Type: Nullable <(Of <(<'IMemoryCache>)>)>
Memory cashing if enabled by you
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
Logging factory
keyCDNClient
Type: Nullable <(Of <(<'IKeyCDNClient>)>)>

Exceptions

Exception | Condition
[ArgumentNullException] | hosting
[ConfigurationsException] | Settings not provided
[ConfigurationsException] | IHostingEnvironment not provided
[ConfigurationsException] | fireWall not provided
[ConfigurationsException] | IMemoryCache not provided, consider enabling cashing
[ConfigurationsException] | Settings not provided
[ConfigurationsException] | IHostingEnvironment not provided
[ConfigurationsException] | fireWall not provided

Remarks

Please note that you will need access to MaxMind's Databases visit https://dev.maxmind.com/geoip/geoip2/geolite2/ to download a free light database or register and subscribe for a full database

See Also

MaxMindRepository Class
MaxMindRepository Overload
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindRepository Methods

The MaxMindRepository type exposes the following members.

Methods

 | Name | Description
Public method | Anonymousnes | use MaxMind's unanimous database for the specified IP address.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. in this case it releases the max mind data readers
Public method | QueryASN | get the ISP name using the WHOIS repository or default back to maxMind
Public method | QueryLocation | queries IP address to retrieve country the request came from
Public method | QueryMapLocation | Get the map location for an IP address
Public method | QueryProxy | the geographical location of the proxy (if enabled)
Public method | SetOptions | set/ replace the options used when creating the instance
Public method | TryQueryMapLocation | Tries to look at the IP address and if possible return a map location

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


Anonymousnes Method

MaxMindRepository..::..Anonymousnes Method

use MaxMind's unanimous database for the specified IP address.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public string Anonymousnes(
    IPAddress ipAddress,
    string fileName
)

Parameters

ipAddress
Type: IPAddress
The ip address.
fileName
Type: String
Name of the file.

Return Value

System.String.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


Dispose Method

MaxMindRepository..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. in this case it releases the max mind data readers

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public void Dispose()

See Also

MaxMindRepository Class
Dispose Overload
Walter.Web.FireWall.Geo.MaxMind Namespace


QueryASN Method

MaxMindRepository..::..QueryASN Method

get the ISP name using the WHOIS repository or default back to maxMind

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public string QueryASN(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

the name of the ASN

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


QueryLocation Method

MaxMindRepository..::..QueryLocation Method

queries IP address to retrieve country the request came from

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public GeoLocation QueryLocation(
    IPAddress address
)

Parameters

address
Type: IPAddress

Return Value

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


QueryMapLocation Method

MaxMindRepository..::..QueryMapLocation Method

Get the map location for an IP address

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public IMapLocation QueryMapLocation(
    IPAddress ipAddress
)

Parameters

ipAddress
Type: IPAddress
The IP address used by the connection

Return Value

Map location or null depending on the IP address

Exceptions

Exception | Condition
[ArgumentNullException] | IP address is null
[NotSupportedException] | IP provided does not support mapping to a location

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


QueryProxy Method

MaxMindRepository..::..QueryProxy Method

the geographical location of the proxy (if enabled)

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public GeoLocation QueryProxy(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

Unknown if not a proxy or not enables

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


SetOptions Method

MaxMindRepository..::..SetOptions Method

set/ replace the options used when creating the instance

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public void SetOptions()

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


TryQueryMapLocation Method

MaxMindRepository..::..TryQueryMapLocation Method

Tries to look at the IP address and if possible return a map location

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public bool TryQueryMapLocation(
    IPAddress ipAddress,
    out Nullable<IMapLocation> location
)

Parameters

ipAddress
Type: IPAddress
the address to look at
location
Type: Nullable <(Of <(<'IMapLocation>)>)>%
The location if successful

Return Value

True if no errors and the location was found

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


MaxMindRepository Properties

The MaxMindRepository type exposes the following members.

Properties

 | Name | Description
Public property | CityData | Gets the city meta data.
Public property | CountryData | Gets the country meta data.
Public property | ISPData | Gets the internet service provider meta data.
Public property | ProxyReader | Gets the proxy reader depending if you provided it with source data.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


CityData Property

MaxMindRepository..::..CityData Property

Gets the city meta data.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public Nullable<Metadata> CityData { get; set; }

Field Value

The city data.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


CountryData Property

MaxMindRepository..::..CountryData Property

Gets the country meta data.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public Nullable<Metadata> CountryData { get; set; }

Field Value

The country data.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


ISPData Property

MaxMindRepository..::..ISPData Property

Gets the internet service provider meta data.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public Nullable<Metadata> ISPData { get; set; }

Field Value

The ISP data.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


ProxyReader Property

MaxMindRepository..::..ProxyReader Property

Gets the proxy reader depending if you provided it with source data.

Namespace: Walter.Web.FireWall.Geo.MaxMind
Assembly: Walter.Web.FireWall.Geo.MaxMind (in Walter.Web.FireWall.Geo.MaxMind.dll)

Syntax

C#
public Nullable<DatabaseReader> ProxyReader { get; }

Field Value

The proxy reader.

See Also

MaxMindRepository Class
Walter.Web.FireWall.Geo.MaxMind Namespace


Walter.Web.FireWall.Headers Namespace

Interfaces

 | Interface | Description
Public interface | ISecurityHeadersBuilder | Assists in generating security policy rules for the headers on all pages protected by the firewall
Public interface | ISecurityHeadersPolicy | Interface ISecurityHeadersPolicy informs on the headers that are added and removed on a request if header protection is configured

Enumerations

 | Enumeration | Description
Public enumeration | HeaderSimulations | Indicates that the header will simulate different technology stacks
Public enumeration | HeadersPolicies | the header policies that are supported by the firewall
Public enumeration | ServerSimulation | The server that we would like to simulate as being hosted on. This masks the actual server and will trick scripts and attackers to try the wrong technology stack when performing malicious activity
Public enumeration | StackSimulation | Enumerable used to tell the firewall to simulate one of the following technologies. This masks that we are actually a .net application and will trick scripts and attackers to try the wrong technology stack when performing malicious activity


HeaderSimulations Enumeration

Indicates that the header will simulate different technology stacks

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum HeaderSimulations

Members

Member name | Description
None | No simulations have been defined
SimulateDifferentTechnologyStack | indicates that simulates the different technology stack was defined
SimulateDifferentServer | indicates that simulates the different hosting platform is defined
NoTechnologyHeaders | Tells the firewall that no technology headers are to be allowed
CustomHeader | contains a header that was added without a specific W3C rule

See Also

Walter.Web.FireWall.Headers Namespace


HeadersPolicies Enumeration

the header policies that are supported by the firewall

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum HeadersPolicies

Members

Member name | Description
None | No policy has been applied, headers are not protected by the browser or firewall
DoNotTrack | Indicates that 3rd party "do not track signal" is configured.
FrameOptionsDeny | Indicates that the pages cannot be displayed in a frame, regardless of the site attempting to do so
FrameOptionsSameOrigin | indicates that only frames are allowed that are of this domain
XssProtectionEnabled | Indicates that the pages have XSS protection
XssProtectionDisabled | Indicates that the pages do not have XSS protection
XssProtectionWithBlockEnabled | Indicates that the pages have XSS protection and tells the browser to block
XssProtectionWithReportEnabled | Indicates that the pages have XSS protection and tells the browser to report
StrictTransportSecurityMaxAge | Indicates that the browser is to honor Strict-Transport-Security max-age to all requests in this domain but not sub domains and tells the browser to cache the domain in the STS list for the number of seconds provided.
StrictTransportSecurityMaxAgeIncludeSubDomains | Indicates that the browser is to honor Strict-Transport-Security max-age to all requests in the domain and sub domains and tells the browser to cache the domain in the STS list for the number of seconds provided.
StrictTransportSecurityNoCache | Add Strict-Transport-Security max-age=0 to all requests and ells the browser to remove, or not cache the host in the STS cache
ContentTypeOptionsNoSniff | indicates that the browser will have X-Content-Type-Options nosniff to all headers.
ContentSecurityPolicyTrustOnlySelf | Indicates that the browser will have a CSP will only trust own domain
ContentSecurityPolicyTrustExternalSources | Indicates that the browser will have a CSP will only trust own domain as well as specified external CDN's

See Also

Walter.Web.FireWall.Headers Namespace


ISecurityHeadersBuilder Interface

Assists in generating security policy rules for the headers on all pages protected by the firewall

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISecurityHeadersBuilder

See Also

ISecurityHeadersBuilder Members
Walter.Web.FireWall.Headers Namespace


ISecurityHeadersBuilder Members

The ISecurityHeadersBuilder type exposes the following members.

Methods

 | Name | Description
Public method | AddContentSecurityPolicy | Adds the content security policy manually.
Public method | AddContentSecurityPolicyButTrust(TrustingSites, Boolean, FramesPolicy, Boolean) | Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected
Public method | AddContentSecurityPolicyButTrust(Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Boolean, Boolean, Boolean, FramesPolicy, Boolean) | Adds the content security policy but trust provided configurations (browser only).
Public method | AddContentSecurityPolicyTrustOnlySelf | trust only own domain, no external images or scripts
Public method | AddContentTypeOptionsNoSniff | Add X-Content-Type-Options no-sniff to all requests. Can be set to protect against MIME type confusion attacks.
Public method | AddDefaultSecurePolicy | Add default security headers configuration in each request of the firewall
Public method | AddDefaultSecurePolicyAndReport()()()() | Add default security headers configuration in each request of the firewall and has the browser report any violations to the firewall
Public method | AddDefaultSecurePolicyAndReport(Uri) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddDefaultSecurePolicyAndReport(Uri, TrustingSites) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddFrameOptionsDeny | Add X-Frame-Options DENY to all requests. The page cannot be displayed in a frame, regardless of the site attempting to do so
Public method | AddFrameOptionsSameOrigin()()()() | Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.
Public method | AddFrameOptionsSameOrigin(String) | Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.
Public method | AddStrictTransportSecurityMaxAge | Add Strict-Transport-Security max-age to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided.
Public method | AddStrictTransportSecurityMaxAgeIncludeSubDomains | Add Strict-Transport-Security max-age; includeSubDomains to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided and include any sub-domains.
Public method | AddStrictTransportSecurityNoCache | Add Strict-Transport-Security max-age=0 to all requests. Tells the user-agent to remove, or not cache the host in the STS cache
Public method | AddXssProtectionBlock | Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.
Public method | AddXssProtectionBlockAndReport | Add X-XSS-Protection 1;mode=block; report={url} to all requests and will tell the browser to block the request. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionDisabled | Add X-XSS-Protection 0 to all requests. Disables the XSS Protections offered by the user-agent.
Public method | AddXssProtectionEnabled | Add X-XSS-Protection 1 to all requests. Enables the XSS Protections
Public method | AddXssProtectionReport | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | DoNotTrack | For 3rd party sites this will add a "do not track signal" that a web application should disable either its tracking or cross-site user tracking of an individual user.
Public method | RemoveServerHeader | Removes the Server header from all responses
Public method | SimulateDifferentServer | Add headers to simulate a different server so that attackers are using a different method of attack
Public method | SimulateDifferentTechnologyStack | Add headers to simulates the different technology stack.

Properties

 | Name | Description
Public property | Policies | Access the policies that have been configured
Public property | Simulations | Access the simulations that configured.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


ISecurityHeadersBuilder Methods

The ISecurityHeadersBuilder type exposes the following members.

Methods

 | Name | Description
Public method | AddContentSecurityPolicy | Adds the content security policy manually.
Public method | AddContentSecurityPolicyButTrust(TrustingSites, Boolean, FramesPolicy, Boolean) | Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected
Public method | AddContentSecurityPolicyButTrust(Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Boolean, Boolean, Boolean, FramesPolicy, Boolean) | Adds the content security policy but trust provided configurations (browser only).
Public method | AddContentSecurityPolicyTrustOnlySelf | trust only own domain, no external images or scripts
Public method | AddContentTypeOptionsNoSniff | Add X-Content-Type-Options no-sniff to all requests. Can be set to protect against MIME type confusion attacks.
Public method | AddDefaultSecurePolicy | Add default security headers configuration in each request of the firewall
Public method | AddDefaultSecurePolicyAndReport()()()() | Add default security headers configuration in each request of the firewall and has the browser report any violations to the firewall
Public method | AddDefaultSecurePolicyAndReport(Uri) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddDefaultSecurePolicyAndReport(Uri, TrustingSites) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddFrameOptionsDeny | Add X-Frame-Options DENY to all requests. The page cannot be displayed in a frame, regardless of the site attempting to do so
Public method | AddFrameOptionsSameOrigin()()()() | Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.
Public method | AddFrameOptionsSameOrigin(String) | Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.
Public method | AddStrictTransportSecurityMaxAge | Add Strict-Transport-Security max-age to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided.
Public method | AddStrictTransportSecurityMaxAgeIncludeSubDomains | Add Strict-Transport-Security max-age; includeSubDomains to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided and include any sub-domains.
Public method | AddStrictTransportSecurityNoCache | Add Strict-Transport-Security max-age=0 to all requests. Tells the user-agent to remove, or not cache the host in the STS cache
Public method | AddXssProtectionBlock | Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.
Public method | AddXssProtectionBlockAndReport | Add X-XSS-Protection 1;mode=block; report={url} to all requests and will tell the browser to block the request. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | AddXssProtectionDisabled | Add X-XSS-Protection 0 to all requests. Disables the XSS Protections offered by the user-agent.
Public method | AddXssProtectionEnabled | Add X-XSS-Protection 1 to all requests. Enables the XSS Protections
Public method | AddXssProtectionReport | Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.
Public method | DoNotTrack | For 3rd party sites this will add a "do not track signal" that a web application should disable either its tracking or cross-site user tracking of an individual user.
Public method | RemoveServerHeader | Removes the Server header from all responses
Public method | SimulateDifferentServer | Add headers to simulate a different server so that attackers are using a different method of attack
Public method | SimulateDifferentTechnologyStack | Add headers to simulates the different technology stack.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddContentSecurityPolicy Method

ISecurityHeadersBuilder..::..AddContentSecurityPolicy Method

Adds the content security policy manually.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddContentSecurityPolicy(
    string policy
)

Parameters

policy
Type: String
The policy to implement

Return Value

ISecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddContentSecurityPolicyButTrust Method

ISecurityHeadersBuilder..::..AddContentSecurityPolicyButTrust Method

Overload List

 | Name | Description
Public method | AddContentSecurityPolicyButTrust(TrustingSites, Boolean, FramesPolicy, Boolean) | Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected
Public method | AddContentSecurityPolicyButTrust(Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Nullable<(Of <<'(IEnumerable<(Of <<'(String>)>>)>)>>), Boolean, Boolean, Boolean, FramesPolicy, Boolean) | Adds the content security policy but trust provided configurations (browser only).

See Also

ISecurityHeadersBuilder Interface
ISecurityHeadersBuilder Members
Walter.Web.FireWall.Headers Namespace


AddContentSecurityPolicyButTrust Method (TrustingSites, Boolean, FramesPolicy, Boolean)

ISecurityHeadersBuilder..::..AddContentSecurityPolicyButTrust Method (TrustingSites, Boolean, FramesPolicy, Boolean)

Determine what to trust, if only your own domain or those you flag trustworthy, and if external images or scripts are allowed to be injected

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddContentSecurityPolicyButTrust(
    TrustingSites trustingSites,
    bool allowInline,
    FramesPolicy framesPolicy,
    bool reportOnly
)

Parameters

trustingSites
Type: Walter.Web.FireWall..::..TrustingSites
the list of sites you like to trust
allowInline
Type: Boolean
AllowRaiseIncident in-line css and script, not advisable as it brakes security but sometimes needed
framesPolicy
Type: Walter.Web.FireWall..::..FramesPolicy
the frame policy used
reportOnly
Type: Boolean
if true it will only report violations in the browser, the firewall however will detect the violation and will trigger the appropriate firewall rules for CSP violators as well as flag the user as such

Return Value

returns the SecurityHeadersBuilder for continuance

Remarks

Content can be filtered when CSP violations have been detected post rendering after a browser reports it. Please note that malicious bots do not care about CSP policies and will use it to attack your site using exactly these policies that you think you're protecting against.

See Also

ISecurityHeadersBuilder Interface
AddContentSecurityPolicyButTrust Overload
Walter.Web.FireWall.Headers Namespace


AddContentSecurityPolicyButTrust Method (Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Nullable(IEnumerable(String)), Boolean, Boolean, Boolean, FramesPolicy, Boolean)

ISecurityHeadersBuilder..::..AddContentSecurityPolicyButTrust Method (Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Nullable<(Of <(<'IEnumerable<(Of <(<'String>)>)>>)>)>, Boolean, Boolean, Boolean, FramesPolicy, Boolean)

Adds the content security policy but trust provided configurations (browser only).

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddContentSecurityPolicyButTrust(
    Nullable<IEnumerable<string>> mediaSites,
    Nullable<IEnumerable<string>> scriptsSites,
    Nullable<IEnumerable<string>> imagesSites,
    Nullable<IEnumerable<string>> cssSites,
    Nullable<IEnumerable<string>> defaultSites,
    bool trustSelf,
    bool allowObjectSource,
    bool allowInline,
    FramesPolicy frames,
    bool reportOnly
)

Parameters

mediaSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The media sites.
scriptsSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The scripts sites.
imagesSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The images sites.
cssSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
The CSS sites.
defaultSites
Type: Nullable <(Of <(<'IEnumerable<(Of <(<' String >)>)>>)>)>
domains that are trusted by default
trustSelf
Type: Boolean
Indicates that you trust the hosting site (default)
allowObjectSource
Type: Boolean
if true it may merge 'self' if trustSelf is set and default sites are populated, else it will be disabled via policy
allowInline
Type: Boolean
if set to true then allow the in-line use of CSS JavaScript.
frames
Type: Walter.Web.FireWall..::..FramesPolicy
The frames.
reportOnly
Type: Boolean
if true it will only report violations in the browser, the firewall however will detect the violation and will trigger the appropriate firewall rules for CSP violators as well as flag the user as such

Return Value

SecurityHeadersBuilder.

Remarks

Content can be filtered when CSP violations have been detected post rendering after a browser reports it. Please note that malicious bots do not care about CSP policies and will use it to attack your site using exactly these policies that you think you're protecting against.

See Also

ISecurityHeadersBuilder Interface
AddContentSecurityPolicyButTrust Overload
Walter.Web.FireWall.Headers Namespace


AddContentSecurityPolicyTrustOnlySelf Method

ISecurityHeadersBuilder..::..AddContentSecurityPolicyTrustOnlySelf Method

trust only own domain, no external images or scripts

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddContentSecurityPolicyTrustOnlySelf()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddContentTypeOptionsNoSniff Method

ISecurityHeadersBuilder..::..AddContentTypeOptionsNoSniff Method

Add X-Content-Type-Options no-sniff to all requests. Can be set to protect against MIME type confusion attacks.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddContentTypeOptionsNoSniff()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddDefaultSecurePolicy Method

ISecurityHeadersBuilder..::..AddDefaultSecurePolicy Method

Add default security headers configuration in each request of the firewall

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddDefaultSecurePolicy()

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlock()
  • AddContentTypeOptionsNoSniff()
  • AddStrictTransportSecurityMaxAge()
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlock()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddDefaultSecurePolicyAndReport Method

ISecurityHeadersBuilder..::..AddDefaultSecurePolicyAndReport Method

Overload List

 | Name | Description
Public method | AddDefaultSecurePolicyAndReport()()()() | Add default security headers configuration in each request of the firewall and has the browser report any violations to the firewall
Public method | AddDefaultSecurePolicyAndReport(Uri) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites
Public method | AddDefaultSecurePolicyAndReport(Uri, TrustingSites) | Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites

See Also

ISecurityHeadersBuilder Interface
ISecurityHeadersBuilder Members
Walter.Web.FireWall.Headers Namespace


AddDefaultSecurePolicyAndReport Method

ISecurityHeadersBuilder..::..AddDefaultSecurePolicyAndReport Method

Add default security headers configuration in each request of the firewall and has the browser report any violations to the firewall

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddDefaultSecurePolicyAndReport()

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlock()
  • AddContentTypeOptionsNoSniff()
  • AddStrictTransportSecurityMaxAge()
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

ISecurityHeadersBuilder Interface
AddDefaultSecurePolicyAndReport Overload
Walter.Web.FireWall.Headers Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlockAndReport()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddDefaultSecurePolicyAndReport Method (Uri)

ISecurityHeadersBuilder..::..AddDefaultSecurePolicyAndReport Method (Uri)

Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddDefaultSecurePolicyAndReport(
    Uri uri
)

Parameters

uri
Type: Uri
The URL used to report

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlockAndReport(url)
  • AddContentTypeOptionsNoSniff()
  • AddStrictTransportSecurityMaxAge()
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

ISecurityHeadersBuilder Interface
AddDefaultSecurePolicyAndReport Overload
Walter.Web.FireWall.Headers Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlockAndReport()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddDefaultSecurePolicyAndReport Method (Uri, TrustingSites)

ISecurityHeadersBuilder..::..AddDefaultSecurePolicyAndReport Method (Uri, TrustingSites)

Add default security headers configuration in each request of the firewall and has the browser report any violations to the url but trust some sites

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddDefaultSecurePolicyAndReport(
    Uri uri,
    TrustingSites trust
)

Parameters

uri
Type: Uri
The URL used to report
trust
Type: Walter.Web.FireWall..::..TrustingSites
The sites you are willing to trust

Return Value

SecurityHeadersBuilder

Remarks

The default configuration is the same as calling

  • AddFrameOptionsDeny()
  • AddXssProtectionBlockAndReport(url)
  • AddContentTypeOptionsNoSniff()
  • AddContentSecurityPolicyButTrust(TrustingSites.SubDomains | TrustingSites.Bootstrap | TrustingSites.Google | TrustingSites.Jquery)
  • RemoveServerHeader()

You can chain this with other methods in this class, duplicated policies will be ignored.

See Also

ISecurityHeadersBuilder Interface
AddDefaultSecurePolicyAndReport Overload
Walter.Web.FireWall.Headers Namespace
SecurityHeadersBuilderAddFrameOptionsDeny()()()()
SecurityHeadersBuilderAddXssProtectionBlockAndReport()()()()
SecurityHeadersBuilderAddContentTypeOptionsNoSniff()()()()
SecurityHeadersBuilderAddStrictTransportSecurityMaxAge(Int32)
SecurityHeadersBuilderRemoveServerHeader()()()()


AddFrameOptionsDeny Method

ISecurityHeadersBuilder..::..AddFrameOptionsDeny Method

Add X-Frame-Options DENY to all requests. The page cannot be displayed in a frame, regardless of the site attempting to do so

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddFrameOptionsDeny()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddFrameOptionsSameOrigin Method

ISecurityHeadersBuilder..::..AddFrameOptionsSameOrigin Method

Overload List

 | Name | Description
Public method | AddFrameOptionsSameOrigin()()()() | Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.
Public method | AddFrameOptionsSameOrigin(String) | Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.

See Also

ISecurityHeadersBuilder Interface
ISecurityHeadersBuilder Members
Walter.Web.FireWall.Headers Namespace


AddFrameOptionsSameOrigin Method

ISecurityHeadersBuilder..::..AddFrameOptionsSameOrigin Method

Add X-Frame-Options SAMEORIGIN to all requests. The page can only be displayed in a frame on the same origin as the page itself so only your own website.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddFrameOptionsSameOrigin()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
AddFrameOptionsSameOrigin Overload
Walter.Web.FireWall.Headers Namespace


AddFrameOptionsSameOrigin Method (String)

ISecurityHeadersBuilder..::..AddFrameOptionsSameOrigin Method (String)

Add X-Frame-Options ALLOW-FROM {url path} to all requests, where the url is provided The page can only be displayed in a frame on the specified origin.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddFrameOptionsSameOrigin(
    string path
)

Parameters

path
Type: String
The url of the origin in which the page may be displayed in a frame

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
AddFrameOptionsSameOrigin Overload
Walter.Web.FireWall.Headers Namespace


AddStrictTransportSecurityMaxAge Method

ISecurityHeadersBuilder..::..AddStrictTransportSecurityMaxAge Method

Add Strict-Transport-Security max-age to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddStrictTransportSecurityMaxAge(
    int maxAge
)

Parameters

maxAge
Type: Int32
The maximum age in seconds

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddStrictTransportSecurityMaxAgeIncludeSubDomains Method

ISecurityHeadersBuilder..::..AddStrictTransportSecurityMaxAgeIncludeSubDomains Method

Add Strict-Transport-Security max-age; includeSubDomains to all requests. Tells the user-agent to cache the domain in the STS list for the number of seconds provided and include any sub-domains.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddStrictTransportSecurityMaxAgeIncludeSubDomains(
    int maxAge
)

Parameters

maxAge
Type: Int32
The maximum age in seconds.

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddStrictTransportSecurityNoCache Method

ISecurityHeadersBuilder..::..AddStrictTransportSecurityNoCache Method

Add Strict-Transport-Security max-age=0 to all requests. Tells the user-agent to remove, or not cache the host in the STS cache

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddStrictTransportSecurityNoCache()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddXssProtectionBlock Method

ISecurityHeadersBuilder..::..AddXssProtectionBlock Method

Add X-XSS-Protection 1; mode=block to all requests. (limited browser support) Enables XSS protections and instructs the user-agent to block the response in the event that script has been inserted from user input, instead of sanitizing.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddXssProtectionBlock()

Return Value

SecurityHeadersBuilder.

Remarks

Only limited implementation is in the browsers see Mozzilla for coverage

Examples

Block all java that could do harm like postback data.
block all unsafe java
app.UseSecurityHeadersMiddleware(options =>
   {
       options.AddXssProtectionBlock();
   });

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddXssProtectionBlockAndReport Method

ISecurityHeadersBuilder..::..AddXssProtectionBlockAndReport Method

Add X-XSS-Protection 1;mode=block; report={url} to all requests and will tell the browser to block the request. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddXssProtectionBlockAndReport(
    string reportUrl
)

Parameters

reportUrl
Type: String
The report URL in a W3C valid format and can be read by the firewall. Leave blank for CSP endpoint in Configuration.WebService

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddXssProtectionDisabled Method

ISecurityHeadersBuilder..::..AddXssProtectionDisabled Method

Add X-XSS-Protection 0 to all requests. Disables the XSS Protections offered by the user-agent.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddXssProtectionDisabled()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddXssProtectionEnabled Method

ISecurityHeadersBuilder..::..AddXssProtectionEnabled Method

Add X-XSS-Protection 1 to all requests. Enables the XSS Protections

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddXssProtectionEnabled()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


AddXssProtectionReport Method

ISecurityHeadersBuilder..::..AddXssProtectionReport Method

Add X-XSS-Protection 1; report={the url in settings.WebServices.CSPReportUrl} to all requests. A partially supported directive that tells the user-agent to report potential XSS attacks to a single URL. Data will be POST'd to the report URL in JSON format.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder AddXssProtectionReport(
    string reportUrl
)

Parameters

reportUrl
Type: String
The report URL in a W3C valid format .

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


DoNotTrack Method

ISecurityHeadersBuilder..::..DoNotTrack Method

For 3rd party sites this will add a "do not track signal" that a web application should disable either its tracking or cross-site user tracking of an individual user.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder DoNotTrack()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


RemoveServerHeader Method

ISecurityHeadersBuilder..::..RemoveServerHeader Method

Removes the Server header from all responses

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder RemoveServerHeader()

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


SimulateDifferentServer Method

ISecurityHeadersBuilder..::..SimulateDifferentServer Method

Add headers to simulate a different server so that attackers are using a different method of attack

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder SimulateDifferentServer(
    ServerSimulation simulate
)

Parameters

simulate
Type: Walter.Web.FireWall.Headers..::..ServerSimulation
The type of server to simulate.

Return Value

SecurityHeadersBuilder

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


SimulateDifferentTechnologyStack Method

ISecurityHeadersBuilder..::..SimulateDifferentTechnologyStack Method

Add headers to simulates the different technology stack.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISecurityHeadersBuilder SimulateDifferentTechnologyStack(
    StackSimulation simulation
)

Parameters

simulation
Type: Walter.Web.FireWall.Headers..::..StackSimulation
The technology stack to simulation.

Return Value

SecurityHeadersBuilder.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


ISecurityHeadersBuilder Properties

The ISecurityHeadersBuilder type exposes the following members.

Properties

 | Name | Description
Public property | Policies | Access the policies that have been configured
Public property | Simulations | Access the simulations that configured.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


Policies Property

ISecurityHeadersBuilder..::..Policies Property

Access the policies that have been configured

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HeadersPolicies Policies { get; }

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


Simulations Property

ISecurityHeadersBuilder..::..Simulations Property

Access the simulations that configured.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HeaderSimulations Simulations { get; }

Field Value

The simulations.

See Also

ISecurityHeadersBuilder Interface
Walter.Web.FireWall.Headers Namespace


ISecurityHeadersPolicy Interface

Interface ISecurityHeadersPolicy informs on the headers that are added and removed on a request if header protection is configured

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISecurityHeadersPolicy

See Also

ISecurityHeadersPolicy Members
Walter.Web.FireWall.Headers Namespace


ISecurityHeadersPolicy Members

The ISecurityHeadersPolicy type exposes the following members.

Properties

 | Name | Description
Public property | RemoveHeaders | a set of headers to remove
Public property | SetHeaders | a set of dictionary header keys and header values to set

See Also

ISecurityHeadersPolicy Interface
Walter.Web.FireWall.Headers Namespace


ISecurityHeadersPolicy Properties

The ISecurityHeadersPolicy type exposes the following members.

Properties

 | Name | Description
Public property | RemoveHeaders | a set of headers to remove
Public property | SetHeaders | a set of dictionary header keys and header values to set

See Also

ISecurityHeadersPolicy Interface
Walter.Web.FireWall.Headers Namespace


RemoveHeaders Property

ISecurityHeadersPolicy..::..RemoveHeaders Property

a set of headers to remove

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISet<string> RemoveHeaders { get; }

See Also

ISecurityHeadersPolicy Interface
Walter.Web.FireWall.Headers Namespace


SetHeaders Property

ISecurityHeadersPolicy..::..SetHeaders Property

a set of dictionary header keys and header values to set

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Dictionary<string, string> SetHeaders { get; }

See Also

ISecurityHeadersPolicy Interface
Walter.Web.FireWall.Headers Namespace


ServerSimulation Enumeration

The server that we would like to simulate as being hosted on. This masks the actual server and will trick scripts and attackers to try the wrong technology stack when performing malicious activity

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ServerSimulation

Members

Member name | Description
IIS7 | The IIS 7 Internet information server
IIS75 | The IIS 7.5 Internet information server
IIS8 | The IIS 8 Internet information server
IIS85 | The IIS 8.5 Internet information server
IIS10 | The IIS 10 Internet information server
Apache | The apache Internet server
Apache249Unix | The apache release 249 UNIX based Internet server
Apache249Windows | The apache release 249 windows based Internet server
Apache200Unix | The apache release 200 UNIX based Internet server
Apache220Unix | The apache release 220 UNIX based Internet server
Apache244Unix | The apache release 244 UNIX based Internet server
Apache244Windows | The apache release 244 windows
Caddy | The caddy Internet server
OracleHTTPServer | The oracle HTTP server
nginx | The nginx UNIX based Internet server
NginxWebServer | The nginx web server Internet server

See Also

Walter.Web.FireWall.Headers Namespace


StackSimulation Enumeration

Enumerable used to tell the firewall to simulate one of the following technologies. This masks that we are actually a .net application and will trick scripts and attackers to try the wrong technology stack when performing malicious activity

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum StackSimulation

Members

Member name | Description
PHP | generate PHP like headers and cookies
NodeJs | generate NodeJs like headers and cookies
Python | generate common Python like headers and cookies

See Also

Walter.Web.FireWall.Headers Namespace


Walter.Web.FireWall.ILoggerReporting Namespace

Classes

 | Class | Description
Public class | ILogSettings | Class ILogSettings are the logging settings for the Walter.Web.FireWall.ILoggerReporting NuGet package.


ILogSettings Class

Class ILogSettings are the logging settings for the Walter.Web.FireWall.ILoggerReporting NuGet package.

Namespace: Walter.Web.FireWall.ILoggerReporting
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public class ILogSettings

Remarks

You can download this NuGet package and use it with any version of the firewall, licensed and community editions

Examples

You find the ILogger extension method for the Walter.Waf.Web.IFirewall in NuGet package Walter.Web.FireWall.ILoggerReporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

}).UseILoggerLogging(level: Microsoft.Extensions.Logging.LogLevel.Critical);

See Also

ILogSettings Members
Walter.Web.FireWall.ILoggerReporting Namespace


ILogSettings Members

The ILogSettings type exposes the following members.

Properties

 | Name | Description
Public property | Level | Gets or sets the level.
Public property | NameSpace | Specify the namespace you would like to use when sending logs to the ILogger interface

See Also

ILogSettings Class
Walter.Web.FireWall.ILoggerReporting Namespace


ILogSettings Properties

The ILogSettings type exposes the following members.

Properties

 | Name | Description
Public property | Level | Gets or sets the level.
Public property | NameSpace | Specify the namespace you would like to use when sending logs to the ILogger interface

See Also

ILogSettings Class
Walter.Web.FireWall.ILoggerReporting Namespace


Level Property

ILogSettings..::..Level Property

Gets or sets the level.

Namespace: Walter.Web.FireWall.ILoggerReporting
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public LogLevel Level { get; set; }

Field Value

The level.

Examples

You find the ILogger extension method for the Walter.Waf.Web.IFirewall in NuGet package Walter.Web.FireWall.ILoggerReporting
C#
services.AddFireWall(FireWallTrial.License, FireWallTrial.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);

}).UseILoggerLogging(level: Microsoft.Extensions.Logging.LogLevel.Warning);

See Also

ILogSettings Class
Walter.Web.FireWall.ILoggerReporting Namespace


NameSpace Property

ILogSettings..::..NameSpace Property

Specify the namespace you would like to use when sending logs to the ILogger interface

Namespace: Walter.Web.FireWall.ILoggerReporting
Assembly: Walter.Web.FireWall.ILogger (in Walter.Web.FireWall.ILogger.dll)

Syntax

C#
public string NameSpace { get; set; }

Remarks

The default path used is "Walter.Web.FireWall.Destinations.ILoggerLog" but can be altered to meet your requirements

See Also

ILogSettings Class
Walter.Web.FireWall.ILoggerReporting Namespace


Walter.Web.FireWall.Infrastructure Namespace

Classes

 | Class | Description
Public class | ApplicationVersionException | En exception indicating that the version is not compatible with the infrastructure used
Public class | BadDefaultRouteException | Class BadDefaultRouteException is created when a bad default rout is defined. Implements the [System.Exception]
Public class | BreadCrumbCollection | Contains the visiting statistics of the user
Public class | DiscoveredRout | DiscoveredRout structure contains meta data discovered in the application as well as that of those controllers and API endpoints that had firewall annotations on them.
Public class | FireWallExtensions | Extensions class used for and by the firewall
Public class | HttpStatusCodeException | Class HttpStatusCodeException. Implements the [System.Exception]
Public class | TrackingTimeLine | User tracking time line of how he / it interacted with the site

Interfaces

 | Interface | Description
Public interface | ICookiePoisoningRuleEngine | The interface ICookiePoisoningRuleEngine provides access to the Rule engine managing the count of issues detected with cookies
Public interface | IDiscoveredRoutProxy | Interface IDiscoveredRoutProxy
Public interface | IFireWallDataSource | datasets for the firewall
Public interface | IKnownLinks | Interface IKnownLinks returns all controllers/ endpoints discovered by the system
Public interface | IRazorStringRenderer | interface that can be injected using DI framework to render views for items like firewall health reporting and email templates
Public interface | IRequestsDatabase | Interface IRequestDatabase
Public interface | ISubscriptions | Indicates that the interface contains subscription data
Public interface | ISubscriptionsRepository | ASP-WAF subscription data repository
Public interface | IUserTracking | A container used by user tracking user activity in a session
Public interface | IWhoisRepository | Store IWhois information

Enumerations

 | Enumeration | Description
Public enumeration | AdminAccess | Enum AdminAccess
Public enumeration | CanvasDataType | Data format that is logged
Public enumeration | FileSafetyContext | Enum FileSafetyContext
Public enumeration | FlowReason | The reason why a consumer was transfered from one page to another
Public enumeration | GuardAction | Enum GuardAction contains firewall guard recommendations for a given request
Public enumeration | ObjectIOState | Enum ObjectIOState indicates the busy state of a backing storage


AdminAccess Enumeration

Enum AdminAccess

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum AdminAccess

Members

Member name | Description
None | The none
Guest | The guest
ReadOnly | The read only
ReadWrite | The read write
Delete | The delete
Manage | The manage users
Full | full access to manage data and users

See Also

Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Class

En exception indicating that the version is not compatible with the infrastructure used

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class ApplicationVersionException

Remarks

See error details for reason, usually this is related to storage or external API calls

See Also

ApplicationVersionException Members
Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Members

Constructors

 | Name | Description
Public method | ApplicationVersionException()()()() | Initializes a new instance of the ApplicationVersionException class.
Public method | ApplicationVersionException(Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the ApplicationVersionException class.
Public method | ApplicationVersionException(SerializationInfo, StreamingContext) | Initializes a new instance of the ApplicationVersionException class.
Public method | ApplicationVersionException(Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(Exception>)>>)) | Initializes a new instance of the ApplicationVersionException class.

See Also

ApplicationVersionException Class
Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Constructor

Overload List

 | Name | Description
Public method | ApplicationVersionException()()()() | Initializes a new instance of the ApplicationVersionException class.
Public method | ApplicationVersionException(Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the ApplicationVersionException class.
Public method | ApplicationVersionException(SerializationInfo, StreamingContext) | Initializes a new instance of the ApplicationVersionException class.
Public method | ApplicationVersionException(Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(Exception>)>>)) | Initializes a new instance of the ApplicationVersionException class.

See Also

ApplicationVersionException Class
ApplicationVersionException Members
Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Constructor

Initializes a new instance of the ApplicationVersionException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ApplicationVersionException()

See Also

ApplicationVersionException Class
ApplicationVersionException Overload
Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Constructor (Nullable(String))

ApplicationVersionException Constructor (Nullable<(Of <(<'String>)>)>)

Initializes a new instance of the ApplicationVersionException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ApplicationVersionException(
    Nullable<string> message
)

Parameters

message
Type: Nullable <(Of <(<' String >)>)>
The message that describes the error.

See Also

ApplicationVersionException Class
ApplicationVersionException Overload
Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Constructor (SerializationInfo, StreamingContext)

Initializes a new instance of the ApplicationVersionException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ApplicationVersionException(
    SerializationInfo info,
    StreamingContext context
)

Parameters

info
Type: SerializationInfo
The SerializationInfo that holds the serialized object data about the exception being thrown.
context
Type: StreamingContext
The StreamingContext that contains contextual information about the source or destination.

See Also

ApplicationVersionException Class
ApplicationVersionException Overload
Walter.Web.FireWall.Infrastructure Namespace


ApplicationVersionException Constructor (Nullable(String), Nullable(Exception))

ApplicationVersionException Constructor (Nullable<(Of <(<'String>)>)>, Nullable<(Of <(<'Exception>)>)>)

Initializes a new instance of the ApplicationVersionException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ApplicationVersionException(
    Nullable<string> message,
    Nullable<Exception> innerException
)

Parameters

message
Type: Nullable <(Of <(<' String >)>)>
The error message that explains the reason for the exception.
innerException
Type: Nullable <(Of <(<'Exception>)>)>
The exception that is the cause of the current exception, or a null reference (nullNothingnullptra null reference (Nothing in Visual Basic) in Visual Basic) if no inner exception is specified.

See Also

ApplicationVersionException Class
ApplicationVersionException Overload
Walter.Web.FireWall.Infrastructure Namespace


BadDefaultRouteException Class

Class BadDefaultRouteException is created when a bad default rout is defined. Implements the [System.Exception]

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BadDefaultRouteException

See Also

BadDefaultRouteException Members
Walter.Web.FireWall.Infrastructure Namespace
[System.Exception]


BadDefaultRouteException Members

The BadDefaultRouteException type exposes the following members.

Constructors

 | Name | Description
Public method | BadDefaultRouteException | Initializes a new instance of the BadDefaultRouteException class.

Properties

 | Name | Description
Public property | EndPoint | Gets the route that was used to process the default rout pattern.

See Also

BadDefaultRouteException Class
Walter.Web.FireWall.Infrastructure Namespace


BadDefaultRouteException Constructor

Initializes a new instance of the BadDefaultRouteException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BadDefaultRouteException(
    string message,
    RouteEndpoint routPointer
)

Parameters

message
Type: String
The message.
routPointer
Type: RouteEndpoint
The pointer.

See Also

BadDefaultRouteException Class
Walter.Web.FireWall.Infrastructure Namespace


BadDefaultRouteException Properties

The BadDefaultRouteException type exposes the following members.

Properties

 | Name | Description
Public property | EndPoint | Gets the route that was used to process the default rout pattern.

See Also

BadDefaultRouteException Class
Walter.Web.FireWall.Infrastructure Namespace


EndPoint Property

BadDefaultRouteException..::..EndPoint Property

Gets the route that was used to process the default rout pattern.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RouteEndpoint EndPoint { get; }

Field Value

The rout endpoint .

See Also

BadDefaultRouteException Class
Walter.Web.FireWall.Infrastructure Namespace


BreadCrumbCollection Class

Contains the visiting statistics of the user

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BreadCrumbCollection

See Also

BreadCrumbCollection Members
Walter.Web.FireWall.Infrastructure Namespace


BreadCrumbCollection Members

The BreadCrumbCollection type exposes the following members.

Methods

 | Name | Description
Public method | CountWhen | Number of items the page was visited in the session
Public method | GetEnumerator | Returns an enumerator that iterates through the collection.
Public method | IndexOf(DiscoveredRout, Int32, EndPointCompairs) | Test if the breadcrumb contains a rout and if it does give the first instance based on the start position
Public method | IndexOf(BreadCrumb) | Get the index of the entry
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | Snapshot | Get a snapshot of the data at any given time
Public method | ToJson | Return current instance as json
Public method | ToString | Returns a [System.String] that represents this instance.
 | TryFromJson | Try parse the json to a BreadCrumbCollection
Public method | UserAgentsUsed | Returns all user agents used by the user during this page visit
Public method | UserContextSwichCount | Returns the distinct count of user agents used by the user

Properties

 | Name | Description
Public property | Count | Number of items stored in the buffer
Public property | Current | return the current page/ request
Public property | FireWallSession | Session ID for this breadcrumb collection
Public property | Item | Gets the BreadCrumb at the specified index.
Public property | Length | Total capacity that the item is capable to stored before data is removed from the buffer

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


BreadCrumbCollection Methods

The BreadCrumbCollection type exposes the following members.

Methods

 | Name | Description
Public method | CountWhen | Number of items the page was visited in the session
Public method | GetEnumerator | Returns an enumerator that iterates through the collection.
Public method | IndexOf(DiscoveredRout, Int32, EndPointCompairs) | Test if the breadcrumb contains a rout and if it does give the first instance based on the start position
Public method | IndexOf(BreadCrumb) | Get the index of the entry
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | Snapshot | Get a snapshot of the data at any given time
Public method | ToJson | Return current instance as json
Public method | ToString | Returns a [System.String] that represents this instance.
 | TryFromJson | Try parse the json to a BreadCrumbCollection
Public method | UserAgentsUsed | Returns all user agents used by the user during this page visit
Public method | UserContextSwichCount | Returns the distinct count of user agents used by the user

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


CountWhen Method

BreadCrumbCollection..::..CountWhen Method

Number of items the page was visited in the session

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int CountWhen(
    IPageRequest page,
    EndPointCompairs compaire
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page to find
compaire
Type: Walter.Web.FireWall..::..EndPointCompairs
Define how to compare the URL

Field Value

The count.

Remarks

You can specify the way to count, if using an API make sure to use Method to accurately count CRUD controller endpoints

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


GetEnumerator Method

BreadCrumbCollection..::..GetEnumerator Method

Returns an enumerator that iterates through the collection.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerator<BreadCrumb> GetEnumerator()

Return Value

An enumerator that can be used to iterate through the collection.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


IndexOf Method

BreadCrumbCollection..::..IndexOf Method

Overload List

 | Name | Description
Public method | IndexOf(DiscoveredRout, Int32, EndPointCompairs) | Test if the breadcrumb contains a rout and if it does give the first instance based on the start position
Public method | IndexOf(BreadCrumb) | Get the index of the entry

See Also

BreadCrumbCollection Class
BreadCrumbCollection Members
Walter.Web.FireWall.Infrastructure Namespace


IndexOf Method (DiscoveredRout, Int32, EndPointCompairs)

BreadCrumbCollection..::..IndexOf Method (DiscoveredRout, Int32, EndPointCompairs)

Test if the breadcrumb contains a rout and if it does give the first instance based on the start position

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int IndexOf(
    DiscoveredRout rout,
    int startAtPosition,
    EndPointCompairs compaire
)

Parameters

rout
Type: Walter.Web.FireWall.Infrastructure..::..DiscoveredRout
startAtPosition
Type: Int32
the position to start looking
compaire
Type: Walter.Web.FireWall..::..EndPointCompairs
how to compare the method

Return Value

The index or -1 if not found

See Also

BreadCrumbCollection Class
IndexOf Overload
Walter.Web.FireWall.Infrastructure Namespace


IndexOf Method (BreadCrumb)

BreadCrumbCollection..::..IndexOf Method (BreadCrumb)

Get the index of the entry

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int IndexOf(
    BreadCrumb value
)

Parameters

value
Type: Walter.Web.FireWall.Models..::..BreadCrumb
the item to find

Return Value

the index or -1 of not found

See Also

BreadCrumbCollection Class
IndexOf Overload
Walter.Web.FireWall.Infrastructure Namespace


SetId Method

BreadCrumbCollection..::..SetId Method

Sets the technical identifier.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


SetValues Method

BreadCrumbCollection..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


Snapshot Method

BreadCrumbCollection..::..Snapshot Method

Get a snapshot of the data at any given time

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<BreadCrumb> Snapshot()

Return Value

IReadOnlyList<BreadCrumb>.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


ToJson Method

BreadCrumbCollection..::..ToJson Method

Return current instance as json

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToJson()

Return Value

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


ToString Method

BreadCrumbCollection..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


TryFromJson Method

BreadCrumbCollection..::..TryFromJson Method

Try parse the json to a BreadCrumbCollection

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool TryFromJson(
    string json,
    out Nullable<BreadCrumbCollection> breadCrumbCollection
)

Parameters

json
Type: String
breadCrumbCollection
Type: Nullable <(Of <(<' BreadCrumbCollection >)>)>%

Return Value

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


UserAgentsUsed Method

BreadCrumbCollection..::..UserAgentsUsed Method

Returns all user agents used by the user during this page visit

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<UserAgentAudit> UserAgentsUsed()

Return Value

System.Collections.Generic.IReadOnlyList<Walter.Web.FireWall.Browser.IUAUserAgent>.

Remarks

If the user has more than one he probably used the F12 developer tools and switched views or is spoofing with the user agents

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


UserContextSwichCount Method

BreadCrumbCollection..::..UserContextSwichCount Method

Returns the distinct count of user agents used by the user

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int UserContextSwichCount()

Return Value

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


BreadCrumbCollection Properties

The BreadCrumbCollection type exposes the following members.

Properties

 | Name | Description
Public property | Count | Number of items stored in the buffer
Public property | Current | return the current page/ request
Public property | FireWallSession | Session ID for this breadcrumb collection
Public property | Item | Gets the BreadCrumb at the specified index.
Public property | Length | Total capacity that the item is capable to stored before data is removed from the buffer

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


Count Property

BreadCrumbCollection..::..Count Property

Number of items stored in the buffer

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Count { get; }

Field Value

The count.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


Current Property

BreadCrumbCollection..::..Current Property

return the current page/ request

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BreadCrumb Current { get; }

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


FireWallSession Property

BreadCrumbCollection..::..FireWallSession Property

Session ID for this breadcrumb collection

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal FireWallSession { get; set; }

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


Item Property

BreadCrumbCollection..::..Item Property

Gets the BreadCrumb at the specified index.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BreadCrumb this[
    int index
] { get; }

Parameters

index
Type: Int32
The index.

Return Value

BreadCrumb at index

Exceptions

Exception | Condition
[System.ArgumentOutOfRangeException] | index is less than 0. -or- index is equal to or greater than Count.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


Length Property

BreadCrumbCollection..::..Length Property

Total capacity that the item is capable to stored before data is removed from the buffer

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Length { get; }

Field Value

The length.

See Also

BreadCrumbCollection Class
Walter.Web.FireWall.Infrastructure Namespace


CanvasDataType Enumeration

Data format that is logged

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum CanvasDataType

Members

Member name | Description
HTML | Rendered page raw HTML
PNG | rendered page as PNG image
PDF | rendered page as PDF

See Also

Walter.Web.FireWall.Infrastructure Namespace


DiscoveredRout Class

DiscoveredRout structure contains meta data discovered in the application as well as that of those controllers and API endpoints that had firewall annotations on them.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class DiscoveredRout : IDiscoveredRoutProxy

Remarks

The type of endpoint, it's firewall rules are buffered in the discoveredRout structure in such a way as that the runtime can easily assert what rules apply as well as what overrides are assigned to a given path.

This structure is created by the firewall in the directory provided in the configuration using the domain name in its name ensuring that if multiple domains use the same folder that the file stays intact. The file is created if it does not exist or if the compilation data of the site is later then the file's time stamp.

See Also

DiscoveredRout Members
Walter.Web.FireWall.Infrastructure Namespace


DiscoveredRout Members

The DiscoveredRout type exposes the following members.

Constructors

 | Name | Description
Public method | DiscoveredRout(Uri, String, String) | Initializes a new instance of the DiscoveredRout class.

Methods

 | Name | Description
Public method | Equals(Uri, ProtocolMethod) | Determines whether the specified [Uri] points to this endpoint.
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DiscoveredRout>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToJson | Create creates the json for a DiscoveredRout
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

Name Description
Public property Action
Gets or sets the action.
Public property ActionRout
Gets the action rout if specified. The rout would override the action's name in the URL
Public property AddHock
Indicate that a endpoint blocks Addhock request
Public property AllowAnonymous
Gets a value indicating whether [allow anonymous].
Public property AppliedRules
Rules used to provide security to a URL endpoint
Public property Attributes
Gets the names of the attributes that have been assigned to the endpoint.
Public property AuthorizedUsersOnly
Gets a value indicating whether users must have been authorized to access this route.
Public property BlockCount
Times the resource was blocked and not send to the user
Public property BlockDuration
Defines a rule indicating successive violation will alter the block duration
Public property BlockedByBots
Times the page was not served to a user identified as being a Bot
Public property BlockedByHumans
Times the page was not served to a user identified as being a human
Public property BlockedBySearchEngines
Times the page was not served to a user identified as being a search engine
Public property BlockedEndPointPort
indicates that no access to the resource is possible for a given port
Public property BrowserIntentions
Indicate that a endpoint blocks frequent where the user-agent used has the wrong reputation
Public property BuilderErrors
Gets the issues encountered when generating the protection settings for this discovered rout.
Public property Controller
Gets or sets the controller.
Public property ControllerRout
Gets the controller rout if specified. The rout would override the controllers's name in the URL ///
Public property CrossSite
Rule how to work with Cross Site Requests (CORS)
Public property DocumentType
Gets the type of the document that is being interacted with from the standpoint of the firewall.
Public property FilterAction
Gets the filtering instructions for the firewall on an action.
Public property FireWallConfiguration
The configuration endpoint used by the firewall using 2nd layer protection for firewalls that use MVC and Pages
Public property FirewallDisabled
If set to true the firewall will not test any rule in the endpoint
Public property FirstRequest
First time the URL was requested, null if never requested
Public property FullUrl
Gets the full URL that is domain name as well as Url (controller + action) or Route attribute.
Public property GeoBlock
Geographical block configuration for this endpoint
Public property GeoFree
exclusion rule for endpoint
Public property HasAntiforgery
Gets or sets a value indicating whether this instance has anti-forgery.
Public property HasNoAnnotations
Indicates that the endpoint has no annotation and the default rules will apply
Public property HitRates
Indicate that a endpoint blocks frequent hit request
Public property HoneyPotTrap
Annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious by the firewall
Public property IsAsync
Gets a value indicating whether this routed request will execute asynchronous.
Public property IsFile
Gets or sets a value indicating whether this instance is file (physical or virtual).
Public property IsHomePage
Gets a value indicating whether this instance is the site's home page.
Public property ISPTrustLevel
Internet service provider reputation filter
Public property KnownBadBoys
Rule how to work with known malicious users
Public property LastRequest
Last time the URL was requested, null if never requested
Public property LinkType
Gets the type of endpoint that this route links to. possible values are Page, Resource, ApiEndpoint, JsonEndpoint, PhysicalFile, VirualFile.
Public property MaliciousUserAgents
Rule how to work with malicious UserAgents
Public property Method
Gets the maximum access for invalid user access attempts redirect URL.
Gets or sets the protocol method.
Public property Minifiction
The average minification that the firewall is able to do on this endpoint
Public property NoValidate
The NoValidate option tells the firewall what rules to skip
Public property PageRefresh
Indicate that a endpoint blocks frequent hit request
Public property ParameterNames
Contains the parameter names if endpoints contains parameters
Public property Parameters
Gets the parameters of the action if any.
Public property ParameterTypes
The parameter types in the method
Public property Path
Path to the endpoint in form of {namespace}.{class}.{method} or location on disk for a physical file
Public property ReturnType
Gets or sets the type of the data type returned.
Public property Scrubbing
page scrubbing protection configuration override
Public property SiteMap
Indicate that a endpoint blocks frequent where the page was not visible from the users rendered resources
Public property TolerateWrongProtocolMethod
Gets or sets a value indicating whether to tolerate wrong protocol methods.
Public property UserFilter
Indicate that a endpoint controls what users are permitted
Public property ViewCount
Times resource was send to any type of consumer including that at the time of server are not known (typically first page);
Public property ViewedByBots
Times resource was send to Bots
Public property ViewedByHumans
Times resource was send to Humans
Public property ViewedBySearchEngines
Times resource was send to Search Engines
Public property WhiteList
Gets or sets the user groups blocked you can combine the user groups to allow several types of users..
If assigned then it indicates that IP CIDR address range has been White-listed, access from all others locations is prohibited

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


DiscoveredRout Constructor (Uri, String, String)

Initializes a new instance of the DiscoveredRout class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DiscoveredRout(
    Uri fullUri,
    string returnType,
    string path
)

Parameters

fullUri
Type: Uri
The full URI.
returnType
Type: String
Type of the return.
path
Type: String
The .net class method path or path to disk

Exceptions

Exception | Condition
[ArgumentNullException] | returnType
[ArgumentNullException] | fullUri

See Also

DiscoveredRout Class
#ctor Overload
Walter.Web.FireWall.Infrastructure Namespace


DiscoveredRout Methods

The DiscoveredRout type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Uri, ProtocolMethod) | Determines whether the specified [Uri] points to this endpoint.
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DiscoveredRout>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToJson | Create creates the json for a DiscoveredRout
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Equals Method

DiscoveredRout..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Uri, ProtocolMethod) | Determines whether the specified [Uri] points to this endpoint.
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DiscoveredRout>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

DiscoveredRout Class
DiscoveredRout Members
Walter.Web.FireWall.Infrastructure Namespace


Equals Method (Uri, ProtocolMethod)

DiscoveredRout..::..Equals Method (Uri, ProtocolMethod)

Determines whether the specified [Uri] points to this endpoint.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Uri uri,
    ProtocolMethod method
)

Parameters

uri
Type: Uri
The URI used to compare with.
method
Type: ProtocolMethod
the method used on the request

Return Value

true if the method and path matches a known link, false otherwise.

See Also

DiscoveredRout Class
Equals Overload
Walter.Web.FireWall.Infrastructure Namespace


Equals Method (Nullable(Object))

DiscoveredRout..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

DiscoveredRout Class
Equals Overload
Walter.Web.FireWall.Infrastructure Namespace


Equals Method (Nullable(DiscoveredRout))

DiscoveredRout..::..Equals Method (Nullable<(Of <(<'DiscoveredRout>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<DiscoveredRout> other
)

Parameters

other
Type: Nullable <(Of <(<' DiscoveredRout >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

DiscoveredRout Class
Equals Overload
Walter.Web.FireWall.Infrastructure Namespace


GetHashCode Method

DiscoveredRout..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ToJson Method

DiscoveredRout..::..ToJson Method

Create creates the json for a DiscoveredRout

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToJson()

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ToString Method

DiscoveredRout..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


DiscoveredRout Properties

The DiscoveredRout type exposes the following members.

Properties

Name Description
Public property Action
Gets or sets the action.
Public property ActionRout
Gets the action rout if specified. The rout would override the action's name in the URL
Public property AddHock
Indicate that a endpoint blocks Addhock request
Public property AllowAnonymous
Gets a value indicating whether [allow anonymous].
Public property AppliedRules
Rules used to provide security to a URL endpoint
Public property Attributes
Gets the names of the attributes that have been assigned to the endpoint.
Public property AuthorizedUsersOnly
Gets a value indicating whether users must have been authorized to access this route.
Public property BlockCount
Times the resource was blocked and not send to the user
Public property BlockDuration
Defines a rule indicating successive violation will alter the block duration
Public property BlockedByBots
Times the page was not served to a user identified as being a Bot
Public property BlockedByHumans
Times the page was not served to a user identified as being a human
Public property BlockedBySearchEngines
Times the page was not served to a user identified as being a search engine
Public property BlockedEndPointPort
indicates that no access to the resource is possible for a given port
Public property BrowserIntentions
Indicate that a endpoint blocks frequent where the user-agent used has the wrong reputation
Public property BuilderErrors
Gets the issues encountered when generating the protection settings for this discovered rout.
Public property Controller
Gets or sets the controller.
Public property ControllerRout
Gets the controller rout if specified. The rout would override the controllers's name in the URL ///
Public property CrossSite
Rule how to work with Cross Site Requests (CORS)
Public property DocumentType
Gets the type of the document that is being interacted with from the standpoint of the firewall.
Public property FilterAction
Gets the filtering instructions for the firewall on an action.
Public property FireWallConfiguration
The configuration endpoint used by the firewall using 2nd layer protection for firewalls that use MVC and Pages
Public property FirewallDisabled
If set to true the firewall will not test any rule in the endpoint
Public property FirstRequest
First time the URL was requested, null if never requested
Public property FullUrl
Gets the full URL that is domain name as well as Url (controller + action) or Route attribute.
Public property GeoBlock
Geographical block configuration for this endpoint
Public property GeoFree
exclusion rule for endpoint
Public property HasAntiforgery
Gets or sets a value indicating whether this instance has anti-forgery.
Public property HasNoAnnotations
Indicates that the endpoint has no annotation and the default rules will apply
Public property HitRates
Indicate that a endpoint blocks frequent hit request
Public property HoneyPotTrap
Annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious by the firewall
Public property IsAsync
Gets a value indicating whether this routed request will execute asynchronous.
Public property IsFile
Gets or sets a value indicating whether this instance is file (physical or virtual).
Public property IsHomePage
Gets a value indicating whether this instance is the site's home page.
Public property ISPTrustLevel
Internet service provider reputation filter
Public property KnownBadBoys
Rule how to work with known malicious users
Public property LastRequest
Last time the URL was requested, null if never requested
Public property LinkType
Gets the type of endpoint that this route links to. possible values are Page, Resource, ApiEndpoint, JsonEndpoint, PhysicalFile, VirualFile.
Public property MaliciousUserAgents
Rule how to work with malicious UserAgents
Public property Method
Gets the maximum access for invalid user access attempts redirect URL.
Gets or sets the protocol method.
Public property Minifiction
The average minification that the firewall is able to do on this endpoint
Public property NoValidate
The NoValidate option tells the firewall what rules to skip
Public property PageRefresh
Indicate that a endpoint blocks frequent hit request
Public property ParameterNames
Contains the parameter names if endpoints contains parameters
Public property Parameters
Gets the parameters of the action if any.
Public property ParameterTypes
The parameter types in the method
Public property Path
Path to the endpoint in form of {namespace}.{class}.{method} or location on disk for a physical file
Public property ReturnType
Gets or sets the type of the data type returned.
Public property Scrubbing
page scrubbing protection configuration override
Public property SiteMap
Indicate that a endpoint blocks frequent where the page was not visible from the users rendered resources
Public property TolerateWrongProtocolMethod
Gets or sets a value indicating whether to tolerate wrong protocol methods.
Public property UserFilter
Indicate that a endpoint controls what users are permitted
Public property ViewCount
Times resource was send to any type of consumer including that at the time of server are not known (typically first page);
Public property ViewedByBots
Times resource was send to Bots
Public property ViewedByHumans
Times resource was send to Humans
Public property ViewedBySearchEngines
Times resource was send to Search Engines
Public property WhiteList
Gets or sets the user groups blocked you can combine the user groups to allow several types of users..
If assigned then it indicates that IP CIDR address range has been White-listed, access from all others locations is prohibited

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Action Property

DiscoveredRout..::..Action Property

Gets or sets the action.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> Action { get; set; }

Field Value

The action.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ActionRout Property

DiscoveredRout..::..ActionRout Property

Gets the action rout if specified. The rout would override the action's name in the URL

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ActionRout { get; set; }

Field Value

The action rout.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


AddHock Property

DiscoveredRout..::..AddHock Property

Indicate that a endpoint blocks Addhock request

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<AddhockAttribute> AddHock { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


AllowAnonymous Property

DiscoveredRout..::..AllowAnonymous Property

Gets a value indicating whether [allow anonymous].

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AllowAnonymous { get; set; }

Field Value

true if [allow anonymous]; otherwise, false.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


AppliedRules Property

DiscoveredRout..::..AppliedRules Property

Rules used to provide security to a URL endpoint

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AppliedUrlRules AppliedRules { get; set; }

Field Value

The applied rules.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Attributes Property

DiscoveredRout..::..Attributes Property

Gets the names of the attributes that have been assigned to the endpoint.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> Attributes { get; set; }

Field Value

The attributes.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


AuthorizedUsersOnly Property

DiscoveredRout..::..AuthorizedUsersOnly Property

Gets a value indicating whether users must have been authorized to access this route.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool AuthorizedUsersOnly { get; set; }

Field Value

true if [authorized users]; otherwise, false.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BlockCount Property

DiscoveredRout..::..BlockCount Property

Times the resource was blocked and not send to the user

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int BlockCount { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BlockDuration Property

DiscoveredRout..::..BlockDuration Property

Defines a rule indicating successive violation will alter the block duration

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<BlockDurationAttribute> BlockDuration { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BlockedByBots Property

DiscoveredRout..::..BlockedByBots Property

Times the page was not served to a user identified as being a Bot

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int BlockedByBots { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BlockedByHumans Property

DiscoveredRout..::..BlockedByHumans Property

Times the page was not served to a user identified as being a human

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int BlockedByHumans { get; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BlockedBySearchEngines Property

DiscoveredRout..::..BlockedBySearchEngines Property

Times the page was not served to a user identified as being a search engine

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int BlockedBySearchEngines { get; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BlockedEndPointPort Property

DiscoveredRout..::..BlockedEndPointPort Property

indicates that no access to the resource is possible for a given port

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<EndPoinPortAttribute> BlockedEndPointPort { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BrowserIntentions Property

DiscoveredRout..::..BrowserIntentions Property

Indicate that a endpoint blocks frequent where the user-agent used has the wrong reputation

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<BrowserIntentionsAttribute> BrowserIntentions { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


BuilderErrors Property

DiscoveredRout..::..BuilderErrors Property

Gets the issues encountered when generating the protection settings for this discovered rout.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IList<string> BuilderErrors { get; }

Field Value

The builder errors.

Remarks

You should not have any entries in this list

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Controller Property

DiscoveredRout..::..Controller Property

Gets or sets the controller.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> Controller { get; set; }

Field Value

The controller.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ControllerRout Property

DiscoveredRout..::..ControllerRout Property

Gets the controller rout if specified. The rout would override the controllers's name in the URL ///

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ControllerRout { get; set; }

Field Value

The controller rout.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


CrossSite Property

DiscoveredRout..::..CrossSite Property

Rule how to work with Cross Site Requests (CORS)

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<CrossSiteAttribute> CrossSite { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


DocumentType Property

DiscoveredRout..::..DocumentType Property

Gets the type of the document that is being interacted with from the standpoint of the firewall.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ContentTypes DocumentType { get; set; }

Field Value

The type of the document.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


FilterAction Property

DiscoveredRout..::..FilterAction Property

Gets the filtering instructions for the firewall on an action.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes FilterAction { get; set; }

Field Value

The filter set on the action.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


FireWallConfiguration Property

DiscoveredRout..::..FireWallConfiguration Property

The configuration endpoint used by the firewall using 2nd layer protection for firewalls that use MVC and Pages

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<FireWallConfigurationAttribute> FireWallConfiguration { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


FirewallDisabled Property

DiscoveredRout..::..FirewallDisabled Property

If set to true the firewall will not test any rule in the endpoint

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool FirewallDisabled { get; set; }

Remarks

the value get's set by applying a DisableFirewallAttribute on an action, Page or controller

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


FirstRequest Property

DiscoveredRout..::..FirstRequest Property

First time the URL was requested, null if never requested

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> FirstRequest { get; set; }

Remarks

Date is in UTC

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


FullUrl Property

DiscoveredRout..::..FullUrl Property

Gets the full URL that is domain name as well as Url (controller + action) or Route attribute.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri FullUrl { get; set; }

Field Value

The full URL.

Exceptions

Exception | Condition
[ArgumentNullException] | FullUrl

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


GeoBlock Property

DiscoveredRout..::..GeoBlock Property

Geographical block configuration for this endpoint

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<GeoBlockAttribute> GeoBlock { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


GeoFree Property

DiscoveredRout..::..GeoFree Property

exclusion rule for endpoint

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<GeoIgnoreAttribute> GeoFree { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


HasAntiforgery Property

DiscoveredRout..::..HasAntiforgery Property

Gets or sets a value indicating whether this instance has anti-forgery.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasAntiforgery { get; set; }

Field Value

true if this instance has anti-forgery; otherwise, false.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


HasNoAnnotations Property

DiscoveredRout..::..HasNoAnnotations Property

Indicates that the endpoint has no annotation and the default rules will apply

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasNoAnnotations { get; set; }

Remarks

If this is an API endpoint then the recommended API validation Rules will apply

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


HitRates Property

DiscoveredRout..::..HitRates Property

Indicate that a endpoint blocks frequent hit request

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<HitRatioAttribute> HitRates { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


HoneyPotTrap Property

DiscoveredRout..::..HoneyPotTrap Property

Annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious by the firewall

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<HoneyPotTrapAttribute> HoneyPotTrap { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


IsAsync Property

DiscoveredRout..::..IsAsync Property

Gets a value indicating whether this routed request will execute asynchronous.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsAsync { get; set; }

Field Value

true if this instance is asynchronous; otherwise, false.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


IsFile Property

DiscoveredRout..::..IsFile Property

Gets or sets a value indicating whether this instance is file (physical or virtual).

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsFile { get; set; }

Field Value

true if this instance is file; otherwise, false.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


IsHomePage Property

DiscoveredRout..::..IsHomePage Property

Gets a value indicating whether this instance is the site's home page.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsHomePage { get; set; }

Field Value

true if this instance is home page; otherwise, false.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ISPTrustLevel Property

DiscoveredRout..::..ISPTrustLevel Property

Internet service provider reputation filter

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<ISPTrustLevelAttribute> ISPTrustLevel { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


KnownBadBoys Property

DiscoveredRout..::..KnownBadBoys Property

Rule how to work with known malicious users

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<KnownBadBoysAttribute> KnownBadBoys { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


LastRequest Property

DiscoveredRout..::..LastRequest Property

Last time the URL was requested, null if never requested

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> LastRequest { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


LinkType Property

DiscoveredRout..::..LinkType Property

Gets the type of endpoint that this route links to. possible values are Page, Resource, ApiEndpoint, JsonEndpoint, PhysicalFile, VirualFile.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LinkType LinkType { get; set; }

Field Value

Link type to process.

Remarks

The different end types are processed differently, a Page is not the same as a JsonEndpoint, some are expected as being loaded by a page some are not expected to be accessed by users directly The rule engine works differently based on type as well as the returning type of data.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


MaliciousUserAgents Property

DiscoveredRout..::..MaliciousUserAgents Property

Rule how to work with malicious UserAgents

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<MaliciousUserAgentsAttribute> MaliciousUserAgents { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Method Property

DiscoveredRout..::..Method Property

Gets the maximum access for invalid user access attempts redirect URL.
Gets or sets the protocol method.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ProtocolMethod Method { get; set; }

Field Value

The maximum attempts redirect URL.

Field Value

The method.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Minifiction Property

DiscoveredRout..::..Minifiction Property

The average minification that the firewall is able to do on this endpoint

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double Minifiction { get; set; }

Remarks

This value will be set by the firewall if you use [Minify] on your pages and actions

Examples

Minify the rendered Razor view. You can access the compressed in the post processing as well as in the page reporting.
C#
[Minify]
public async Task<IActionResult> Index()
{
  var model= await Factory.NavigationModel().ConfigureAwayt(false);
  return View(model);
}

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace
Walter.Web.FireWall.Annotations..::..MinifyAttribute


NoValidate Property

DiscoveredRout..::..NoValidate Property

The NoValidate option tells the firewall what rules to skip

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions NoValidate { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


PageRefresh Property

DiscoveredRout..::..PageRefresh Property

Indicate that a endpoint blocks frequent hit request

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<PageRefreshAttribute> PageRefresh { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ParameterNames Property

DiscoveredRout..::..ParameterNames Property

Contains the parameter names if endpoints contains parameters

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<IReadOnlyList<string>> ParameterNames { get; set; }

Remarks

These values are used to speed-up processing and assist in detecting semantic URL attack

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Parameters Property

DiscoveredRout..::..Parameters Property

Gets the parameters of the action if any.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> Parameters { get; set; }

Field Value

The parameters.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ParameterTypes Property

DiscoveredRout..::..ParameterTypes Property

The parameter types in the method

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<Type> ParameterTypes { get; }

Remarks

AllowRaiseIncident for external parameters to find methods that have a certain class as model

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Path Property

DiscoveredRout..::..Path Property

Path to the endpoint in form of {namespace}.{class}.{method} or location on disk for a physical file

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Path { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ReturnType Property

DiscoveredRout..::..ReturnType Property

Gets or sets the type of the data type returned.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ReturnType { get; set; }

Field Value

The type of the return.

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


Scrubbing Property

DiscoveredRout..::..Scrubbing Property

page scrubbing protection configuration override

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<PageScrubbingAttribute> Scrubbing { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


SiteMap Property

DiscoveredRout..::..SiteMap Property

Indicate that a endpoint blocks frequent where the page was not visible from the users rendered resources

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<SiteMapAttribute> SiteMap { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


TolerateWrongProtocolMethod Property

DiscoveredRout..::..TolerateWrongProtocolMethod Property

Gets or sets a value indicating whether to tolerate wrong protocol methods.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TolerateWrongProtocolMethod { get; set; }

Field Value

true if tolerating wrong protocol methods; otherwise, false.

Remarks

The default rule is applied from the firewall default rules in the firewall configuration

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace
Walter.Web.FireWall.Configurations..::..RulesConfig


UserFilter Property

DiscoveredRout..::..UserFilter Property

Indicate that a endpoint controls what users are permitted

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<UsersAttribute> UserFilter { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ViewCount Property

DiscoveredRout..::..ViewCount Property

Times resource was send to any type of consumer including that at the time of server are not known (typically first page);

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int ViewCount { get; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ViewedByBots Property

DiscoveredRout..::..ViewedByBots Property

Times resource was send to Bots

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int ViewedByBots { get; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ViewedByHumans Property

DiscoveredRout..::..ViewedByHumans Property

Times resource was send to Humans

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int ViewedByHumans { get; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


ViewedBySearchEngines Property

DiscoveredRout..::..ViewedBySearchEngines Property

Times resource was send to Search Engines

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int ViewedBySearchEngines { get; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


WhiteList Property

DiscoveredRout..::..WhiteList Property

Gets or sets the user groups blocked you can combine the user groups to allow several types of users..
If assigned then it indicates that IP CIDR address range has been White-listed, access from all others locations is prohibited

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<WhiteListIPAttribute>[] WhiteList { get; set; }

See Also

DiscoveredRout Class
Walter.Web.FireWall.Infrastructure Namespace


FileSafetyContext Enumeration

Enum FileSafetyContext

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FileSafetyContext

Members

Member name | Description
NotSet | The not set
wwwroot | The wwwroot
AppData | The application data
Binaries | The binaries

See Also

Walter.Web.FireWall.Infrastructure Namespace


FireWallExtensions Class

Extensions class used for and by the firewall

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static class FireWallExtensions

See Also

FireWallExtensions Members
Walter.Web.FireWall.Infrastructure Namespace


FireWallExtensions Members

The FireWallExtensions type exposes the following members.

Methods

Name | Description
Any(IList<(Of <<'(SiteMapPageLinks>)>>), Uri) | Test if a SiteMapPageLinks maps to a given URL
Any(IList<(Of <<'(SiteMapPageLinks>)>>), String) | Test if a SiteMapPageLinks maps to a given path
Any(FirewallBlockReasons, FirewallBlockReasons) | Test if any FirewallBlockReasons value overlap
Any(UAEngineTypes, UAEngineTypes) | Test if the Browser engine supports a rendering engine
Any(PortStatus, PortStatus) | Test if the PortStatus contains any of the provided values
Any(FireWallGuardActions, FireWallGuardActions) | Test if the Browser engine supports a rendering engine
Any(EMailRoles, EMailRoles) | Test if any EMailRoles value overlap
Any(UserTypes, UserTypes) | Test if any UserTypes value overlap
Any(KnownIntentions, KnownIntentions) | Test if any KnownIntentions value overlap
Any(FireWallGuards, FireWallGuards) | Test if any FireWallGuards value overlap
Checksum | returns a 40 character string
Count(FirewallBlockReasons) | Counts the specified reasons that have been detected.
GetFlags(FireWallLicencedFeatures) | Gets the flags of a specific FireWallLicencedFeatures.
GetFlags(EMailRoles) | Gets the flags of a specific EMailRoles.
GetFlags(TrustingSites) | Gets the flags in a TrustingSites enumerator to test value.
GetFlags(RequestersAssociations) | Gets the flags in a RequestersAssociations enumerator to test value.
GetFlags(FirewallAllowReasons) | Gets the flags in a FirewallAllowReasons enumerator to test value.
GetFlags(UserTypes) | Gets the flags in a UserTypes enumerator to test value.
GetFlags(FirewallBlockReasons) | Gets the flags in a FirewallBlockReasons enumerator to test value.
GetFlags(FireWallGuards) | Gets the flags in a FireWallGuards enumerator to test value.
GetFlags(FireWallGuardActions) | Gets the flags in a FireWallGuardModules enumerator to test value.
GetFlags(FireWallContexts) | Gets the flags in a FireWallContexts enumerator to test value.
HashCode | returns a 40 character SHA1 character string
IndexOf | Test if a SiteMapPageLinks maps to a given URL
IPAddress(HttpRequest) | get the IP address.
IPAddress(HttpContext, Nullable<(Of <<'(ILogger>)>>)) | Get's the IP address
SetUtcDate | Sets the UTC date in session.
SqlLike | perform a SQLs the like comparison.
TryGetResponceType | Tries the type of the get response.
TryGetUtcDate | Tries to get the get UTC date from the session.
Url | Get the URLs the specified request.

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


FireWallExtensions Methods

The FireWallExtensions type exposes the following members.

Methods

Name | Description
Any(IList<(Of <<'(SiteMapPageLinks>)>>), Uri) | Test if a SiteMapPageLinks maps to a given URL
Any(IList<(Of <<'(SiteMapPageLinks>)>>), String) | Test if a SiteMapPageLinks maps to a given path
Any(FirewallBlockReasons, FirewallBlockReasons) | Test if any FirewallBlockReasons value overlap
Any(UAEngineTypes, UAEngineTypes) | Test if the Browser engine supports a rendering engine
Any(PortStatus, PortStatus) | Test if the PortStatus contains any of the provided values
Any(FireWallGuardActions, FireWallGuardActions) | Test if the Browser engine supports a rendering engine
Any(EMailRoles, EMailRoles) | Test if any EMailRoles value overlap
Any(UserTypes, UserTypes) | Test if any UserTypes value overlap
Any(KnownIntentions, KnownIntentions) | Test if any KnownIntentions value overlap
Any(FireWallGuards, FireWallGuards) | Test if any FireWallGuards value overlap
Checksum | returns a 40 character string
Count(FirewallBlockReasons) | Counts the specified reasons that have been detected.
GetFlags(FireWallLicencedFeatures) | Gets the flags of a specific FireWallLicencedFeatures.
GetFlags(EMailRoles) | Gets the flags of a specific EMailRoles.
GetFlags(TrustingSites) | Gets the flags in a TrustingSites enumerator to test value.
GetFlags(RequestersAssociations) | Gets the flags in a RequestersAssociations enumerator to test value.
GetFlags(FirewallAllowReasons) | Gets the flags in a FirewallAllowReasons enumerator to test value.
GetFlags(UserTypes) | Gets the flags in a UserTypes enumerator to test value.
GetFlags(FirewallBlockReasons) | Gets the flags in a FirewallBlockReasons enumerator to test value.
GetFlags(FireWallGuards) | Gets the flags in a FireWallGuards enumerator to test value.
GetFlags(FireWallGuardActions) | Gets the flags in a FireWallGuardModules enumerator to test value.
GetFlags(FireWallContexts) | Gets the flags in a FireWallContexts enumerator to test value.
HashCode | returns a 40 character SHA1 character string
IndexOf | Test if a SiteMapPageLinks maps to a given URL
IPAddress(HttpRequest) | get the IP address.
IPAddress(HttpContext, Nullable<(Of <<'(ILogger>)>>)) | Get's the IP address
SetUtcDate | Sets the UTC date in session.
SqlLike | perform a SQLs the like comparison.
TryGetResponceType | Tries the type of the get response.
TryGetUtcDate | Tries to get the get UTC date from the session.
Url | Get the URLs the specified request.

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


Any Method

FireWallExtensions..::..Any Method

Overload List

Name | Description
Any(IList<(Of <<'(SiteMapPageLinks>)>>), Uri) | Test if a SiteMapPageLinks maps to a given URL
Any(IList<(Of <<'(SiteMapPageLinks>)>>), String) | Test if a SiteMapPageLinks maps to a given path
Any(FirewallBlockReasons, FirewallBlockReasons) | Test if any FirewallBlockReasons value overlap
Any(UAEngineTypes, UAEngineTypes) | Test if the Browser engine supports a rendering engine
Any(PortStatus, PortStatus) | Test if the PortStatus contains any of the provided values
Any(FireWallGuardActions, FireWallGuardActions) | Test if the Browser engine supports a rendering engine
Any(EMailRoles, EMailRoles) | Test if any EMailRoles value overlap
Any(UserTypes, UserTypes) | Test if any UserTypes value overlap
Any(KnownIntentions, KnownIntentions) | Test if any KnownIntentions value overlap
Any(FireWallGuards, FireWallGuards) | Test if any FireWallGuards value overlap

See Also

FireWallExtensions Class
FireWallExtensions Members
Walter.Web.FireWall.Infrastructure Namespace


Any Method (IList(SiteMapPageLinks), Uri)

FireWallExtensions..::..Any Method (IList<(Of <(<'SiteMapPageLinks>)>)>, Uri)

Test if a SiteMapPageLinks maps to a given URL

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    IList<SiteMapPageLinks> source,
    Uri url
)

Parameters

source
Type: IList<(Of <(<' SiteMapPageLinks >)>)>
the set to comapre
url
Type: Uri
the URL to find

Return Value

True if maps

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (IList(SiteMapPageLinks), String)

FireWallExtensions..::..Any Method (IList<(Of <(<'SiteMapPageLinks>)>)>, String)

Test if a SiteMapPageLinks maps to a given path

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    IList<SiteMapPageLinks> source,
    string absolutePath
)

Parameters

source
Type: IList<(Of <(<' SiteMapPageLinks >)>)>
the set to comapre
absolutePath
Type: String
the absolute path to find

Return Value

True if maps

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (FirewallBlockReasons, FirewallBlockReasons)

FireWallExtensions..::..Any Method (FirewallBlockReasons, FirewallBlockReasons)

Test if any FirewallBlockReasons value overlap

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    FirewallBlockReasons source,
    FirewallBlockReasons any
)

Parameters

source
Type: Walter.BOM..::..FirewallBlockReasons
The flag.
any
Type: Walter.BOM..::..FirewallBlockReasons
flags to test if any flag overlap exists

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (UAEngineTypes, UAEngineTypes)

FireWallExtensions..::..Any Method (UAEngineTypes, UAEngineTypes)

Test if the Browser engine supports a rendering engine

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    UAEngineTypes source,
    UAEngineTypes any
)

Parameters

source
Type: Walter.Web.FireWall.Browser..::..UAEngineTypes
the flag
any
Type: Walter.Web.FireWall.Browser..::..UAEngineTypes
flags to test if any flag overlap exists

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (PortStatus, PortStatus)

FireWallExtensions..::..Any Method (PortStatus, PortStatus)

Test if the PortStatus contains any of the provided values

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    PortStatus source,
    PortStatus any
)

Parameters

source
Type: Walter.Net.HoneyPot..::..PortStatus
the flag
any
Type: Walter.Net.HoneyPot..::..PortStatus
flags to test if any flag overlap exists

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (FireWallGuardActions, FireWallGuardActions)

FireWallExtensions..::..Any Method (FireWallGuardActions, FireWallGuardActions)

Test if the Browser engine supports a rendering engine

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    FireWallGuardActions source,
    FireWallGuardActions any
)

Parameters

source
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
the flag
any
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
flags to test if any flag overlap exists

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (EMailRoles, EMailRoles)

FireWallExtensions..::..Any Method (EMailRoles, EMailRoles)

Test if any EMailRoles value overlap

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    EMailRoles source,
    EMailRoles any
)

Parameters

source
Type: Walter.Web.FireWall.Destinations.Email..::..EMailRoles
The flag.
any
Type: Walter.Web.FireWall.Destinations.Email..::..EMailRoles
flags to test if any flag overlap exists

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (UserTypes, UserTypes)

FireWallExtensions..::..Any Method (UserTypes, UserTypes)

Test if any UserTypes value overlap

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    UserTypes source,
    UserTypes any
)

Parameters

source
Type: Walter.Web.FireWall..::..UserTypes
UserTypes
any
Type: Walter.Web.FireWall..::..UserTypes
UserTypes

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (KnownIntentions, KnownIntentions)

FireWallExtensions..::..Any Method (KnownIntentions, KnownIntentions)

Test if any KnownIntentions value overlap

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    KnownIntentions source,
    KnownIntentions any
)

Parameters

source
Type: Walter.BOM..::..KnownIntentions
KnownIntentions
any
Type: Walter.BOM..::..KnownIntentions
test if any of the KnownIntentions is set

Return Value

True if an overlap was found

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Any Method (FireWallGuards, FireWallGuards)

FireWallExtensions..::..Any Method (FireWallGuards, FireWallGuards)

Test if any FireWallGuards value overlap

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool Any(
    FireWallGuards source,
    FireWallGuards any
)

Parameters

source
Type: Walter.Web.FireWall..::..FireWallGuards
The flag.
any
Type: Walter.Web.FireWall..::..FireWallGuards
FireWallGuards

Return Value

True if an overlap was found.

See Also

FireWallExtensions Class
Any Overload
Walter.Web.FireWall.Infrastructure Namespace


Checksum Method

FireWallExtensions..::..Checksum Method

returns a 40 character string

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static int Checksum(
    StringValues values
)

Parameters

values
Type: StringValues
the values or value to convert

Return Value

integer checksum

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


Count Method (FirewallBlockReasons)

FireWallExtensions..::..Count Method (FirewallBlockReasons)

Counts the specified reasons that have been detected.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static int Count(
    FirewallBlockReasons reasons
)

Parameters

reasons
Type: Walter.BOM..::..FirewallBlockReasons
The reasons.

Return Value

System.Int32.

See Also

FireWallExtensions Class
Count Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method

FireWallExtensions..::..GetFlags Method

Overload List

Name | Description
GetFlags(FireWallLicencedFeatures) | Gets the flags of a specific FireWallLicencedFeatures.
GetFlags(EMailRoles) | Gets the flags of a specific EMailRoles.
GetFlags(TrustingSites) | Gets the flags in a TrustingSites enumerator to test value.
GetFlags(RequestersAssociations) | Gets the flags in a RequestersAssociations enumerator to test value.
GetFlags(FirewallAllowReasons) | Gets the flags in a FirewallAllowReasons enumerator to test value.
GetFlags(UserTypes) | Gets the flags in a UserTypes enumerator to test value.
GetFlags(FirewallBlockReasons) | Gets the flags in a FirewallBlockReasons enumerator to test value.
GetFlags(FireWallGuards) | Gets the flags in a FireWallGuards enumerator to test value.
GetFlags(FireWallGuardActions) | Gets the flags in a FireWallGuardModules enumerator to test value.
GetFlags(FireWallContexts) | Gets the flags in a FireWallContexts enumerator to test value.

See Also

FireWallExtensions Class
FireWallExtensions Members
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (FireWallLicencedFeatures)

FireWallExtensions..::..GetFlags Method (FireWallLicencedFeatures)

Gets the flags of a specific FireWallLicencedFeatures.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<FireWallLicencedFeatures> GetFlags(
    FireWallLicencedFeatures flagsEnum
)

Parameters

flagsEnum
Type: FireWallLicencedFeatures
The flags enumerator to test.

Return Value

IEnumerable<E>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (EMailRoles)

FireWallExtensions..::..GetFlags Method (EMailRoles)

Gets the flags of a specific EMailRoles.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<EMailRoles> GetFlags(
    EMailRoles flagsEnum
)

Parameters

flagsEnum
Type: Walter.Web.FireWall.Destinations.Email..::..EMailRoles
The flags enumerator to test.

Return Value

IEnumerable<E>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (TrustingSites)

FireWallExtensions..::..GetFlags Method (TrustingSites)

Gets the flags in a TrustingSites enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<TrustingSites> GetFlags(
    TrustingSites flagsEnum
)

Parameters

flagsEnum
Type: Walter.Web.FireWall..::..TrustingSites
The flag.

Return Value

IEnumerable<TrustingSites>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (RequestersAssociations)

FireWallExtensions..::..GetFlags Method (RequestersAssociations)

Gets the flags in a RequestersAssociations enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<RequestersAssociations> GetFlags(
    RequestersAssociations flagsEnum
)

Parameters

flagsEnum
Type: Walter.Web.FireWall..::..RequestersAssociations
The flag.

Return Value

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (FirewallAllowReasons)

FireWallExtensions..::..GetFlags Method (FirewallAllowReasons)

Gets the flags in a FirewallAllowReasons enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<FirewallAllowReasons> GetFlags(
    FirewallAllowReasons flagsEnum
)

Parameters

flagsEnum
Type: Walter.BOM..::..FirewallAllowReasons
The flag.

Return Value

IEnumerable<FirewallAllowReasons>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (UserTypes)

FireWallExtensions..::..GetFlags Method (UserTypes)

Gets the flags in a UserTypes enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<UserTypes> GetFlags(
    UserTypes flagsEnum
)

Parameters

flagsEnum
Type: Walter.Web.FireWall..::..UserTypes
The flag.

Return Value

IEnumerable<UserTypes>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (FirewallBlockReasons)

FireWallExtensions..::..GetFlags Method (FirewallBlockReasons)

Gets the flags in a FirewallBlockReasons enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<FirewallBlockReasons> GetFlags(
    FirewallBlockReasons flagsEnum
)

Parameters

flagsEnum
Type: Walter.BOM..::..FirewallBlockReasons
The flag.

Return Value

IEnumerable<UserTypes>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (FireWallGuards)

FireWallExtensions..::..GetFlags Method (FireWallGuards)

Gets the flags in a FireWallGuards enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<FireWallGuards> GetFlags(
    FireWallGuards flagsEnum
)

Parameters

flagsEnum
Type: Walter.Web.FireWall..::..FireWallGuards
The flag.

Return Value

IEnumerable<UserTypes>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (FireWallGuardActions)

FireWallExtensions..::..GetFlags Method (FireWallGuardActions)

Gets the flags in a FireWallGuardModules enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<FireWallGuardActions> GetFlags(
    FireWallGuardActions flagsEnum
)

Parameters

flagsEnum
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
The flag.

Return Value

IEnumerable<UserTypes>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


GetFlags Method (FireWallContexts)

FireWallExtensions..::..GetFlags Method (FireWallContexts)

Gets the flags in a FireWallContexts enumerator to test value.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IEnumerable<FireWallContexts> GetFlags(
    FireWallContexts flagsEnum
)

Parameters

flagsEnum
Type: Walter.BOM..::..FireWallContexts
The flag.

Return Value

IEnumerable<UserTypes>.

See Also

FireWallExtensions Class
GetFlags Overload
Walter.Web.FireWall.Infrastructure Namespace


HashCode Method

FireWallExtensions..::..HashCode Method

returns a 40 character SHA1 character string

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string HashCode(
    StringValues values
)

Parameters

values
Type: StringValues
the values or value to convert

Return Value

40 character SHA1 character string

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


IndexOf Method

FireWallExtensions..::..IndexOf Method

Test if a SiteMapPageLinks maps to a given URL

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static int IndexOf(
    IList<SiteMapPageLinks> source,
    Uri url
)

Parameters

source
Type: IList<(Of <(<' SiteMapPageLinks >)>)>
the set to compare
url
Type: Uri
the URL to find

Return Value

the index of the url or -1 if not found

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


IPAddress Method

FireWallExtensions..::..IPAddress Method

Overload List

Name | Description
IPAddress(HttpRequest) | get the IP address.
IPAddress(HttpContext, Nullable<(Of <<'(ILogger>)>>)) | Get's the IP address

See Also

FireWallExtensions Class
FireWallExtensions Members
Walter.Web.FireWall.Infrastructure Namespace


IPAddress Method (HttpRequest)

FireWallExtensions..::..IPAddress Method (HttpRequest)

get the IP address.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IPAddress IPAddress(
    HttpRequest request
)

Parameters

request
Type: HttpRequest
The request.

Return Value

IP address

Exceptions

Exception | Condition
[ArgumentNullException] | no request provided

See Also

FireWallExtensions Class
IPAddress Overload
Walter.Web.FireWall.Infrastructure Namespace


IPAddress Method (HttpContext, Nullable(ILogger))

FireWallExtensions..::..IPAddress Method (HttpContext, Nullable<(Of <(<'ILogger>)>)>)

Get's the IP address

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static IPAddress IPAddress(
    HttpContext context,
    Nullable<ILogger> logger
)

Parameters

context
Type: HttpContext
The context.
logger
Type: Nullable <(Of <(<'ILogger>)>)>
Optionally pass a logger

Return Value

IP address

See Also

FireWallExtensions Class
IPAddress Overload
Walter.Web.FireWall.Infrastructure Namespace


SetUtcDate Method

FireWallExtensions..::..SetUtcDate Method

Sets the UTC date in session.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static void SetUtcDate(
    ISession session,
    string key,
    DateTime dateTime
)

Parameters

session
Type: ISession
The session.
key
Type: String
The key to use.
dateTime
Type: DateTime
The date time.

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


SqlLike Method

FireWallExtensions..::..SqlLike Method

perform a SQLs the like comparison.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool SqlLike(
    string stringToCompare,
    string pattern
)

Parameters

stringToCompare
Type: String
The string to compare.
pattern
Type: String
The pattern to use.

Return Value

true if marches

Exceptions

Exception | Condition
[ArgumentException] | thrown if the string to compare or pattern are not provided

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


TryGetResponceType Method

FireWallExtensions..::..TryGetResponceType Method

Tries the type of the get response.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool TryGetResponceType(
    Uri url,
    out ResponceExpected response
)

Parameters

url
Type: Uri
The URL.
response
Type: Walter.BOM..::..ResponceExpected %
The response.

Return Value

true if XXXX, false otherwise.

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


TryGetUtcDate Method

FireWallExtensions..::..TryGetUtcDate Method

Tries to get the get UTC date from the session.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool TryGetUtcDate(
    ISession session,
    string key,
    out DateTime utcDate
)

Parameters

session
Type: ISession
The session.
key
Type: String
The key to query.
utcDate
Type: DateTime%
The UTC date.

Return Value

true if XXXX, false otherwise.

Exceptions

Exception | Condition
[ArgumentException] | If session or key are not provided

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


Url Method

FireWallExtensions..::..Url Method

Get the URLs the specified request.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static Uri Url(
    HttpRequest request
)

Parameters

request
Type: HttpRequest
The request.

Return Value

a Uri from the connection

See Also

FireWallExtensions Class
Walter.Web.FireWall.Infrastructure Namespace


FlowReason Enumeration

The reason why a consumer was transfered from one page to another

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FlowReason

Members

Member name | Description
UserInteraction | normal use interaction
Geoblocking | geographically blocking
FireWallBlocking | firewall triggered blocking
FireWallRedirect | Firewall redirected
GeoRedirect | Firewall redirected due to geographically blocking rules

See Also

Walter.Web.FireWall.Infrastructure Namespace


GuardAction Enumeration

Enum GuardAction contains firewall guard recommendations for a given request

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum GuardAction

Members

Member name | Description
NoAction | There is no action for the guard
Redirect | The guard recommended a redirect
Block | The guard recommended to block
GeoBlock | The geographical guard recommended to block
GeoRedirect | The geographical guard recommended to redirect
HoneypotRecord | The honey-pot record activity and set the guard action to record further activity

See Also

Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Class

Class HttpStatusCodeException. Implements the [System.Exception]

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class HttpStatusCodeException

See Also

HttpStatusCodeException Members
Walter.Web.FireWall.Infrastructure Namespace
[System.Exception]


HttpStatusCodeException Members

The HttpStatusCodeException type exposes the following members.

Constructors

 | Name | Description
Public method | HttpStatusCodeException(Int32) | Initializes a new instance of the HttpStatusCodeException class.
Public method | HttpStatusCodeException(Int32, Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the HttpStatusCodeException class.
Public method | HttpStatusCodeException(Int32, Nullable<(Of <<'(Exception>)>>)) | Initializes a new instance of the HttpStatusCodeException class.
Public method | HttpStatusCodeException(Int32, JObject) | Initializes a new instance of the HttpStatusCodeException class.

Properties

 | Name | Description
Public property | ContentType | Gets or sets the type of the content.
Public property | StatusCode | Gets or sets the status code.

See Also

HttpStatusCodeException Class
Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Constructor

Overload List

 | Name | Description
Public method | HttpStatusCodeException(Int32) | Initializes a new instance of the HttpStatusCodeException class.
Public method | HttpStatusCodeException(Int32, Nullable<(Of <<'(String>)>>)) | Initializes a new instance of the HttpStatusCodeException class.
Public method | HttpStatusCodeException(Int32, Nullable<(Of <<'(Exception>)>>)) | Initializes a new instance of the HttpStatusCodeException class.
Public method | HttpStatusCodeException(Int32, JObject) | Initializes a new instance of the HttpStatusCodeException class.

See Also

HttpStatusCodeException Class
HttpStatusCodeException Members
Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Constructor (Int32)

Initializes a new instance of the HttpStatusCodeException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCodeException(
    int statusCode
)

Parameters

statusCode
Type: Int32
The status code.

See Also

HttpStatusCodeException Class
HttpStatusCodeException Overload
Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Constructor (Int32, Nullable(String))

HttpStatusCodeException Constructor (Int32, Nullable<(Of <(<'String>)>)>)

Initializes a new instance of the HttpStatusCodeException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCodeException(
    int statusCode,
    Nullable<string> message
)

Parameters

statusCode
Type: Int32
The status code.
message
Type: Nullable <(Of <(<' String >)>)>
The message.

See Also

HttpStatusCodeException Class
HttpStatusCodeException Overload
Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Constructor (Int32, Nullable(Exception))

HttpStatusCodeException Constructor (Int32, Nullable<(Of <(<'Exception>)>)>)

Initializes a new instance of the HttpStatusCodeException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCodeException(
    int statusCode,
    Nullable<Exception> inner
)

Parameters

statusCode
Type: Int32
The status code.
inner
Type: Nullable <(Of <(<'Exception>)>)>
The inner.

See Also

HttpStatusCodeException Class
HttpStatusCodeException Overload
Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Constructor (Int32, JObject)

Initializes a new instance of the HttpStatusCodeException class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCodeException(
    int statusCode,
    JObject errorObject
)

Parameters

statusCode
Type: Int32
The status code.
errorObject
Type: JObject
The error object.

See Also

HttpStatusCodeException Class
HttpStatusCodeException Overload
Walter.Web.FireWall.Infrastructure Namespace


HttpStatusCodeException Properties

The HttpStatusCodeException type exposes the following members.

Properties

 | Name | Description
Public property | ContentType | Gets or sets the type of the content.
Public property | StatusCode | Gets or sets the status code.

See Also

HttpStatusCodeException Class
Walter.Web.FireWall.Infrastructure Namespace


ContentType Property

HttpStatusCodeException..::..ContentType Property

Gets or sets the type of the content.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ContentType { get; set; }

Field Value

The type of the content.

See Also

HttpStatusCodeException Class
Walter.Web.FireWall.Infrastructure Namespace


StatusCode Property

HttpStatusCodeException..::..StatusCode Property

Gets or sets the status code.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int StatusCode { get; set; }

Field Value

The status code.

See Also

HttpStatusCodeException Class
Walter.Web.FireWall.Infrastructure Namespace


ICookiePoisoningRuleEngine Interface

The interface ICookiePoisoningRuleEngine provides access to the Rule engine managing the count of issues detected with cookies

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ICookiePoisoningRuleEngine

Remarks

You access the interface via the User property in the User

See Also

ICookiePoisoningRuleEngine Members
Walter.Web.FireWall.Infrastructure Namespace
IUserIdentity..::..CookiePoisoning
IUserIdentity..::..PoisonesCookiesDetected


ICookiePoisoningRuleEngine Members

The ICookiePoisoningRuleEngine type exposes the following members.

Methods

 | Name | Description
Public method | ClearManipulations | remove manipulation counters from the guard engine for further requests

Properties

 | Name | Description
Public property | CookieManipulations | the number of manipulations on cookies manipulated in this session
Public property | CookiesManipuled | the number of cookies manipulated in this session
Public property | PhishingForCookies | A cookie was send that was not given to the user
Public property | PoisonedCookies | A cookie was returned with different value than that what was provided

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


ICookiePoisoningRuleEngine Methods

The ICookiePoisoningRuleEngine type exposes the following members.

Methods

 | Name | Description
Public method | ClearManipulations | remove manipulation counters from the guard engine for further requests

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


ClearManipulations Method

ICookiePoisoningRuleEngine..::..ClearManipulations Method

remove manipulation counters from the guard engine for further requests

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void ClearManipulations()

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


ICookiePoisoningRuleEngine Properties

The ICookiePoisoningRuleEngine type exposes the following members.

Properties

 | Name | Description
Public property | CookieManipulations | the number of manipulations on cookies manipulated in this session
Public property | CookiesManipuled | the number of cookies manipulated in this session
Public property | PhishingForCookies | A cookie was send that was not given to the user
Public property | PoisonedCookies | A cookie was returned with different value than that what was provided

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


CookieManipulations Property

ICookiePoisoningRuleEngine..::..CookieManipulations Property

the number of manipulations on cookies manipulated in this session

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int CookieManipulations { get; }

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


CookiesManipuled Property

ICookiePoisoningRuleEngine..::..CookiesManipuled Property

the number of cookies manipulated in this session

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int CookiesManipuled { get; }

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


PhishingForCookies Property

ICookiePoisoningRuleEngine..::..PhishingForCookies Property

A cookie was send that was not given to the user

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IDictionary<string, int> PhishingForCookies { get; }

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


PoisonedCookies Property

ICookiePoisoningRuleEngine..::..PoisonedCookies Property

A cookie was returned with different value than that what was provided

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IDictionary<string, int> PoisonedCookies { get; }

See Also

ICookiePoisoningRuleEngine Interface
Walter.Web.FireWall.Infrastructure Namespace


IDiscoveredRoutProxy Interface

Interface IDiscoveredRoutProxy

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IDiscoveredRoutProxy

See Also

IDiscoveredRoutProxy Members
Walter.Web.FireWall.Infrastructure Namespace


IDiscoveredRoutProxy Members

The IDiscoveredRoutProxy type exposes the following members.

Properties

 | Name | Description
Public property | Action | Gets or sets the action.
Public property | ActionRout | Gets or sets the action rout.
Public property | AddHock | Gets or sets the add hock.
Public property | AllowAnonymous | Gets or sets a value indicating whether [allow anonymous].
Public property | AppliedRules | Gets the applied rules.
Public property | Attributes | Gets the attributes.
Public property | AuthorizedUsersOnly | Gets or sets a value indicating whether [authorized users only].
Public property | BlockCount | Gets the block count.
Public property | BlockDuration | Gets or sets the duration of the block.
Public property | BlockedByBots | Gets the blocked by bots.
Public property | BlockedByHumans | Gets the blocked by humans.
Public property | BlockedBySearchEngines | Gets the blocked by search engines.
Public property | BlockedEndPointPort | Gets or sets the blocked end point port.
Public property | BrowserIntentions | Gets or sets the browser intentions.
Public property | BuilderErrors | Gets the builder errors.
Public property | Controller | Gets or sets the controller.
Public property | ControllerRout | Gets or sets the controller rout.
Public property | CrossSite | Gets or sets the cross site.
Public property | DocumentType | Gets or sets the type of the document.
Public property | FilterAction | Gets or sets the filter action.
Public property | FireWallConfiguration | Gets the fire wall configuration.
Public property | FirewallDisabled | Gets or sets a value indicating whether [firewall disabled].
Public property | FirstRequest | Gets or sets the first request.
Public property | FullUrl | Gets the full URL.
Public property | GeoBlock | Gets or sets the geo block.
Public property | GeoFree | Gets or sets the geo free.
Public property | HasAntiforgery | Gets or sets a value indicating whether this instance has antiforgery.
Public property | HasNoAnnotations | Gets or sets a value indicating whether this instance has no annotations.
Public property | HitRates | Gets or sets the hit rates.
Public property | HoneyPotTrap | Gets or sets the honey pot trap.
Public property | IsAsync | Gets or sets a value indicating whether this instance is asynchronous.
Public property | IsFile | Gets or sets a value indicating whether this instance is file.
Public property | IsHomePage | Gets or sets a value indicating whether this instance is home page.
Public property | ISPTrustLevel | Gets or sets the isp trust level.
Public property | KnownBadBoys | Gets or sets the known bad boys.
Public property | LastRequest | Gets or sets the last request.
Public property | LinkType | Gets or sets the type of the link.
Public property | MaliciousUserAgents | Gets or sets the malicious user agents.
Public property | Method | Gets or sets the method.
Public property | Minifiction | Gets the minifiction.
Public property | NoValidate | Gets or sets the no validate.
Public property | PageRefresh | Gets or sets the page refresh.
Public property | ParameterNames | Gets the parameter names.
Public property | Parameters | Gets or sets the parameters.
Public property | ParameterTypes | Gets the parameter types.
Public property | Path | Gets or sets the path.
Public property | ReturnType | Gets or sets the type of the return.
Public property | Scrubbing | Gets or sets the scrubbung.
Public property | SiteMap | Gets or sets the site map.
Public property | TolerateWrongProtocolMethod | Gets or sets a value indicating whether [tolerate wrong protocol method].
Public property | UserFilter | Gets or sets the user filter.
Public property | ViewCount | Gets the view count.
Public property | ViewedByBots | Gets the viewed by bots.
Public property | ViewedByHumans | Gets the viewed by humans.
Public property | ViewedBySearchEngines | Gets the viewed by search engines.
Public property | WhiteList | Gets or sets the white list.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


IDiscoveredRoutProxy Properties

The IDiscoveredRoutProxy type exposes the following members.

Properties

 | Name | Description
Public property | Action | Gets or sets the action.
Public property | ActionRout | Gets or sets the action rout.
Public property | AddHock | Gets or sets the add hock.
Public property | AllowAnonymous | Gets or sets a value indicating whether [allow anonymous].
Public property | AppliedRules | Gets the applied rules.
Public property | Attributes | Gets the attributes.
Public property | AuthorizedUsersOnly | Gets or sets a value indicating whether [authorized users only].
Public property | BlockCount | Gets the block count.
Public property | BlockDuration | Gets or sets the duration of the block.
Public property | BlockedByBots | Gets the blocked by bots.
Public property | BlockedByHumans | Gets the blocked by humans.
Public property | BlockedBySearchEngines | Gets the blocked by search engines.
Public property | BlockedEndPointPort | Gets or sets the blocked end point port.
Public property | BrowserIntentions | Gets or sets the browser intentions.
Public property | BuilderErrors | Gets the builder errors.
Public property | Controller | Gets or sets the controller.
Public property | ControllerRout | Gets or sets the controller rout.
Public property | CrossSite | Gets or sets the cross site.
Public property | DocumentType | Gets or sets the type of the document.
Public property | FilterAction | Gets or sets the filter action.
Public property | FireWallConfiguration | Gets the fire wall configuration.
Public property | FirewallDisabled | Gets or sets a value indicating whether [firewall disabled].
Public property | FirstRequest | Gets or sets the first request.
Public property | FullUrl | Gets the full URL.
Public property | GeoBlock | Gets or sets the geo block.
Public property | GeoFree | Gets or sets the geo free.
Public property | HasAntiforgery | Gets or sets a value indicating whether this instance has antiforgery.
Public property | HasNoAnnotations | Gets or sets a value indicating whether this instance has no annotations.
Public property | HitRates | Gets or sets the hit rates.
Public property | HoneyPotTrap | Gets or sets the honey pot trap.
Public property | IsAsync | Gets or sets a value indicating whether this instance is asynchronous.
Public property | IsFile | Gets or sets a value indicating whether this instance is file.
Public property | IsHomePage | Gets or sets a value indicating whether this instance is home page.
Public property | ISPTrustLevel | Gets or sets the isp trust level.
Public property | KnownBadBoys | Gets or sets the known bad boys.
Public property | LastRequest | Gets or sets the last request.
Public property | LinkType | Gets or sets the type of the link.
Public property | MaliciousUserAgents | Gets or sets the malicious user agents.
Public property | Method | Gets or sets the method.
Public property | Minifiction | Gets the minifiction.
Public property | NoValidate | Gets or sets the no validate.
Public property | PageRefresh | Gets or sets the page refresh.
Public property | ParameterNames | Gets the parameter names.
Public property | Parameters | Gets or sets the parameters.
Public property | ParameterTypes | Gets the parameter types.
Public property | Path | Gets or sets the path.
Public property | ReturnType | Gets or sets the type of the return.
Public property | Scrubbing | Gets or sets the scrubbung.
Public property | SiteMap | Gets or sets the site map.
Public property | TolerateWrongProtocolMethod | Gets or sets a value indicating whether [tolerate wrong protocol method].
Public property | UserFilter | Gets or sets the user filter.
Public property | ViewCount | Gets the view count.
Public property | ViewedByBots | Gets the viewed by bots.
Public property | ViewedByHumans | Gets the viewed by humans.
Public property | ViewedBySearchEngines | Gets the viewed by search engines.
Public property | WhiteList | Gets or sets the white list.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Action Property

IDiscoveredRoutProxy..::..Action Property

Gets or sets the action.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Action { get; set; }

Field Value

The action.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ActionRout Property

IDiscoveredRoutProxy..::..ActionRout Property

Gets or sets the action rout.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> ActionRout { get; set; }

Field Value

The action rout.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


AddHock Property

IDiscoveredRoutProxy..::..AddHock Property

Gets or sets the add hock.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<AddhockAttribute> AddHock { get; set; }

Field Value

The add hock.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


AllowAnonymous Property

IDiscoveredRoutProxy..::..AllowAnonymous Property

Gets or sets a value indicating whether [allow anonymous].

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool AllowAnonymous { get; set; }

Field Value

true if [allow anonymous]; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


AppliedRules Property

IDiscoveredRoutProxy..::..AppliedRules Property

Gets the applied rules.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
AppliedUrlRules AppliedRules { get; }

Field Value

The applied rules.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Attributes Property

IDiscoveredRoutProxy..::..Attributes Property

Gets the attributes.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Attributes { get; }

Field Value

The attributes.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


AuthorizedUsersOnly Property

IDiscoveredRoutProxy..::..AuthorizedUsersOnly Property

Gets or sets a value indicating whether [authorized users only].

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool AuthorizedUsersOnly { get; set; }

Field Value

true if [authorized users only]; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BlockCount Property

IDiscoveredRoutProxy..::..BlockCount Property

Gets the block count.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int BlockCount { get; }

Field Value

The block count.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BlockDuration Property

IDiscoveredRoutProxy..::..BlockDuration Property

Gets or sets the duration of the block.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<BlockDurationAttribute> BlockDuration { get; set; }

Field Value

The duration of the block.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BlockedByBots Property

IDiscoveredRoutProxy..::..BlockedByBots Property

Gets the blocked by bots.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int BlockedByBots { get; }

Field Value

The blocked by bots.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BlockedByHumans Property

IDiscoveredRoutProxy..::..BlockedByHumans Property

Gets the blocked by humans.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int BlockedByHumans { get; }

Field Value

The blocked by humans.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BlockedBySearchEngines Property

IDiscoveredRoutProxy..::..BlockedBySearchEngines Property

Gets the blocked by search engines.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int BlockedBySearchEngines { get; }

Field Value

The blocked by search engines.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BlockedEndPointPort Property

IDiscoveredRoutProxy..::..BlockedEndPointPort Property

Gets or sets the blocked end point port.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<EndPoinPortAttribute> BlockedEndPointPort { get; set; }

Field Value

The blocked end point port.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BrowserIntentions Property

IDiscoveredRoutProxy..::..BrowserIntentions Property

Gets or sets the browser intentions.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<BrowserIntentionsAttribute> BrowserIntentions { get; set; }

Field Value

The browser intentions.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


BuilderErrors Property

IDiscoveredRoutProxy..::..BuilderErrors Property

Gets the builder errors.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IList<string> BuilderErrors { get; }

Field Value

The builder errors.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Controller Property

IDiscoveredRoutProxy..::..Controller Property

Gets or sets the controller.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Controller { get; set; }

Field Value

The controller.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ControllerRout Property

IDiscoveredRoutProxy..::..ControllerRout Property

Gets or sets the controller rout.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> ControllerRout { get; set; }

Field Value

The controller rout.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


CrossSite Property

IDiscoveredRoutProxy..::..CrossSite Property

Gets or sets the cross site.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<CrossSiteAttribute> CrossSite { get; set; }

Field Value

The cross site.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


DocumentType Property

IDiscoveredRoutProxy..::..DocumentType Property

Gets or sets the type of the document.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ContentTypes DocumentType { get; set; }

Field Value

The type of the document.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


FilterAction Property

IDiscoveredRoutProxy..::..FilterAction Property

Gets or sets the filter action.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes FilterAction { get; set; }

Field Value

The filter action.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


FireWallConfiguration Property

IDiscoveredRoutProxy..::..FireWallConfiguration Property

Gets the fire wall configuration.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<FireWallConfigurationAttribute> FireWallConfiguration { get; }

Field Value

The fire wall configuration.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


FirewallDisabled Property

IDiscoveredRoutProxy..::..FirewallDisabled Property

Gets or sets a value indicating whether [firewall disabled].

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool FirewallDisabled { get; set; }

Field Value

true if [firewall disabled]; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


FirstRequest Property

IDiscoveredRoutProxy..::..FirstRequest Property

Gets or sets the first request.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> FirstRequest { get; set; }

Field Value

The first request.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


FullUrl Property

IDiscoveredRoutProxy..::..FullUrl Property

Gets the full URL.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri FullUrl { get; }

Field Value

The full URL.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


GeoBlock Property

IDiscoveredRoutProxy..::..GeoBlock Property

Gets or sets the geo block.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoBlockAttribute> GeoBlock { get; set; }

Field Value

The geo block.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


GeoFree Property

IDiscoveredRoutProxy..::..GeoFree Property

Gets or sets the geo free.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoIgnoreAttribute> GeoFree { get; set; }

Field Value

The geo free.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


HasAntiforgery Property

IDiscoveredRoutProxy..::..HasAntiforgery Property

Gets or sets a value indicating whether this instance has antiforgery.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool HasAntiforgery { get; set; }

Field Value

true if this instance has antiforgery; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


HasNoAnnotations Property

IDiscoveredRoutProxy..::..HasNoAnnotations Property

Gets or sets a value indicating whether this instance has no annotations.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool HasNoAnnotations { get; set; }

Field Value

true if this instance has no annotations; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


HitRates Property

IDiscoveredRoutProxy..::..HitRates Property

Gets or sets the hit rates.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<HitRatioAttribute> HitRates { get; set; }

Field Value

The hit rates.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


HoneyPotTrap Property

IDiscoveredRoutProxy..::..HoneyPotTrap Property

Gets or sets the honey pot trap.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<HoneyPotTrapAttribute> HoneyPotTrap { get; set; }

Field Value

The honey pot trap.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


IsAsync Property

IDiscoveredRoutProxy..::..IsAsync Property

Gets or sets a value indicating whether this instance is asynchronous.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsAsync { get; set; }

Field Value

true if this instance is asynchronous; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


IsFile Property

IDiscoveredRoutProxy..::..IsFile Property

Gets or sets a value indicating whether this instance is file.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsFile { get; set; }

Field Value

true if this instance is file; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


IsHomePage Property

IDiscoveredRoutProxy..::..IsHomePage Property

Gets or sets a value indicating whether this instance is home page.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsHomePage { get; set; }

Field Value

true if this instance is home page; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ISPTrustLevel Property

IDiscoveredRoutProxy..::..ISPTrustLevel Property

Gets or sets the isp trust level.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<ISPTrustLevelAttribute> ISPTrustLevel { get; set; }

Field Value

The isp trust level.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


KnownBadBoys Property

IDiscoveredRoutProxy..::..KnownBadBoys Property

Gets or sets the known bad boys.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<KnownBadBoysAttribute> KnownBadBoys { get; set; }

Field Value

The known bad boys.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


LastRequest Property

IDiscoveredRoutProxy..::..LastRequest Property

Gets or sets the last request.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastRequest { get; set; }

Field Value

The last request.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


LinkType Property

IDiscoveredRoutProxy..::..LinkType Property

Gets or sets the type of the link.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
LinkType LinkType { get; set; }

Field Value

The type of the link.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


MaliciousUserAgents Property

IDiscoveredRoutProxy..::..MaliciousUserAgents Property

Gets or sets the malicious user agents.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<MaliciousUserAgentsAttribute> MaliciousUserAgents { get; set; }

Field Value

The malicious user agents.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Method Property

IDiscoveredRoutProxy..::..Method Property

Gets or sets the method.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ProtocolMethod Method { get; set; }

Field Value

The method.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Minifiction Property

IDiscoveredRoutProxy..::..Minifiction Property

Gets the minifiction.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
double Minifiction { get; }

Field Value

The minifiction.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


NoValidate Property

IDiscoveredRoutProxy..::..NoValidate Property

Gets or sets the no validate.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallGuardActions NoValidate { get; set; }

Field Value

The no validate.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


PageRefresh Property

IDiscoveredRoutProxy..::..PageRefresh Property

Gets or sets the page refresh.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<PageRefreshAttribute> PageRefresh { get; set; }

Field Value

The page refresh.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ParameterNames Property

IDiscoveredRoutProxy..::..ParameterNames Property

Gets the parameter names.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IReadOnlyList<string>> ParameterNames { get; }

Field Value

The parameter names.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Parameters Property

IDiscoveredRoutProxy..::..Parameters Property

Gets or sets the parameters.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Parameters { get; set; }

Field Value

The parameters.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ParameterTypes Property

IDiscoveredRoutProxy..::..ParameterTypes Property

Gets the parameter types.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<Type> ParameterTypes { get; }

Field Value

The parameter types.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Path Property

IDiscoveredRoutProxy..::..Path Property

Gets or sets the path.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Path { get; set; }

Field Value

The path.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ReturnType Property

IDiscoveredRoutProxy..::..ReturnType Property

Gets or sets the type of the return.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ReturnType { get; set; }

Field Value

The type of the return.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


Scrubbing Property

IDiscoveredRoutProxy..::..Scrubbing Property

Gets or sets the scrubbung.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<PageScrubbingAttribute> Scrubbing { get; set; }

Field Value

The scrubbung.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


SiteMap Property

IDiscoveredRoutProxy..::..SiteMap Property

Gets or sets the site map.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<SiteMapAttribute> SiteMap { get; set; }

Field Value

The site map.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


TolerateWrongProtocolMethod Property

IDiscoveredRoutProxy..::..TolerateWrongProtocolMethod Property

Gets or sets a value indicating whether [tolerate wrong protocol method].

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TolerateWrongProtocolMethod { get; set; }

Field Value

true if [tolerate wrong protocol method]; otherwise, false.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


UserFilter Property

IDiscoveredRoutProxy..::..UserFilter Property

Gets or sets the user filter.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<UsersAttribute> UserFilter { get; set; }

Field Value

The user filter.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ViewCount Property

IDiscoveredRoutProxy..::..ViewCount Property

Gets the view count.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int ViewCount { get; }

Field Value

The view count.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ViewedByBots Property

IDiscoveredRoutProxy..::..ViewedByBots Property

Gets the viewed by bots.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int ViewedByBots { get; }

Field Value

The viewed by bots.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ViewedByHumans Property

IDiscoveredRoutProxy..::..ViewedByHumans Property

Gets the viewed by humans.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int ViewedByHumans { get; }

Field Value

The viewed by humans.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


ViewedBySearchEngines Property

IDiscoveredRoutProxy..::..ViewedBySearchEngines Property

Gets the viewed by search engines.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int ViewedBySearchEngines { get; }

Field Value

The viewed by search engines.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


WhiteList Property

IDiscoveredRoutProxy..::..WhiteList Property

Gets or sets the white list.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<WhiteListIPAttribute>[] WhiteList { get; set; }

Field Value

The white list.

See Also

IDiscoveredRoutProxy Interface
Walter.Web.FireWall.Infrastructure Namespace


IFireWallDataSource Interface

datasets for the firewall

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallDataSource

See Also

IFireWallDataSource Members
Walter.Web.FireWall.Infrastructure Namespace


IFireWallDataSource Members

The IFireWallDataSource type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the NotFoundRequest entry asynchronous.
Public method | AddAsync | Adds the NotFoundRequest entry asynchronous.
Public method | GetNotFoundRequests | Gets the not found requests.
Public method | Remove | Remove a NotFound request item from the database
Public method | RemoveAsync | Remove a NotFound request item from the database
Public method | TryGetNotFoundRequest | Tries to get the NotFoundRequest.

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


IFireWallDataSource Methods

The IFireWallDataSource type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the NotFoundRequest entry asynchronous.
Public method | AddAsync | Adds the NotFoundRequest entry asynchronous.
Public method | GetNotFoundRequests | Gets the not found requests.
Public method | Remove | Remove a NotFound request item from the database
Public method | RemoveAsync | Remove a NotFound request item from the database
Public method | TryGetNotFoundRequest | Tries to get the NotFoundRequest.

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


Add Method

IFireWallDataSource..::..Add Method

Adds the NotFoundRequest entry asynchronous.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    NotFoundRequest notFoundRequest
)

Parameters

notFoundRequest
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The item.

Return Value

Task.

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


AddAsync Method

IFireWallDataSource..::..AddAsync Method

Adds the NotFoundRequest entry asynchronous.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task AddAsync(
    NotFoundRequest item
)

Parameters

item
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The item.

Return Value

Task.

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


GetNotFoundRequests Method

IFireWallDataSource..::..GetNotFoundRequests Method

Gets the not found requests.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<NotFoundRequest> GetNotFoundRequests()

Return Value

IReadOnlyList<NotFoundRequest>.

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


Remove Method

IFireWallDataSource..::..Remove Method

Remove a NotFound request item from the database

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remove(
    NotFoundRequest item
)

Parameters

item
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The item to remove

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


RemoveAsync Method

IFireWallDataSource..::..RemoveAsync Method

Remove a NotFound request item from the database

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task RemoveAsync(
    NotFoundRequest item
)

Parameters

item
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The item to remove

Return Value

Task

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


TryGetNotFoundRequest Method

IFireWallDataSource..::..TryGetNotFoundRequest Method

Tries to get the NotFoundRequest.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetNotFoundRequest(
    ProtocolMethod method,
    string path,
    out Nullable<NotFoundRequest> result
)

Parameters

method
Type: ProtocolMethod
The method.
path
Type: String
The path.
result
Type: Nullable <(Of <(<' NotFoundRequest >)>)>%
The result.

Return Value

true if found, false otherwise.

See Also

IFireWallDataSource Interface
Walter.Web.FireWall.Infrastructure Namespace


IKnownLinks Interface

Interface IKnownLinks returns all controllers/ endpoints discovered by the system

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IKnownLinks

See Also

IKnownLinks Members
Walter.Web.FireWall.Infrastructure Namespace


IKnownLinks Members

The IKnownLinks type exposes the following members.

Methods

 | Name | Description
Public method | EndpointsInPath | returns all endpoints that match a search pattern
Public method | EndpointsWithModel<(Of <<'(T>)>>) | Get the endpoints that expect a given model in it's parameter signature
Public method | EnsureRightDomain | Ensures the right domain is set on the links.
 | Load(FileInfo, IFireWallConfig, IDiskGuard) | Load known link from disk
 | Load(IEnumerable<(Of <<'(Assembly>)>>), IFireWallConfig, IDiskGuard) | Load links based on an assembly
Public method | TryFind | Tries to find the link in the discovered endpoints.

Properties

 | Name | Description
Public property | Endpoints | Gets the controllers.
Public property | Errors | Errors discovered

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


IKnownLinks Methods

The IKnownLinks type exposes the following members.

Methods

 | Name | Description
Public method | EndpointsInPath | returns all endpoints that match a search pattern
Public method | EndpointsWithModel<(Of <<'(T>)>>) | Get the endpoints that expect a given model in it's parameter signature
Public method | EnsureRightDomain | Ensures the right domain is set on the links.
 | Load(FileInfo, IFireWallConfig, IDiskGuard) | Load known link from disk
 | Load(IEnumerable<(Of <<'(Assembly>)>>), IFireWallConfig, IDiskGuard) | Load links based on an assembly
Public method | TryFind | Tries to find the link in the discovered endpoints.

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


EndpointsInPath Method

IKnownLinks..::..EndpointsInPath Method

returns all endpoints that match a search pattern

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<DiscoveredRout> EndpointsInPath(
    params string[] containing
)

Parameters

containing
Type: array< String >[]()[][]
the path must contain any of these values

Return Value

Examples

When the firewall is created you have the ability work with links and perform special program logic on it. The blow sample shows the event triggered by the options configuration of the AddFireWall extension method
C#
private void Options_OnEndpointsCreated(object sender, Walter.Web.FireWall.EventArgs.EndpointsCreatedEventArgs e)
{
   foreach (var item in links.EndpointsInPath("Download", "*.zip", "*.pdf"))
   {
       item.AllowAddhockAccess = true;
   }

   foreach (var item in links.EndpointsInPath("*.css", "*.png","*.jpg"))
   {
       item.FirewallDisabled = true;
   }

}

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


EndpointsWithModel(T) Method

IKnownLinks..::..EndpointsWithModel<(Of <(<'T>)>)> Method

Get the endpoints that expect a given model in it's parameter signature

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<DiscoveredRout> EndpointsWithModel<T>()

Type Parameters

T
the type to look for

Return Value

Read-only list with all endpoints that have the type as argument

Examples

When the firewall is created you have the ability work with links and perform special program logic on it. The blow sample shows the event triggered by the options configuration of the AddFireWall extension method
C#
private void OnEndpointsCreated(object? sender, EndpointsCreatedEventArgs e)
   {
      if (e.FireWallConfiguration.WebServices.CSPReportUrl is null)
      {
          var endpoints = e.Links.EndpointsWithModel<CSPModel>();
          if (ep.Count != 0)
          {
              e.FireWallConfiguration.WebServices.CSPReportUrl = endpoints[0].FullUrl;
          }
      }
   }

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


EnsureRightDomain Method

IKnownLinks..::..EnsureRightDomain Method

Ensures the right domain is set on the links.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void EnsureRightDomain(
    Uri originalUrl
)

Parameters

originalUrl
Type: Uri
The original URL.

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


Load Method

IKnownLinks..::..Load Method

Overload List

Name | Description
Load(FileInfo, IFireWallConfig, IDiskGuard) | Load known link from disk
Load(IEnumerable<(Of <<'(Assembly>)>>), IFireWallConfig, IDiskGuard) | Load links based on an assembly

See Also

IKnownLinks Interface
IKnownLinks Members
Walter.Web.FireWall.Infrastructure Namespace


Load Method (FileInfo, IFireWallConfig, IDiskGuard)

IKnownLinks..::..Load Method (FileInfo, IFireWallConfig, IDiskGuard)

Load known link from disk

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IKnownLinks Load(
    FileInfo file,
    IFireWallConfig config,
    IDiskGuard guard
)

Parameters

file
Type: FileInfo
the file to load
config
Type: Walter.Web.FireWall..::..IFireWallConfig
the firewall configuration to read the defaults from
guard
Type: IDiskGuard
the guard used for writing data to disk

Return Value

IKnownLinks

See Also

IKnownLinks Interface
Load Overload
Walter.Web.FireWall.Infrastructure Namespace


Load Method (IEnumerable(Assembly), IFireWallConfig, IDiskGuard)

IKnownLinks..::..Load Method (IEnumerable<(Of <(<'Assembly>)>)>, IFireWallConfig, IDiskGuard)

Load links based on an assembly

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IKnownLinks Load(
    IEnumerable<Assembly> assemblies,
    IFireWallConfig config,
    IDiskGuard guard
)

Parameters

assemblies
Type: IEnumerable<(Of <(<'Assembly>)>)>
config
Type: Walter.Web.FireWall..::..IFireWallConfig
guard
Type: IDiskGuard

Return Value

See Also

IKnownLinks Interface
Load Overload
Walter.Web.FireWall.Infrastructure Namespace


TryFind Method

IKnownLinks..::..TryFind Method

Tries to find the link in the discovered endpoints.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryFind(
    Uri uri,
    ProtocolMethod method,
    out Nullable<DiscoveredRout> rout
)

Parameters

uri
Type: Uri
The URI to match.
method
Type: ProtocolMethod
Method to look for, methods are Get, Post etc
rout
Type: Nullable <(Of <(<' DiscoveredRout >)>)>%
The discovered rout.

Return Value

true if found, false otherwise.

Exceptions

Exception | Condition
[ArgumentNullException] | Will throw a argument null exception if uri is not provided

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


IKnownLinks Properties

The IKnownLinks type exposes the following members.

Properties

 | Name | Description
Public property | Endpoints | Gets the controllers.
Public property | Errors | Errors discovered

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


Endpoints Property

IKnownLinks..::..Endpoints Property

Gets the controllers.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyCollection<DiscoveredRout> Endpoints { get; }

Field Value

The controllers.

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


Errors Property

IKnownLinks..::..Errors Property

Errors discovered

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ValueTuple<DiscoveredRout, string>> Errors { get; }

See Also

IKnownLinks Interface
Walter.Web.FireWall.Infrastructure Namespace


IRazorStringRenderer Interface

interface that can be injected using DI framework to render views for items like firewall health reporting and email templates

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IRazorStringRenderer

See Also

IRazorStringRenderer Members
Walter.Web.FireWall.Infrastructure Namespace


IRazorStringRenderer Members

The IRazorStringRenderer type exposes the following members.

Methods

 | Name | Description
Public method | RenderToString<(Of <<'(TModel>)>>) | Render a action and return the result as a string.
Public method | RenderToStringAsync<(Of <<'(TModel>)>>) | Render a action and return the result as a string asynchronous.

See Also

IRazorStringRenderer Interface
Walter.Web.FireWall.Infrastructure Namespace


IRazorStringRenderer Methods

The IRazorStringRenderer type exposes the following members.

Methods

 | Name | Description
Public method | RenderToString<(Of <<'(TModel>)>>) | Render a action and return the result as a string.
Public method | RenderToStringAsync<(Of <<'(TModel>)>>) | Render a action and return the result as a string asynchronous.

See Also

IRazorStringRenderer Interface
Walter.Web.FireWall.Infrastructure Namespace


RenderToString(TModel) Method

IRazorStringRenderer..::..RenderToString<(Of <(<'TModel>)>)> Method

Render a action and return the result as a string.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string RenderToString<TModel>(
    string view,
    TModel model,
    bool isPartial
)
where TModel : FireWallReportingModel

Type Parameters

TModel
The type of the t model.

Parameters

view
Type: String
The view name.
model
Type: TModel
The model.
isPartial
Type: Boolean
indicates that the view is a partial view.

Return Value

System.String.

See Also

IRazorStringRenderer Interface
Walter.Web.FireWall.Infrastructure Namespace


RenderToStringAsync(TModel) Method

IRazorStringRenderer..::..RenderToStringAsync<(Of <(<'TModel>)>)> Method

Render a action and return the result as a string asynchronous.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task<string> RenderToStringAsync<TModel>(
    string view,
    TModel model,
    bool isPartial
)
where TModel : FireWallReportingModel

Type Parameters

TModel
The type of the model.

Parameters

view
Type: String
The view name.
model
Type: TModel
The model.
isPartial
Type: Boolean
indicates that the view is a partial view.

Return Value

System.Threading.Tasks.Task<System.String>.

See Also

IRazorStringRenderer Interface
Walter.Web.FireWall.Infrastructure Namespace


IRequestsDatabase Interface

Interface IRequestDatabase

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IRequestsDatabase

See Also

IRequestsDatabase Members
Walter.Web.FireWall.Infrastructure Namespace


IRequestsDatabase Members

The IRequestsDatabase type exposes the following members.

Methods

 | Name | Description
Public method | Count | count the visist of a given uset type in a given time period
Public method | CountNewUsers | count new users that have been discovered in a given time
Public method | CountVisitors | count visitors on timespan
Public method | Query(IFirewallUser, TimeSpan) | Queries the visit states of a specified fire wall user in a specific timespan.
Public method | Query(IFirewallUser, DateTime, DateTime) | Queries the visit stats for a specified user during a date time range.
Public method | Query(UserTypes, DateTime, DateTime) | Queries the visit stats for a specified user type during a date time range.
Public method | Query(TimeSpan) | Queries the visit statistics for the specified time span.
Public method | Query(IFirewallUser, TimeSpan, array<HttpStatusCode>[]()[][]) | Queries the specified firewall for visit stats for a given user and time with several status codes.
Public method | QueryMissingWhois | Queries the visit data missing whois data.
Public method | QueryPhishy(TimeSpan) | Queries the firewall and retrieve phishy stats for a given time span.
Public method | QueryPhishy(IFirewallUser, TimeSpan) | Queries the phishy.
Public method | QueryPhishy(IPAddress, TimeSpan) | Queries the firewall and retrieve phishy stats for a IP address and time.
Public method | VisitCount(IPageRequest, TimeSpan) | counts the visit to the endpoint or URL of a page request in a given time span.
Public method | VisitCount(IPageRequest) | counts the visit to the endpoint or URL of a page request.

See Also

IRequestsDatabase Interface
Walter.Web.FireWall.Infrastructure Namespace


IRequestsDatabase Methods

The IRequestsDatabase type exposes the following members.

Methods

 | Name | Description
Public method | Count | count the visist of a given uset type in a given time period
Public method | CountNewUsers | count new users that have been discovered in a given time
Public method | CountVisitors | count visitors on timespan
Public method | Query(IFirewallUser, TimeSpan) | Queries the visit states of a specified fire wall user in a specific timespan.
Public method | Query(IFirewallUser, DateTime, DateTime) | Queries the visit stats for a specified user during a date time range.
Public method | Query(UserTypes, DateTime, DateTime) | Queries the visit stats for a specified user type during a date time range.
Public method | Query(TimeSpan) | Queries the visit statistics for the specified time span.
Public method | Query(IFirewallUser, TimeSpan, array<HttpStatusCode>[]()[][]) | Queries the specified firewall for visit stats for a given user and time with several status codes.
Public method | QueryMissingWhois | Queries the visit data missing whois data.
Public method | QueryPhishy(TimeSpan) | Queries the firewall and retrieve phishy stats for a given time span.
Public method | QueryPhishy(IFirewallUser, TimeSpan) | Queries the phishy.
Public method | QueryPhishy(IPAddress, TimeSpan) | Queries the firewall and retrieve phishy stats for a IP address and time.
Public method | VisitCount(IPageRequest, TimeSpan) | counts the visit to the endpoint or URL of a page request in a given time span.
Public method | VisitCount(IPageRequest) | counts the visit to the endpoint or URL of a page request.

See Also

IRequestsDatabase Interface
Walter.Web.FireWall.Infrastructure Namespace


Count Method

IRequestsDatabase..::..Count Method

count the visist of a given uset type in a given time period

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Count(
    UserTypes userType,
    TimeSpan timeSpan
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
timeSpan
Type: TimeSpan

Return Value

See Also

IRequestsDatabase Interface
Walter.Web.FireWall.Infrastructure Namespace


CountNewUsers Method

IRequestsDatabase..::..CountNewUsers Method

count new users that have been discovered in a given time

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int CountNewUsers(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan

Return Value

See Also

IRequestsDatabase Interface
Walter.Web.FireWall.Infrastructure Namespace


CountVisitors Method

IRequestsDatabase..::..CountVisitors Method

count visitors on timespan

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int CountVisitors(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
the time to search

Return Value

unique visitors

See Also

IRequestsDatabase Interface
Walter.Web.FireWall.Infrastructure Namespace


Query Method

IRequestsDatabase..::..Query Method

Overload List

 | Name | Description
Public method | Query(IFirewallUser, TimeSpan) | Queries the visit states of a specified fire wall user in a specific timespan.
Public method | Query(IFirewallUser, DateTime, DateTime) | Queries the visit stats for a specified user during a date time range.
Public method | Query(UserTypes, DateTime, DateTime) | Queries the visit stats for a specified user type during a date time range.
Public method | Query(TimeSpan) | Queries the visit statistics for the specified time span.
Public method | Query(IFirewallUser, TimeSpan, array<HttpStatusCode>[]()[][]) | Queries the specified firewall for visit stats for a given user and time with several status codes.

See Also

IRequestsDatabase Interface
IRequestsDatabase Members
Walter.Web.FireWall.Infrastructure Namespace


Query Method (IFirewallUser, TimeSpan)

IRequestsDatabase..::..Query Method (IFirewallUser, TimeSpan)

Queries the visit states of a specified fire wall user in a specific timespan.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> Query(
    IFirewallUser fireWallUser,
    TimeSpan timeSpan
)

Parameters

fireWallUser
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The fire wall user.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<VisitStats>.

See Also

IRequestsDatabase Interface
Query Overload
Walter.Web.FireWall.Infrastructure Namespace


Query Method (IFirewallUser, DateTime, DateTime)

IRequestsDatabase..::..Query Method (IFirewallUser, DateTime, DateTime)

Queries the visit stats for a specified user during a date time range.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> Query(
    IFirewallUser user,
    DateTime from,
    DateTime till
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IReadOnlyList<VisitStats>.

Remarks

You can get the Firewall use via User and the AsFirewallUser()()()() method

See Also

IRequestsDatabase Interface
Query Overload
Walter.Web.FireWall.Infrastructure Namespace
IPageRequest..::..User


Query Method (UserTypes, DateTime, DateTime)

IRequestsDatabase..::..Query Method (UserTypes, DateTime, DateTime)

Queries the visit stats for a specified user type during a date time range.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> Query(
    UserTypes userType,
    DateTime from,
    DateTime till
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
Type of the user.
from
Type: DateTime
From.
till
Type: DateTime
The till.

Return Value

IReadOnlyList<VisitStats>.

See Also

IRequestsDatabase Interface
Query Overload
Walter.Web.FireWall.Infrastructure Namespace


Query Method (TimeSpan)

IRequestsDatabase..::..Query Method (TimeSpan)

Queries the visit statistics for the specified time span.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> Query(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<VisitStats>.

See Also

IRequestsDatabase Interface
Query Overload
Walter.Web.FireWall.Infrastructure Namespace


Query Method (IFirewallUser, TimeSpan, HttpStatusCode[])

IRequestsDatabase..::..Query Method (IFirewallUser, TimeSpan, array<HttpStatusCode>[]()[][])

Queries the specified firewall for visit stats for a given user and time with several status codes.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> Query(
    IFirewallUser firewallUser,
    TimeSpan timeSpan,
    params HttpStatusCode[] statusCodes
)

Parameters

firewallUser
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The firewall user.
timeSpan
Type: TimeSpan
The time span.
statusCodes
Type: array<HttpStatusCode>[]()[][]
The status codes.

Return Value

IReadOnlyList<VisitStats>.

See Also

IRequestsDatabase Interface
Query Overload
Walter.Web.FireWall.Infrastructure Namespace


QueryMissingWhois Method

IRequestsDatabase..::..QueryMissingWhois Method

Queries the visit data missing whois data.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<VisitStats> QueryMissingWhois(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<VisitStats>.

See Also

IRequestsDatabase Interface
Walter.Web.FireWall.Infrastructure Namespace


QueryPhishy Method

IRequestsDatabase..::..QueryPhishy Method

Overload List

 | Name | Description
Public method | QueryPhishy(TimeSpan) | Queries the firewall and retrieve phishy stats for a given time span.
Public method | QueryPhishy(IFirewallUser, TimeSpan) | Queries the phishy.
Public method | QueryPhishy(IPAddress, TimeSpan) | Queries the firewall and retrieve phishy stats for a IP address and time.

See Also

IRequestsDatabase Interface
IRequestsDatabase Members
Walter.Web.FireWall.Infrastructure Namespace


QueryPhishy Method (TimeSpan)

IRequestsDatabase..::..QueryPhishy Method (TimeSpan)

Queries the firewall and retrieve phishy stats for a given time span.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> QueryPhishy(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

See Also

IRequestsDatabase Interface
QueryPhishy Overload
Walter.Web.FireWall.Infrastructure Namespace


QueryPhishy Method (IFirewallUser, TimeSpan)

IRequestsDatabase..::..QueryPhishy Method (IFirewallUser, TimeSpan)

Queries the phishy.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> QueryPhishy(
    IFirewallUser user,
    TimeSpan timeSpan
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

See Also

IRequestsDatabase Interface
QueryPhishy Overload
Walter.Web.FireWall.Infrastructure Namespace


QueryPhishy Method (IPAddress, TimeSpan)

IRequestsDatabase..::..QueryPhishy Method (IPAddress, TimeSpan)

Queries the firewall and retrieve phishy stats for a IP address and time.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<PhishyVisitStats> QueryPhishy(
    IPAddress address,
    TimeSpan timeSpan
)

Parameters

address
Type: IPAddress
The address.
timeSpan
Type: TimeSpan
The time span.

Return Value

IReadOnlyList<PhishyVisitStats>.

See Also

IRequestsDatabase Interface
QueryPhishy Overload
Walter.Web.FireWall.Infrastructure Namespace


VisitCount Method

IRequestsDatabase..::..VisitCount Method

Overload List

 | Name | Description
Public method | VisitCount(IPageRequest, TimeSpan) | counts the visit to the endpoint or URL of a page request in a given time span.
Public method | VisitCount(IPageRequest) | counts the visit to the endpoint or URL of a page request.

See Also

IRequestsDatabase Interface
IRequestsDatabase Members
Walter.Web.FireWall.Infrastructure Namespace


VisitCount Method (IPageRequest, TimeSpan)

IRequestsDatabase..::..VisitCount Method (IPageRequest, TimeSpan)

counts the visit to the endpoint or URL of a page request in a given time span.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long VisitCount(
    IPageRequest page,
    TimeSpan timeSpan
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page.
timeSpan
Type: TimeSpan
the time span to count

Return Value

System.Int32.

See Also

IRequestsDatabase Interface
VisitCount Overload
Walter.Web.FireWall.Infrastructure Namespace


VisitCount Method (IPageRequest)

IRequestsDatabase..::..VisitCount Method (IPageRequest)

counts the visit to the endpoint or URL of a page request.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long VisitCount(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page.

Return Value

System.Int32.

See Also

IRequestsDatabase Interface
VisitCount Overload
Walter.Web.FireWall.Infrastructure Namespace


ISubscriptions Interface

Indicates that the interface contains subscription data

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISubscriptions

See Also

ISubscriptions Members
Walter.Web.FireWall.Infrastructure Namespace


ISubscriptions Members

The ISubscriptions type exposes the following members.

Properties

 | Name | Description
Public property | NeedsUpdate | Gets a value indicating whether the repository needs to be updated.

See Also

ISubscriptions Interface
Walter.Web.FireWall.Infrastructure Namespace


ISubscriptions Properties

The ISubscriptions type exposes the following members.

Properties

 | Name | Description
Public property | NeedsUpdate | Gets a value indicating whether the repository needs to be updated.

See Also

ISubscriptions Interface
Walter.Web.FireWall.Infrastructure Namespace


NeedsUpdate Property

ISubscriptions..::..NeedsUpdate Property

Gets a value indicating whether the repository needs to be updated.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool NeedsUpdate { get; }

Field Value

true if [needs update]; otherwise, false.

See Also

ISubscriptions Interface
Walter.Web.FireWall.Infrastructure Namespace


ISubscriptionsRepository Interface

ASP-WAF subscription data repository

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISubscriptionsRepository : ISubscriptions

See Also

ISubscriptionsRepository Members
Walter.Web.FireWall.Infrastructure Namespace


ISubscriptionsRepository Members

The ISubscriptionsRepository type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue(ValueTuple<(Of <<'(IPAddress, IMapLocation, TimeSpan>)>>)) | store the location for later use
Public method | Enqueue(ValueTuple<(Of <<'(DnsEntry, IWhois>)>>)) | store the location for later use
Public method | Enqueue(ValueTuple<(Of <<'(IPAddress, GeoLocation, TimeSpan>)>>)) | store the location for later use
Public method | IsKnownBadBoy | See if the user is a known malicious user from the subscription database
Public method | TryGetIpEntry | Tries the get DNS data that belong with a IP entry.
Public method | TryGetMapLocations | Get the stored location from backing storage (only available if using database)
Public method | TryGetSearchDnsEntries | Tries to set the DNS entries for this IP address in cashing.
Public method | TrySetSearchDnsEntries | Add a DNS entry to the database for later use and updates the location characteristics

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


ISubscriptionsRepository Methods

The ISubscriptionsRepository type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue(ValueTuple<(Of <<'(IPAddress, IMapLocation, TimeSpan>)>>)) | store the location for later use
Public method | Enqueue(ValueTuple<(Of <<'(DnsEntry, IWhois>)>>)) | store the location for later use
Public method | Enqueue(ValueTuple<(Of <<'(IPAddress, GeoLocation, TimeSpan>)>>)) | store the location for later use
Public method | IsKnownBadBoy | See if the user is a known malicious user from the subscription database
Public method | TryGetIpEntry | Tries the get DNS data that belong with a IP entry.
Public method | TryGetMapLocations | Get the stored location from backing storage (only available if using database)
Public method | TryGetSearchDnsEntries | Tries to set the DNS entries for this IP address in cashing.
Public method | TrySetSearchDnsEntries | Add a DNS entry to the database for later use and updates the location characteristics

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


Enqueue Method

ISubscriptionsRepository..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(ValueTuple<(Of <<'(IPAddress, IMapLocation, TimeSpan>)>>)) | store the location for later use
Public method | Enqueue(ValueTuple<(Of <<'(DnsEntry, IWhois>)>>)) | store the location for later use
Public method | Enqueue(ValueTuple<(Of <<'(IPAddress, GeoLocation, TimeSpan>)>>)) | store the location for later use

See Also

ISubscriptionsRepository Interface
ISubscriptionsRepository Members
Walter.Web.FireWall.Infrastructure Namespace


Enqueue Method (ValueTuple(IPAddress, IMapLocation, TimeSpan))

ISubscriptionsRepository..::..Enqueue Method (ValueTuple<(Of <(<'IPAddress, IMapLocation, TimeSpan>)>)>)

store the location for later use

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    ValueTuple<IPAddress, IMapLocation, TimeSpan> tuple
)

Parameters

tuple
Type: ValueTuple <(Of <(<'IPAddress, IMapLocation, TimeSpan>)>)>
the data

See Also

ISubscriptionsRepository Interface
Enqueue Overload
Walter.Web.FireWall.Infrastructure Namespace


Enqueue Method (ValueTuple(DnsEntry, IWhois))

ISubscriptionsRepository..::..Enqueue Method (ValueTuple<(Of <(<'DnsEntry, IWhois>)>)>)

store the location for later use

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    ValueTuple<DnsEntry, IWhois> tuple
)

Parameters

tuple
Type: ValueTuple <(Of <(<'DnsEntry, IWhois>)>)>
the data

See Also

ISubscriptionsRepository Interface
Enqueue Overload
Walter.Web.FireWall.Infrastructure Namespace


Enqueue Method (ValueTuple(IPAddress, GeoLocation, TimeSpan))

ISubscriptionsRepository..::..Enqueue Method (ValueTuple<(Of <(<'IPAddress, GeoLocation, TimeSpan>)>)>)

store the location for later use

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    ValueTuple<IPAddress, GeoLocation, TimeSpan> tuple
)

Parameters

tuple
Type: ValueTuple <(Of <(<'IPAddress, GeoLocation, TimeSpan>)>)>
the data

See Also

ISubscriptionsRepository Interface
Enqueue Overload
Walter.Web.FireWall.Infrastructure Namespace


IsKnownBadBoy Method

ISubscriptionsRepository..::..IsKnownBadBoy Method

See if the user is a known malicious user from the subscription database

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsKnownBadBoy(
    IFirewallUser fireWallUser
)

Parameters

fireWallUser
Type: Walter.Web.FireWall.Models..::..IFirewallUser
the user to query

Return Value

true if flagged as malicious

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TryGetIpEntry Method

ISubscriptionsRepository..::..TryGetIpEntry Method

Tries the get DNS data that belong with a IP entry.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetIpEntry(
    long CIDR,
    out IpAddressSubscriptionEntry entry
)

Parameters

CIDR
Type: Int64
The CIDR (Classless Inter-Domain Routing) of a IP address.
entry
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry %
The entry.

Return Value

true if XXXX, false otherwise.

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TryGetMapLocations Method

ISubscriptionsRepository..::..TryGetMapLocations Method

Get the stored location from backing storage (only available if using database)

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetMapLocations(
    IPAddress address,
    out Nullable<IMapLocation> location
)

Parameters

address
Type: IPAddress
the address to query
location
Type: Nullable <(Of <(<'IMapLocation>)>)>%
the location if found

Return Value

true if found

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TryGetSearchDnsEntries Method

ISubscriptionsRepository..::..TryGetSearchDnsEntries Method

Tries to set the DNS entries for this IP address in cashing.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetSearchDnsEntries(
    long CIDR,
    out IpAddressSubscriptionEntry entry
)

Parameters

CIDR
Type: Int64
The CIDR (Classless Inter-Domain Routing) of a IP address.
entry
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry %
The entry.

Return Value

true if XXXX, false otherwise.

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TrySetSearchDnsEntries Method

ISubscriptionsRepository..::..TrySetSearchDnsEntries Method

Add a DNS entry to the database for later use and updates the location characteristics

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TrySetSearchDnsEntries(
    DnsEntry dns,
    UserTypes userType,
    SearchEngine searchEngine
)

Parameters

dns
Type: DnsEntry
The DNS entry
userType
Type: Walter.Web.FireWall..::..UserTypes
The user type we have associated with it
searchEngine
Type: Walter.BOM..::..SearchEngine
indicating it is or isn't a search engine

See Also

ISubscriptionsRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


IUserTracking Interface

A container used by user tracking user activity in a session

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserTracking

See Also

IUserTracking Members
Walter.Web.FireWall.Infrastructure Namespace


IUserTracking Members

The IUserTracking type exposes the following members.

Methods

 | Name | Description
Public method | Visited(IPageRequest) | Register that a page was visited
Public method | Visited(IPageRequest, Int32, Nullable<(Of <<'(IIncident>)>>)) | register that a page was visited as well as the incident it generated

Properties

 | Name | Description
Public property | IpAddress | Gets the IP address.
Public property | Principal | Gets the principal.
Public property | TimeLine | Gets the time line of end-points visited.

See Also

IUserTracking Interface
Walter.Web.FireWall.Infrastructure Namespace


IUserTracking Methods

Methods

 | Name | Description
Public method | Visited(IPageRequest) | Register that a page was visited
Public method | Visited(IPageRequest, Int32, Nullable<(Of <<'(IIncident>)>>)) | register that a page was visited as well as the incident it generated

See Also

IUserTracking Interface
Walter.Web.FireWall.Infrastructure Namespace


Visited Method

IUserTracking..::..Visited Method

Overload List

 | Name | Description
Public method | Visited(IPageRequest) | Register that a page was visited
Public method | Visited(IPageRequest, Int32, Nullable<(Of <<'(IIncident>)>>)) | register that a page was visited as well as the incident it generated

See Also

IUserTracking Interface
IUserTracking Members
Walter.Web.FireWall.Infrastructure Namespace


Visited Method (IPageRequest)

IUserTracking..::..Visited Method (IPageRequest)

Register that a page was visited

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Visited(
    IPageRequest resource
)

Parameters

resource
Type: Walter.Web.FireWall..::..IPageRequest
The resource consumed context

See Also

IUserTracking Interface
Visited Overload
Walter.Web.FireWall.Infrastructure Namespace


Visited Method (IPageRequest, Int32, Nullable(IIncident))

IUserTracking..::..Visited Method (IPageRequest, Int32, Nullable<(Of <(<'IIncident>)>)>)

register that a page was visited as well as the incident it generated

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Visited(
    IPageRequest resource,
    int code,
    Nullable<IIncident> incident
)

Parameters

resource
Type: Walter.Web.FireWall..::..IPageRequest
The page being tracked
code
Type: Int32
the status code returned
incident
Type: Nullable <(Of <(<' IIncident >)>)>
This incident triggered

See Also

IUserTracking Interface
Visited Overload
Walter.Web.FireWall.Infrastructure Namespace


IUserTracking Properties

The IUserTracking type exposes the following members.

Properties

 | Name | Description
Public property | IpAddress | Gets the IP address.
Public property | Principal | Gets the principal.
Public property | TimeLine | Gets the time line of end-points visited.

See Also

IUserTracking Interface
Walter.Web.FireWall.Infrastructure Namespace


IpAddress Property

IUserTracking..::..IpAddress Property

Gets the IP address.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IpAddress { get; }

Field Value

The IP address.

See Also

IUserTracking Interface
Walter.Web.FireWall.Infrastructure Namespace


Principal Property

IUserTracking..::..Principal Property

Gets the principal.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPrincipal Principal { get; }

Field Value

The principal.

See Also

IUserTracking Interface
Walter.Web.FireWall.Infrastructure Namespace


TimeLine Property

IUserTracking..::..TimeLine Property

Gets the time line of end-points visited.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyCollection<TrackingTimeLine> TimeLine { get; }

Field Value

The time line.

See Also

IUserTracking Interface
Walter.Web.FireWall.Infrastructure Namespace


IWhoisRepository Interface

Store IWhois information

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IWhoisRepository : ISubscriptions

See Also

IWhoisRepository Members
Walter.Web.FireWall.Infrastructure Namespace


IWhoisRepository Members

The IWhoisRepository type exposes the following members.

Methods

 | Name | Description
Public method | Add(DnsEntry, IWhois) | Add an entry in the whois database
Public method | Add(IPAddress, DnsEntry) | Store DNS entry for a given IP address
Public method | GetCIDRRange | Gets the cidr range for a saved WHOIS range.
Public method | GetForCidrRange | Gets a simple list of ISP for the cidr range.
 | Instance | Get the default instance of the IWhoisRepository
Public method | Save | save changes to backing storage
Public method | ShouldBlock | evaluate if ISP is marked with a block for a given ISP
Public method | TryGet(DnsEntry, Nullable<(Of <<'(IWhois>)>>)%) | try and get the WHOIS entry for a DNS entry
Public method | TryGet(Int64, Nullable<(Of <<'(IWhois>)>>)%) | get a whois based on a CIDR from the database
Public method | TryGetByRangeId | Tries the get the WHOIS provider by range identifier.
Public method | TryGetDns | Query the database for a specific cashed DNS entry
Public method | TrySave | save the Whois data to the backing store
Public method | Update()()()() | Update the entries in the database
Public method | Update(IWhois) | update the WHOIS records for a who-is entry
Public method | UpdateRangeTrustLevel | Updates the range trust level.
Public method | UpdateTrustLevel | Updates the trust level.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


IWhoisRepository Methods

The IWhoisRepository type exposes the following members.

Methods

 | Name | Description
Public method | Add(DnsEntry, IWhois) | Add an entry in the whois database
Public method | Add(IPAddress, DnsEntry) | Store DNS entry for a given IP address
Public method | GetCIDRRange | Gets the cidr range for a saved WHOIS range.
Public method | GetForCidrRange | Gets a simple list of ISP for the cidr range.
 | Instance | Get the default instance of the IWhoisRepository
Public method | Save | save changes to backing storage
Public method | ShouldBlock | evaluate if ISP is marked with a block for a given ISP
Public method | TryGet(DnsEntry, Nullable<(Of <<'(IWhois>)>>)%) | try and get the WHOIS entry for a DNS entry
Public method | TryGet(Int64, Nullable<(Of <<'(IWhois>)>>)%) | get a whois based on a CIDR from the database
Public method | TryGetByRangeId | Tries the get the WHOIS provider by range identifier.
Public method | TryGetDns | Query the database for a specific cashed DNS entry
Public method | TrySave | save the Whois data to the backing store
Public method | Update()()()() | Update the entries in the database
Public method | Update(IWhois) | update the WHOIS records for a who-is entry
Public method | UpdateRangeTrustLevel | Updates the range trust level.
Public method | UpdateTrustLevel | Updates the trust level.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


Add Method

IWhoisRepository..::..Add Method

Overload List

 | Name | Description
Public method | Add(DnsEntry, IWhois) | Add an entry in the whois database
Public method | Add(IPAddress, DnsEntry) | Store DNS entry for a given IP address

See Also

IWhoisRepository Interface
IWhoisRepository Members
Walter.Web.FireWall.Infrastructure Namespace


Add Method (DnsEntry, IWhois)

IWhoisRepository..::..Add Method (DnsEntry, IWhois)

Add an entry in the whois database

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    DnsEntry dns,
    IWhois whois
)

Parameters

dns
Type: DnsEntry
The DNS address that is linked to the whois entry
whois
Type: IWhois
the entry to add

See Also

IWhoisRepository Interface
Add Overload
Walter.Web.FireWall.Infrastructure Namespace


Add Method (IPAddress, DnsEntry)

IWhoisRepository..::..Add Method (IPAddress, DnsEntry)

Store DNS entry for a given IP address

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    IPAddress address,
    DnsEntry dns
)

Parameters

address
Type: IPAddress
The IP address to save
dns
Type: DnsEntry
The DNS entry to store

See Also

IWhoisRepository Interface
Add Overload
Walter.Web.FireWall.Infrastructure Namespace


GetCIDRRange Method

IWhoisRepository..::..GetCIDRRange Method

Gets the cidr range for a saved WHOIS range.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ValueTuple<long, long> GetCIDRRange(
    long cidr
)

Parameters

cidr
Type: Int64
The cidr.

Return Value

System.ValueTuple<System.Int64, System.Int64>.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


GetForCidrRange Method

IWhoisRepository..::..GetForCidrRange Method

Gets a simple list of ISP for the cidr range.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ISimpleISP> GetForCidrRange(
    params long[] cidr
)

Parameters

cidr
Type: array< Int64 >[]()[][]
The cidr's to get the isp's for.

Return Value

List<SimpleISP>.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


Instance Method

IWhoisRepository..::..Instance Method

Get the default instance of the IWhoisRepository

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IWhoisRepository> Instance()

Return Value

IWhoisRepository if registered or null

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


Save Method

IWhoisRepository..::..Save Method

save changes to backing storage

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Save()

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


ShouldBlock Method

IWhoisRepository..::..ShouldBlock Method

evaluate if ISP is marked with a block for a given ISP

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool ShouldBlock(
    long cIDR,
    string userAgent
)

Parameters

cIDR
Type: Int64
userAgent
Type: String

Return Value

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TryGet Method

IWhoisRepository..::..TryGet Method

Overload List

 | Name | Description
Public method | TryGet(DnsEntry, Nullable<(Of <<'(IWhois>)>>)%) | try and get the WHOIS entry for a DNS entry
Public method | TryGet(Int64, Nullable<(Of <<'(IWhois>)>>)%) | get a whois based on a CIDR from the database

See Also

IWhoisRepository Interface
IWhoisRepository Members
Walter.Web.FireWall.Infrastructure Namespace


TryGet Method (DnsEntry, Nullable(IWhois))

IWhoisRepository..::..TryGet Method (DnsEntry, Nullable<(Of <(<'IWhois>)>)>%)

try and get the WHOIS entry for a DNS entry

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGet(
    DnsEntry dns,
    out Nullable<IWhois> whois
)

Parameters

dns
Type: DnsEntry
the DNS entry to receive
whois
Type: Nullable <(Of <(<'IWhois>)>)>%
The whois entry is locally buffered

Return Value

true if found

See Also

IWhoisRepository Interface
TryGet Overload
Walter.Web.FireWall.Infrastructure Namespace


TryGet Method (Int64, Nullable(IWhois))

IWhoisRepository..::..TryGet Method (Int64, Nullable<(Of <(<'IWhois>)>)>%)

get a whois based on a CIDR from the database

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGet(
    long cidr,
    out Nullable<IWhois> whois
)

Parameters

cidr
Type: Int64
whois
Type: Nullable <(Of <(<'IWhois>)>)>%

Return Value

See Also

IWhoisRepository Interface
TryGet Overload
Walter.Web.FireWall.Infrastructure Namespace


TryGetByRangeId Method

IWhoisRepository..::..TryGetByRangeId Method

Tries the get the WHOIS provider by range identifier.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetByRangeId(
    long rangeId,
    out Nullable<IWhois> whois
)

Parameters

rangeId
Type: Int64
The range identifier.
whois
Type: Nullable <(Of <(<'IWhois>)>)>%
The ISP.

Return Value

true if found, false otherwise.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TryGetDns Method

IWhoisRepository..::..TryGetDns Method

Query the database for a specific cashed DNS entry

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetDns(
    IPAddress address,
    out Nullable<DnsEntry> dns
)

Parameters

address
Type: IPAddress
The IP address to retrieve the DNS entry from
dns
Type: Nullable <(Of <(<'DnsEntry>)>)>%
The DNS entry belonging to the IP address

Return Value

True if IP address was retrieved

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


TrySave Method

IWhoisRepository..::..TrySave Method

save the Whois data to the backing store

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void TrySave()

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


Update Method

IWhoisRepository..::..Update Method

Overload List

 | Name | Description
Public method | Update()()()() | Update the entries in the database
Public method | Update(IWhois) | update the WHOIS records for a who-is entry

See Also

IWhoisRepository Interface
IWhoisRepository Members
Walter.Web.FireWall.Infrastructure Namespace


Update Method

IWhoisRepository..::..Update Method

Update the entries in the database

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Update()

See Also

IWhoisRepository Interface
Update Overload
Walter.Web.FireWall.Infrastructure Namespace


Update Method (IWhois)

IWhoisRepository..::..Update Method (IWhois)

update the WHOIS records for a who-is entry

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Update(
    IWhois who
)

Parameters

who
Type: IWhois
the entry to update

See Also

IWhoisRepository Interface
Update Overload
Walter.Web.FireWall.Infrastructure Namespace


UpdateRangeTrustLevel Method

IWhoisRepository..::..UpdateRangeTrustLevel Method

Updates the range trust level.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateRangeTrustLevel(
    long rangeId,
    ISPTrustLevels newTrust
)

Parameters

rangeId
Type: Int64
The range identifier.
newTrust
Type: Walter.Net.Networking..::..ISPTrustLevels
The new trust.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


UpdateTrustLevel Method

IWhoisRepository..::..UpdateTrustLevel Method

Updates the trust level.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateTrustLevel(
    long ispId,
    ISPTrustLevels newTrust
)

Parameters

ispId
Type: Int64
The ISP identifier.
newTrust
Type: Walter.Net.Networking..::..ISPTrustLevels
The new trust.

See Also

IWhoisRepository Interface
Walter.Web.FireWall.Infrastructure Namespace


ObjectIOState Enumeration

Enum ObjectIOState indicates the busy state of a backing storage

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ObjectIOState

Members

Member name | Description
NotSet | The not set
Busy | The busy state indicates that reading or writing is taking place
Idle | The idle state indicates that data was written and or read from the backing storage and the data is persisted

See Also

Walter.Web.FireWall.Infrastructure Namespace


TrackingTimeLine Class

User tracking time line of how he / it interacted with the site

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class TrackingTimeLine

See Also

TrackingTimeLine Members
Walter.Web.FireWall.Infrastructure Namespace


TrackingTimeLine Members

The TrackingTimeLine type exposes the following members.

Constructors

 | Name | Description
Public method | TrackingTimeLine | Initializes a new instance of the TrackingTimeLine class.

Properties

 | Name | Description
Public property | Incident | Gets the incident or null if no incident occurred.
Public property | PageRequestId | The page request in a given session
Public property | SessionId | the session of the request
Public property | StatusCode | Gets the status code.
Public property | URL | Gets the URL.
Public property | UtcTime | Gets the UTC time.

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


TrackingTimeLine Constructor

Initializes a new instance of the TrackingTimeLine class.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TrackingTimeLine(
    Nullable<IIncident> incident,
    int statusCode,
    DateTime UtcTime,
    Uri uri,
    string sessionid
)

Parameters

incident
Type: Nullable <(Of <(<' IIncident >)>)>
The incident if one occured.
statusCode
Type: Int32
The status code.
UtcTime
Type: DateTime
The UTC time.
uri
Type: Uri
The URI.
sessionid
Type: String

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


TrackingTimeLine Properties

The TrackingTimeLine type exposes the following members.

Properties

 | Name | Description
Public property | Incident | Gets the incident or null if no incident occurred.
Public property | PageRequestId | The page request in a given session
Public property | SessionId | the session of the request
Public property | StatusCode | Gets the status code.
Public property | URL | Gets the URL.
Public property | UtcTime | Gets the UTC time.

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


Incident Property

TrackingTimeLine..::..Incident Property

Gets the incident or null if no incident occurred.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<IIncident> Incident { get; }

Field Value

The incident.

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


PageRequestId Property

TrackingTimeLine..::..PageRequestId Property

The page request in a given session

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; set; }

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


SessionId Property

TrackingTimeLine..::..SessionId Property

the session of the request

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; set; }

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


StatusCode Property

TrackingTimeLine..::..StatusCode Property

Gets the status code.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int StatusCode { get; }

Field Value

The status code.

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


URL Property

TrackingTimeLine..::..URL Property

Gets the URL.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri URL { get; }

Field Value

The URL.

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


UtcTime Property

TrackingTimeLine..::..UtcTime Property

Gets the UTC time.

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime UtcTime { get; }

Field Value

The UTC time.

See Also

TrackingTimeLine Class
Walter.Web.FireWall.Infrastructure Namespace


Walter.Web.FireWall.Infrastructure.Authentication Namespace

Classes

 | Class | Description
Public class | JwtTokenConfig | Bearer token configuration for firewall management console

Interfaces

 | Interface | Description
Public interface | IFireWallAuthResult | firewall authentication result
Public interface | IRefreshToken | refresh token details meta data class


IFireWallAuthResult Interface

firewall authentication result

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallAuthResult

See Also

IFireWallAuthResult Members
Walter.Web.FireWall.Infrastructure.Authentication Namespace


IFireWallAuthResult Members

The IFireWallAuthResult type exposes the following members.

Properties

 | Name | Description
Public property | AccessToken | raw access token
Public property | RefreshToken | refresh token

See Also

IFireWallAuthResult Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


IFireWallAuthResult Properties

The IFireWallAuthResult type exposes the following members.

Properties

 | Name | Description
Public property | AccessToken | raw access token
Public property | RefreshToken | refresh token

See Also

IFireWallAuthResult Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


AccessToken Property

IFireWallAuthResult..::..AccessToken Property

raw access token

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string AccessToken { get; }

See Also

IFireWallAuthResult Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


RefreshToken Property

IFireWallAuthResult..::..RefreshToken Property

refresh token

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IRefreshToken RefreshToken { get; }

See Also

IFireWallAuthResult Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


IRefreshToken Interface

refresh token details meta data class

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IRefreshToken

See Also

IRefreshToken Members
Walter.Web.FireWall.Infrastructure.Authentication Namespace


IRefreshToken Members

The IRefreshToken type exposes the following members.

Properties

 | Name | Description
Public property | ExpireAt | expires on date
Public property | IPAddress | the IP address when authenticated
Public property | Role | the user role
Public property | TokenString | raw token string
Public property | UserName | the user name [meta data]

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


IRefreshToken Properties

The IRefreshToken type exposes the following members.

Properties

 | Name | Description
Public property | ExpireAt | expires on date
Public property | IPAddress | the IP address when authenticated
Public property | Role | the user role
Public property | TokenString | raw token string
Public property | UserName | the user name [meta data]

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


ExpireAt Property

IRefreshToken..::..ExpireAt Property

expires on date

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime ExpireAt { get; set; }

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


IPAddress Property

IRefreshToken..::..IPAddress Property

the IP address when authenticated

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string IPAddress { get; }

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


Role Property

IRefreshToken..::..Role Property

the user role

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Role { get; }

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


TokenString Property

IRefreshToken..::..TokenString Property

raw token string

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string TokenString { get; set; }

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


UserName Property

IRefreshToken..::..UserName Property

the user name [meta data]

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string UserName { get; set; }

See Also

IRefreshToken Interface
Walter.Web.FireWall.Infrastructure.Authentication Namespace


JwtTokenConfig Class

Bearer token configuration for firewall management console

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class JwtTokenConfig

Remarks

You are advised to use private configuration so that your firewall is having unique tokens

See Also

JwtTokenConfig Members
Walter.Web.FireWall.Infrastructure.Authentication Namespace


JwtTokenConfig Members

The JwtTokenConfig type exposes the following members.

Constructors

 | Name | Description
Public method | JwtTokenConfig()()()() | create an empty Web Token configuration

Properties

 | Name | Description
Public property | AccessTokenExpiration | token expiration in minutes, defaults to 8 hours
Public property | HashMethod | HashMethod used for the token
Public property | HeaderName | firewall header name that will contain the authentication token used by the firewall
Public property | RefreshTokenExpiration | refresh rate for token in minutes defaults to 30 minutes

See Also

JwtTokenConfig Class
Walter.Web.FireWall.Infrastructure.Authentication Namespace


JwtTokenConfig Constructor

create an empty Web Token configuration

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public JwtTokenConfig()

See Also

JwtTokenConfig Class
#ctor Overload
Walter.Web.FireWall.Infrastructure.Authentication Namespace


JwtTokenConfig Properties

The JwtTokenConfig type exposes the following members.

Properties

 | Name | Description
Public property | AccessTokenExpiration | token expiration in minutes, defaults to 8 hours
Public property | HashMethod | HashMethod used for the token
Public property | HeaderName | firewall header name that will contain the authentication token used by the firewall
Public property | RefreshTokenExpiration | refresh rate for token in minutes defaults to 30 minutes

See Also

JwtTokenConfig Class
Walter.Web.FireWall.Infrastructure.Authentication Namespace


AccessTokenExpiration Property

JwtTokenConfig..::..AccessTokenExpiration Property

token expiration in minutes, defaults to 8 hours

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int AccessTokenExpiration { get; set; }

See Also

JwtTokenConfig Class
Walter.Web.FireWall.Infrastructure.Authentication Namespace


HashMethod Property

JwtTokenConfig..::..HashMethod Property

HashMethod used for the token

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HashMethod HashMethod { get; set; }

Remarks

If you use IP filtering you may be able to use a simpler method however we recommend SHA256 or higher

See Also

JwtTokenConfig Class
Walter.Web.FireWall.Infrastructure.Authentication Namespace


HeaderName Property

JwtTokenConfig..::..HeaderName Property

firewall header name that will contain the authentication token used by the firewall

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string HeaderName { get; set; }

Remarks

Value may not be null and should be a valid HTTP header name

See Also

JwtTokenConfig Class
Walter.Web.FireWall.Infrastructure.Authentication Namespace


RefreshTokenExpiration Property

JwtTokenConfig..::..RefreshTokenExpiration Property

refresh rate for token in minutes defaults to 30 minutes

Namespace: Walter.Web.FireWall.Infrastructure.Authentication
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int RefreshTokenExpiration { get; set; }

Remarks

After 30 minutes the token will refresh and invalidate, if access was altered the user may be blocked and forced out

See Also

JwtTokenConfig Class
Walter.Web.FireWall.Infrastructure.Authentication Namespace


Walter.Web.FireWall.Infrastructure.Factory Namespace

Classes

 | Class | Description
Public class | UserAgentDatabase | This base class manage the subscription data and allows you to spec the data with your own statistics in regards to user agents

Interfaces

 | Interface | Description
Public interface | IUserAgentReporting | User agent reporting interface for firewall state reporting
Public interface | IUserAgentsRepository | The user agent repository mapping a user agent to a strong typed instance


IUserAgentReporting Interface

User agent reporting interface for firewall state reporting

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserAgentReporting

See Also

IUserAgentReporting Members
Walter.Web.FireWall.Infrastructure.Factory Namespace


IUserAgentReporting Members

The IUserAgentReporting type exposes the following members.

Methods

 | Name | Description
Public method | GetTopAgents | get the most popular user agents

See Also

IUserAgentReporting Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


IUserAgentReporting Methods

The IUserAgentReporting type exposes the following members.

Methods

 | Name | Description
Public method | GetTopAgents | get the most popular user agents

See Also

IUserAgentReporting Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


GetTopAgents Method

IUserAgentReporting..::..GetTopAgents Method

get the most popular user agents

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IUAUserAgent> GetTopAgents(
    int count
)

Parameters

count
Type: Int32
the count to return

Return Value

the agent with the user statistics

See Also

IUserAgentReporting Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


IUserAgentsRepository Interface

The user agent repository mapping a user agent to a strong typed instance

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserAgentsRepository : IUserAgentReporting

Remarks

The Agent repository manages meta data that the FireWall Guard collects with User-Agent that is used to access the system, the data is provided by the IPageRequest interface and is updated by the GuardEngine

See Also

IUserAgentsRepository Members
Walter.Web.FireWall.Infrastructure.Factory Namespace


IUserAgentsRepository Members

The IUserAgentsRepository type exposes the following members.

Methods

 | Name | Description
Public method | CountMaliciousUserAgents | the number of malicious user agents interacted with
Public method | Persist | Update backing store with the user agent meta data
Public method | SuspectUserAgents | get the user agents that are suspect from a given time span
Public method | TryGet | Tries to obtain the agent meta data

See Also

IUserAgentsRepository Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


IUserAgentsRepository Methods

The IUserAgentsRepository type exposes the following members.

Methods

 | Name | Description
Public method | CountMaliciousUserAgents | the number of malicious user agents interacted with
Public method | Persist | Update backing store with the user agent meta data
Public method | SuspectUserAgents | get the user agents that are suspect from a given time span
Public method | TryGet | Tries to obtain the agent meta data

See Also

IUserAgentsRepository Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


CountMaliciousUserAgents Method

IUserAgentsRepository..::..CountMaliciousUserAgents Method

the number of malicious user agents interacted with

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int CountMaliciousUserAgents(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
Time span

Return Value

user agents used by users causing incidents

See Also

IUserAgentsRepository Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


Persist Method

IUserAgentsRepository..::..Persist Method

Update backing store with the user agent meta data

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Persist(
    IUAUserAgent agent
)

Parameters

agent
Type: Walter.Web.FireWall.Browser..::..IUAUserAgent
the user agent to persist

See Also

IUserAgentsRepository Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


SuspectUserAgents Method

IUserAgentsRepository..::..SuspectUserAgents Method

get the user agents that are suspect from a given time span

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IUAUserAgent> SuspectUserAgents(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
the timespan to consider

Return Value

list of suspect user agents

See Also

IUserAgentsRepository Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


TryGet Method

IUserAgentsRepository..::..TryGet Method

Tries to obtain the agent meta data

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGet(
    string userAgent,
    out Nullable<IUAUserAgent> agent
)

Parameters

userAgent
Type: String
the browser provided header key or blank if missing
agent
Type: Nullable <(Of <(<' IUAUserAgent >)>)>%
the meta data object used by the Guard

Return Value

True if the meta data was retrieved

Remarks

The native interface IUAUserAgent meta data will be updated by the system if you license comes with a data subscription. The FireWall will collect firewall related data without a data subscription however it allows for a more accurate crawler detection

The user agent data can be extended when using one of the NuGet Packages: Walter.Web.FireWall.UserAgent.UsersStack as you can then use the extension method IUAUserAgent.AsUserstack() to retrieve a IUserstackUserAgent.
when you have a free or paid account from https://userstack.com/

Walter.Web.FireWall.UserAgent.WhatIsMyBrowser as you can then use the extension method IUAUserAgent.AsWhatIsMyBrowser() to retrieve a IWhatIsMyBrowserUserAgent.
when you have a free or paid account for https://developers.whatismybrowser.com/

See Also

IUserAgentsRepository Interface
Walter.Web.FireWall.Infrastructure.Factory Namespace


UserAgentDatabase Class

This base class manage the subscription data and allows you to spec the data with your own statistics in regards to user agents

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class UserAgentDatabase : IUserAgentReporting

See Also

UserAgentDatabase Members
Walter.Web.FireWall.Infrastructure.Factory Namespace


UserAgentDatabase Members

The UserAgentDatabase type exposes the following members.

Constructors

 | Name | Description
Protected method | UserAgentDatabase | constructor for working with UserAgent repository

Methods

 | Name | Description
Public method | CountMaliciousUserAgents | count malicious user agents activity in a given timespamm
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | GetTopAgents | get the most popular user agents
Public method | Persist(IUAUserAgent) | Store the user agent for later re-use
Public method | SuspectUserAgents | get the suspect user agents
Protected method | TryGetBuffered | Try and retrieve the agent from the backing store
Public method | UpdateMaliciousFlag | Updates the malicious flag.

Fields

Name | Description
NAMED_INSTANCE_NAME | the named instance that will be used by the DIContainer to select the assigned database

Properties

 | Name | Description
Public property | ConnectionProperties | Gets the connection properties, empty before connected, set after connected.
Protected property | Database | Database used with factory
Public property | Details | Details of where stored
Public property | Faulty | Indicates that the migration has completed and issues where detected
Public property | Initializing | if it has a value it indicates that the repository or factory is ready and has initialized
Public property | IsReady | indicates storage is ready
Public property | Ready | if it has a value it indicates the time that the database was ready for use
Public property | State | Access the current state of the database
Public property | StorageLocation | location data is stored
Public property | Upgrade | if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


UserAgentDatabase Constructor

constructor for working with UserAgent repository

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected UserAgentDatabase(
    IDiskGuard guard,
    IFireWallConfig config,
    IExceptionConsole console,
    Nullable<ILoggerFactory> factory
)

Parameters

guard
Type: IDiskGuard
config
Type: Walter.Web.FireWall..::..IFireWallConfig
console
Type: IExceptionConsole
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


UserAgentDatabase Fields

The UserAgentDatabase type exposes the following members.

Fields

Name | Description
NAMED_INSTANCE_NAME | the named instance that will be used by the DIContainer to select the assigned database

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


NAMED_INSTANCE_NAME Field

UserAgentDatabase..::..NAMED_INSTANCE_NAME Field

the named instance that will be used by the DIContainer to select the assigned database

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const string NAMED_INSTANCE_NAME

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


UserAgentDatabase Methods

The UserAgentDatabase type exposes the following members.

Methods

 | Name | Description
Public method | CountMaliciousUserAgents | count malicious user agents activity in a given timespamm
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | GetTopAgents | get the most popular user agents
Public method | Persist(IUAUserAgent) | Store the user agent for later re-use
Public method | SuspectUserAgents | get the suspect user agents
Protected method | TryGetBuffered | Try and retrieve the agent from the backing store
Public method | UpdateMaliciousFlag | Updates the malicious flag.

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


CountMaliciousUserAgents Method

UserAgentDatabase..::..CountMaliciousUserAgents Method

count malicious user agents activity in a given timespamm

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int CountMaliciousUserAgents(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan

Return Value

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Dispose Method

UserAgentDatabase..::..Dispose Method

Overload List

 | Name | Description
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.

See Also

UserAgentDatabase Class
UserAgentDatabase Members
Walter.Web.FireWall.Infrastructure.Factory Namespace


Dispose Method

UserAgentDatabase..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

See Also

UserAgentDatabase Class
Dispose Overload
Walter.Web.FireWall.Infrastructure.Factory Namespace


Dispose Method (Boolean)

UserAgentDatabase..::..Dispose Method (Boolean)

Releases unmanaged and - optionally - managed resources.

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true to release both managed and unmanaged resources; false to release only unmanaged resources.

See Also

UserAgentDatabase Class
Dispose Overload
Walter.Web.FireWall.Infrastructure.Factory Namespace


GetTopAgents Method

UserAgentDatabase..::..GetTopAgents Method

get the most popular user agents

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IUAUserAgent> GetTopAgents(
    int count
)

Parameters

count
Type: Int32
the count to return

Return Value

the agent with the user statistics

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Persist Method (IUAUserAgent)

UserAgentDatabase..::..Persist Method (IUAUserAgent)

Store the user agent for later re-use

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Persist(
    IUAUserAgent agent
)

Parameters

agent
Type: Walter.Web.FireWall.Browser..::..IUAUserAgent
the agent to persist

Exceptions

Exception | Condition
[ArgumentNullException] | The parameter agent may not be null

See Also

UserAgentDatabase Class
Persist Overload
Walter.Web.FireWall.Infrastructure.Factory Namespace


SuspectUserAgents Method

UserAgentDatabase..::..SuspectUserAgents Method

get the suspect user agents

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IUAUserAgent> SuspectUserAgents(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan

Return Value

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


TryGetBuffered Method

UserAgentDatabase..::..TryGetBuffered Method

Try and retrieve the agent from the backing store

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected bool TryGetBuffered(
    string userAgent,
    out Nullable<IUAUserAgent> agent
)

Parameters

userAgent
Type: String
the user agent key
agent
Type: Nullable <(Of <(<' IUAUserAgent >)>)>%
the strong typed UserAgent meta data

Return Value

True if was able to retrieve from storage

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


UpdateMaliciousFlag Method

UserAgentDatabase..::..UpdateMaliciousFlag Method

Updates the malicious flag.

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void UpdateMaliciousFlag(
    string ua,
    bool malicious
)

Parameters

ua
Type: String
The user agent.
malicious
Type: Boolean
if set to true [malicious].

Exceptions

Exception | Condition
[DatabaseMigrationException] |

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


UserAgentDatabase Properties

The UserAgentDatabase type exposes the following members.

Properties

 | Name | Description
Public property | ConnectionProperties | Gets the connection properties, empty before connected, set after connected.
Protected property | Database | Database used with factory
Public property | Details | Details of where stored
Public property | Faulty | Indicates that the migration has completed and issues where detected
Public property | Initializing | if it has a value it indicates that the repository or factory is ready and has initialized
Public property | IsReady | indicates storage is ready
Public property | Ready | if it has a value it indicates the time that the database was ready for use
Public property | State | Access the current state of the database
Public property | StorageLocation | location data is stored
Public property | Upgrade | if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


ConnectionProperties Property

UserAgentDatabase..::..ConnectionProperties Property

Gets the connection properties, empty before connected, set after connected.

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ConnectionProperties ConnectionProperties { get; set; }

Field Value

The connection properties.

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Database Property

UserAgentDatabase..::..Database Property

Database used with factory

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IDatabaseTools Database { get; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Details Property

UserAgentDatabase..::..Details Property

Details of where stored

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Details { get; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Faulty Property

UserAgentDatabase..::..Faulty Property

Indicates that the migration has completed and issues where detected

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Faulty { get; set; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Initializing Property

UserAgentDatabase..::..Initializing Property

if it has a value it indicates that the repository or factory is ready and has initialized

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Initializing { get; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


IsReady Property

UserAgentDatabase..::..IsReady Property

indicates storage is ready

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsReady { get; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Ready Property

UserAgentDatabase..::..Ready Property

if it has a value it indicates the time that the database was ready for use

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Ready { get; set; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


State Property

UserAgentDatabase..::..State Property

Access the current state of the database

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DataState State { get; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


StorageLocation Property

UserAgentDatabase..::..StorageLocation Property

location data is stored

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public StorageLocations StorageLocation { get; set; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Upgrade Property

UserAgentDatabase..::..Upgrade Property

if it has a value it indicates the time that the database was preparing for an upgrade before accepting use

Namespace: Walter.Web.FireWall.Infrastructure.Factory
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Upgrade { get; set; }

See Also

UserAgentDatabase Class
Walter.Web.FireWall.Infrastructure.Factory Namespace


Walter.Web.FireWall.Infrastructure.Repositories Namespace

Interfaces

 | Interface | Description
Public interface | ICookieFactory | Interface ICookieFactory is used to write cookie to the underlying storage and send the cookie to the browser with the modified content
Public interface | IFireWallUserCollection | Interface IFireWallUserCollection manages firewall management dashboard users in the application
Public interface | IResetRepository | reset repository contains the release audit trial of exceptions generated to blocked users
Public interface | IWhoisBackGroundProcessor | The factory that will process WHOIS request for ISP's connecting to the web application in a non blocking way

Enumerations

 | Enumeration | Description
Public enumeration | ResetReason | Reason why a firewall reject recommendation is considered.


ICookieFactory Interface

Interface ICookieFactory is used to write cookie to the underlying storage and send the cookie to the browser with the modified content

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ICookieFactory

Remarks

The factory, wen set to true, uses the property UseTransparentEncryption to make sure the data is stored GDPR complaint. The browser is send the cookie with a substitute value making the cookie smaller allowing you to store up-to a ridiculous amount of 4GB of data in a cookie as that's the amount of data a blob can store in SQL server. The user is send the cookie definition with a place holder integer.

You can access the cookie factory after integrating the Walter.Web.FireWall.CookieStore NuGet package in your web application. You can access the cookie factory via the User or the Instance() method

See Also

ICookieFactory Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ICookieFactory Members

The ICookieFactory type exposes the following members.

Methods

 | Name | Description
 | Instance | Get the default instance of the ICookieFactory
Public method | TryReadCookie | Tries to read the cookie from the cookie store and not from the HTTPRequest.
Public method | WriteCookie | Writes the cookie to the cookie store and substitute the value in the HTTPResponse.
Public method | WriteCookieAsync | Writes the cookie to the cookie store and substitute the value in the HTTPResponse.

See Also

ICookieFactory Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ICookieFactory Methods

The ICookieFactory type exposes the following members.

Methods

 | Name | Description
 | Instance | Get the default instance of the ICookieFactory
Public method | TryReadCookie | Tries to read the cookie from the cookie store and not from the HTTPRequest.
Public method | WriteCookie | Writes the cookie to the cookie store and substitute the value in the HTTPResponse.
Public method | WriteCookieAsync | Writes the cookie to the cookie store and substitute the value in the HTTPResponse.

See Also

ICookieFactory Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Instance Method

ICookieFactory..::..Instance Method

Get the default instance of the ICookieFactory

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<ICookieFactory> Instance()

Return Value

ICookieFactory if registered or null

Remarks

Interface is only available if the NuGet Package Walter.Web.FireWall.CookieStore is used and configured

See Also

ICookieFactory Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


TryReadCookie Method

ICookieFactory..::..TryReadCookie Method

Tries to read the cookie from the cookie store and not from the HTTPRequest.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryReadCookie(
    IUserIdentity user,
    string cookieName,
    out Nullable<string> cookieValue
)

Parameters

user
Type: Walter.Web.FireWall..::..IUserIdentity
The user who's cookie will be read.
cookieName
Type: String
Name of the cookie.
cookieValue
Type: Nullable <(Of <(<' String >)>)>%
The cookie value.

Return Value

true if the cookie could be read, false otherwise.

See Also

ICookieFactory Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace
CookieConfig..::..UseTransparentEncryption


WriteCookie Method

ICookieFactory..::..WriteCookie Method

Writes the cookie to the cookie store and substitute the value in the HTTPResponse.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void WriteCookie(
    IUserIdentity user,
    string cookieName,
    string cookieValue,
    DateTime expiresUTC
)

Parameters

user
Type: Walter.Web.FireWall..::..IUserIdentity
The user.
cookieName
Type: String
Name of the cookie.
cookieValue
Type: String
The cookie value.
expiresUTC
Type: DateTime
The UTC date the cookie expires.

Remarks

If transparent encryption is used the value of the cookies will be decrypted before the .Net pipeline accesses the cookie values.

See Also

ICookieFactory Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace
CookieConfig..::..UseTransparentEncryption


WriteCookieAsync Method

ICookieFactory..::..WriteCookieAsync Method

Writes the cookie to the cookie store and substitute the value in the HTTPResponse.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task WriteCookieAsync(
    IUserIdentity user,
    string cookieName,
    string cookieValue,
    DateTime expiresUtc,
    CancellationToken cancellationToken
)

Parameters

user
Type: Walter.Web.FireWall..::..IUserIdentity
The user.
cookieName
Type: String
Name of the cookie.
cookieValue
Type: String
The cookie value.
expiresUtc
Type: DateTime
The UTC date the cookie expires.
cancellationToken
Type: CancellationToken
Optionally propagates notification that operations should be canceled.

Remarks

If transparent encryption is used the value of the cookies will be decrypted before the .Net pipeline accesses the cookie values.

See Also

ICookieFactory Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace
CookieConfig..::..UseTransparentEncryption


IFireWallUserCollection Interface

Interface IFireWallUserCollection manages firewall management dashboard users in the application

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallUserCollection

See Also

IFireWallUserCollection Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IFireWallUserCollection Members

The IFireWallUserCollection type exposes the following members.

Methods

 | Name | Description
Public method | GuestAccess(array<GeoLocation>[]()[][]) | Generate a guest access for the system
Public method | GuestAccess(String, array<GeoLocation>[]()[][]) | You can specify the guest user password for your firewall
Public method | IsAllowed(GeoLocation) | No GEO blocking was implemented or a user with the location exists
Public method | IsAllowed(String, GeoLocation) | No GEO blocking was implemented or a user with the login name exists and has access in region
Public method | Seed | Seeds the specified user to grant access to the administration dashboard.
Public method | TryFindUser(String, String, GeoLocation, Nullable<(Of <<'(FireWallDashboardUser>)>>)%) | tries and authenticates the user
Public method | TryFindUser(Claim, Nullable<(Of <<'(FireWallDashboardUser>)>>)%) | try and find a given user
Public method | UserWithNameExists | Test if a user with such name exists

Properties

 | Name | Description
Public property | GuestUsers | a collection with all users registered as users with Guest Access
Public property | Item | Gets the FireWallDashboardUser at the specified index.
Public property | UsesGeoBlocking | Gets or sets a value indicating whether the system uses geo blocking.
Public property | UsesGuestAccess | firewall supports the usage of guest access

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IFireWallUserCollection Methods

The IFireWallUserCollection type exposes the following members.

Methods

 | Name | Description
Public method | GuestAccess(array<GeoLocation>[]()[][]) | Generate a guest access for the system
Public method | GuestAccess(String, array<GeoLocation>[]()[][]) | You can specify the guest user password for your firewall
Public method | IsAllowed(GeoLocation) | No GEO blocking was implemented or a user with the location exists
Public method | IsAllowed(String, GeoLocation) | No GEO blocking was implemented or a user with the login name exists and has access in region
Public method | Seed | Seeds the specified user to grant access to the administration dashboard.
Public method | TryFindUser(String, String, GeoLocation, Nullable<(Of <<'(FireWallDashboardUser>)>>)%) | tries and authenticates the user
Public method | TryFindUser(Claim, Nullable<(Of <<'(FireWallDashboardUser>)>>)%) | try and find a given user
Public method | UserWithNameExists | Test if a user with such name exists

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


GuestAccess Method

IFireWallUserCollection..::..GuestAccess Method

Overload List

 | Name | Description
Public method | GuestAccess(array<GeoLocation>[]()[][]) | Generate a guest access for the system
Public method | GuestAccess(String, array<GeoLocation>[]()[][]) | You can specify the guest user password for your firewall

See Also

IFireWallUserCollection Interface
IFireWallUserCollection Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


GuestAccess Method (GeoLocation[])

IFireWallUserCollection..::..GuestAccess Method (array<GeoLocation>[]()[][])

Generate a guest access for the system

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void GuestAccess(
    params GeoLocation[] availableIn
)

Parameters

availableIn
Type: array<GeoLocation>[]()[][]
location from where the guest account can be accessed

Remarks

The Geographical filter is not send to the clients, if a guest loges-in, and has no access, he will simply get access denied with out reason

See Also

IFireWallUserCollection Interface
GuestAccess Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


GuestAccess Method (String, GeoLocation[])

IFireWallUserCollection..::..GuestAccess Method (String, array<GeoLocation>[]()[][])

You can specify the guest user password for your firewall

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void GuestAccess(
    string GuessUserPassword,
    params GeoLocation[] availableIn
)

Parameters

GuessUserPassword
Type: String
The password to use
availableIn
Type: array<GeoLocation>[]()[][]
The geographical locations filter where to enable Guest access in.

Remarks

The Geographical filter is not send to the clients, if a guest loges-in, and has no access, he will simply get access denied with out reason

See Also

IFireWallUserCollection Interface
GuestAccess Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IsAllowed Method

IFireWallUserCollection..::..IsAllowed Method

Overload List

 | Name | Description
Public method | IsAllowed(GeoLocation) | No GEO blocking was implemented or a user with the location exists
Public method | IsAllowed(String, GeoLocation) | No GEO blocking was implemented or a user with the login name exists and has access in region

See Also

IFireWallUserCollection Interface
IFireWallUserCollection Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IsAllowed Method (GeoLocation)

IFireWallUserCollection..::..IsAllowed Method (GeoLocation)

No GEO blocking was implemented or a user with the location exists

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsAllowed(
    GeoLocation loc
)

Parameters

loc
Type: Walter.BOM.Geo..::..GeoLocation
the geographical location to test for

Return Value

See Also

IFireWallUserCollection Interface
IsAllowed Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IsAllowed Method (String, GeoLocation)

IFireWallUserCollection..::..IsAllowed Method (String, GeoLocation)

No GEO blocking was implemented or a user with the login name exists and has access in region

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsAllowed(
    string userName,
    GeoLocation loc
)

Parameters

userName
Type: String
The user name to validate
loc
Type: Walter.BOM.Geo..::..GeoLocation
the geographical location to test for

Return Value

See Also

IFireWallUserCollection Interface
IsAllowed Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Seed Method

IFireWallUserCollection..::..Seed Method

Seeds the specified user to grant access to the administration dashboard.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Seed(
    string userName,
    string password,
    AdminAccess access,
    params GeoLocation[] geography
)

Parameters

userName
Type: String
Name of the user.
password
Type: String
The password.
access
Type: Walter.Web.FireWall.Infrastructure..::..AdminAccess
The access.
geography
Type: array<GeoLocation>[]()[][]
The geography to limit access to (optional).

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


TryFindUser Method

IFireWallUserCollection..::..TryFindUser Method

Overload List

 | Name | Description
Public method | TryFindUser(String, String, GeoLocation, Nullable<(Of <<'(FireWallDashboardUser>)>>)%) | tries and authenticates the user
Public method | TryFindUser(Claim, Nullable<(Of <<'(FireWallDashboardUser>)>>)%) | try and find a given user

See Also

IFireWallUserCollection Interface
IFireWallUserCollection Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


TryFindUser Method (String, String, GeoLocation, Nullable(FireWallDashboardUser))

IFireWallUserCollection..::..TryFindUser Method (String, String, GeoLocation, Nullable<(Of <(<'FireWallDashboardUser>)>)>%)

tries and authenticates the user

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryFindUser(
    string userName,
    string password,
    GeoLocation location,
    out Nullable<FireWallDashboardUser> user
)

Parameters

userName
Type: String
the user name
password
Type: String
the password
location
Type: Walter.BOM.Geo..::..GeoLocation
the location access is requested
user
Type: Nullable <(Of <(<' FireWallDashboardUser >)>)>%
the user if found

Return Value

True if the user was found

Remarks

The Geographical or IP address filter is not send to the clients, if a user loges-in, and has no access, he will simply get access denied with out reason

See Also

IFireWallUserCollection Interface
TryFindUser Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


TryFindUser Method (Claim, Nullable(FireWallDashboardUser))

IFireWallUserCollection..::..TryFindUser Method (Claim, Nullable<(Of <(<'FireWallDashboardUser>)>)>%)

try and find a given user

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryFindUser(
    Claim claim,
    out Nullable<FireWallDashboardUser> user
)

Parameters

claim
Type: Claim
the user name to find
user
Type: Nullable <(Of <(<' FireWallDashboardUser >)>)>%
returns the user

Return Value

true if found

See Also

IFireWallUserCollection Interface
TryFindUser Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


UserWithNameExists Method

IFireWallUserCollection..::..UserWithNameExists Method

Test if a user with such name exists

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool UserWithNameExists(
    string userName
)

Parameters

userName
Type: String

Return Value

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IFireWallUserCollection Properties

The IFireWallUserCollection type exposes the following members.

Properties

 | Name | Description
Public property | GuestUsers | a collection with all users registered as users with Guest Access
Public property | Item | Gets the FireWallDashboardUser at the specified index.
Public property | UsesGeoBlocking | Gets or sets a value indicating whether the system uses geo blocking.
Public property | UsesGuestAccess | firewall supports the usage of guest access

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


GuestUsers Property

IFireWallUserCollection..::..GuestUsers Property

a collection with all users registered as users with Guest Access

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyCollection<FireWallDashboardUser> GuestUsers { get; }

Remarks

You can add a Guest account using GuestAccess(array<GeoLocation>[]()[][])

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Item Property

IFireWallUserCollection..::..Item Property

Gets the FireWallDashboardUser at the specified index.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallDashboardUser this[
    int index
] { get; }

Parameters

index
Type: Int32
The index.

Return Value

FireWallDashboardUser.

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


UsesGeoBlocking Property

IFireWallUserCollection..::..UsesGeoBlocking Property

Gets or sets a value indicating whether the system uses geo blocking.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool UsesGeoBlocking { get; }

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


UsesGuestAccess Property

IFireWallUserCollection..::..UsesGuestAccess Property

firewall supports the usage of guest access

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool UsesGuestAccess { get; }

See Also

IFireWallUserCollection Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IResetRepository Interface

reset repository contains the release audit trial of exceptions generated to blocked users

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IResetRepository

See Also

IResetRepository Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IResetRepository Members

The IResetRepository type exposes the following members.

Methods

 | Name | Description
Public method | Clear | Remove all reset commands from backing storage.
 | Instance | Get the default instance of the IResetRepository
Public method | IsReset | test to see if the reset repository contains a reset for this user, IP, user type or block date
Public method | Reset(DateTime) | Reset all locked instances
Public method | Reset(GeoLocation, DateTime) | Reset all blocked instances from a country or region
Public method | Reset(array<GeoLocation>[]()[][], DateTime) | Reset all blocked instances from a countries or regions
Public method | Reset(IPAddress, IPAddress, DateTime) | Reset all instances from IP scope
Public method | Reset(IPAddress, DateTime) | Reset all incidents from a given IP address
Public method | Reset(IFirewallUser, DateTime) | Reset user instances from all IP's and devices used by the user
Public method | Reset(UserTypes, DateTime) | Reset all locked user type instances
Public method | Reset(DateTime, DateTime) | Reset all locked instances

Properties

 | Name | Description
Public property | ResetCommands | Access the issued reset commands

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IResetRepository Methods

The IResetRepository type exposes the following members.

Methods

 | Name | Description
Public method | Clear | Remove all reset commands from backing storage.
 | Instance | Get the default instance of the IResetRepository
Public method | IsReset | test to see if the reset repository contains a reset for this user, IP, user type or block date
Public method | Reset(DateTime) | Reset all locked instances
Public method | Reset(GeoLocation, DateTime) | Reset all blocked instances from a country or region
Public method | Reset(array<GeoLocation>[]()[][], DateTime) | Reset all blocked instances from a countries or regions
Public method | Reset(IPAddress, IPAddress, DateTime) | Reset all instances from IP scope
Public method | Reset(IPAddress, DateTime) | Reset all incidents from a given IP address
Public method | Reset(IFirewallUser, DateTime) | Reset user instances from all IP's and devices used by the user
Public method | Reset(UserTypes, DateTime) | Reset all locked user type instances
Public method | Reset(DateTime, DateTime) | Reset all locked instances

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Clear Method

IResetRepository..::..Clear Method

Remove all reset commands from backing storage.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Clear()

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Instance Method

IResetRepository..::..Instance Method

Get the default instance of the IResetRepository

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IResetRepository> Instance()

Return Value

IResetRepository if registered or null if not

Remarks

This is an advanced method of interacting with the FireWall internal storage.

The reset repository is used by the firewall to process and manage reset requests. You can take control of the incident storage interface and manually interact with the instance. If you interact with the repository directly know that you will need to maintain any reporting infrastructure as well.

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IsReset Method

IResetRepository..::..IsReset Method

test to see if the reset repository contains a reset for this user, IP, user type or block date

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsReset(
    IPageRequest pageRequest,
    DateTime blockDate,
    out ResetReason reason
)

Parameters

pageRequest
Type: Walter.Web.FireWall..::..IPageRequest
the page to extrapolate context from
blockDate
Type: DateTime
the date the user was blocked
reason
Type: Walter.Web.FireWall.Infrastructure.Repositories..::..ResetReason %
The reason associated with the recommendation

Return Value

true if the recommendation is to be reversed

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method

IResetRepository..::..Reset Method

Overload List

 | Name | Description
Public method | Reset(DateTime) | Reset all locked instances
Public method | Reset(GeoLocation, DateTime) | Reset all blocked instances from a country or region
Public method | Reset(array<GeoLocation>[]()[][], DateTime) | Reset all blocked instances from a countries or regions
Public method | Reset(IPAddress, IPAddress, DateTime) | Reset all instances from IP scope
Public method | Reset(IPAddress, DateTime) | Reset all incidents from a given IP address
Public method | Reset(IFirewallUser, DateTime) | Reset user instances from all IP's and devices used by the user
Public method | Reset(UserTypes, DateTime) | Reset all locked user type instances
Public method | Reset(DateTime, DateTime) | Reset all locked instances

See Also

IResetRepository Interface
IResetRepository Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (DateTime)

IResetRepository..::..Reset Method (DateTime)

Reset all locked instances

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    DateTime tillUtc
)

Parameters

tillUtc
Type: DateTime
release till date

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (GeoLocation, DateTime)

IResetRepository..::..Reset Method (GeoLocation, DateTime)

Reset all blocked instances from a country or region

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    GeoLocation location,
    DateTime tillUtc
)

Parameters

location
Type: Walter.BOM.Geo..::..GeoLocation
geographical location to release
tillUtc
Type: DateTime
release till date

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (GeoLocation[], DateTime)

IResetRepository..::..Reset Method (array<GeoLocation>[]()[][], DateTime)

Reset all blocked instances from a countries or regions

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    GeoLocation[] locationsSet,
    DateTime tillUtc
)

Parameters

locationsSet
Type: array<GeoLocation>[]()[][]
set of geographical locations
tillUtc
Type: DateTime

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (IPAddress, IPAddress, DateTime)

IResetRepository..::..Reset Method (IPAddress, IPAddress, DateTime)

Reset all instances from IP scope

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    IPAddress from,
    IPAddress till,
    DateTime tillUtc
)

Parameters

from
Type: IPAddress
IP cope start
till
Type: IPAddress
IP scope end
tillUtc
Type: DateTime
release till date

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (IPAddress, DateTime)

IResetRepository..::..Reset Method (IPAddress, DateTime)

Reset all incidents from a given IP address

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    IPAddress address,
    DateTime tillUtc
)

Parameters

address
Type: IPAddress
the address to reset
tillUtc
Type: DateTime
time stamp to reset

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (IFirewallUser, DateTime)

IResetRepository..::..Reset Method (IFirewallUser, DateTime)

Reset user instances from all IP's and devices used by the user

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    IFirewallUser user,
    DateTime tillUtc
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
the user to reset
tillUtc
Type: DateTime
release till date

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (UserTypes, DateTime)

IResetRepository..::..Reset Method (UserTypes, DateTime)

Reset all locked user type instances

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    UserTypes userType,
    DateTime tillUtc
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
type of users to release
tillUtc
Type: DateTime
release till date

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Reset Method (DateTime, DateTime)

IResetRepository..::..Reset Method (DateTime, DateTime)

Reset all locked instances

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IAppliedResetRule Reset(
    DateTime fromUtc,
    DateTime tillUtc
)

Parameters

fromUtc
Type: DateTime
release from date
tillUtc
Type: DateTime
release till date

Return Value

An AppliedResetRule entry describing the incidents affected

See Also

IResetRepository Interface
Reset Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IResetRepository Properties

The IResetRepository type exposes the following members.

Properties

 | Name | Description
Public property | ResetCommands | Access the issued reset commands

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetCommands Property

IResetRepository..::..ResetCommands Property

Access the issued reset commands

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IAppliedResetRule> ResetCommands { get; }

See Also

IResetRepository Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IWhoisBackGroundProcessor Interface

The factory that will process WHOIS request for ISP's connecting to the web application in a non blocking way

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IWhoisBackGroundProcessor

See Also

IWhoisBackGroundProcessor Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IWhoisBackGroundProcessor Members

The IWhoisBackGroundProcessor type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue(IPageRequest) | Enqueues the request telling the firewall to get the ISP hosting the IP address of the user connecting
Public method | Enqueue(IPAddress) | enqueue a ip address to resolve
Public method | Flush | Process all queued page requests that are pending processing
 | Instance | Get the default instance of the IWhoisBackGroundProcessor
Public method | QueuedCount | The count of items in the queue that are waiting to be processed

See Also

IWhoisBackGroundProcessor Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


IWhoisBackGroundProcessor Methods

The IWhoisBackGroundProcessor type exposes the following members.

Methods

 | Name | Description
Public method | Enqueue(IPageRequest) | Enqueues the request telling the firewall to get the ISP hosting the IP address of the user connecting
Public method | Enqueue(IPAddress) | enqueue a ip address to resolve
Public method | Flush | Process all queued page requests that are pending processing
 | Instance | Get the default instance of the IWhoisBackGroundProcessor
Public method | QueuedCount | The count of items in the queue that are waiting to be processed

See Also

IWhoisBackGroundProcessor Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Enqueue Method

IWhoisBackGroundProcessor..::..Enqueue Method

Overload List

 | Name | Description
Public method | Enqueue(IPageRequest) | Enqueues the request telling the firewall to get the ISP hosting the IP address of the user connecting
Public method | Enqueue(IPAddress) | enqueue a ip address to resolve

See Also

IWhoisBackGroundProcessor Interface
IWhoisBackGroundProcessor Members
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Enqueue Method (IPageRequest)

IWhoisBackGroundProcessor..::..Enqueue Method (IPageRequest)

Enqueues the request telling the firewall to get the ISP hosting the IP address of the user connecting

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IPageRequest pageRequest
)

Parameters

pageRequest
Type: Walter.Web.FireWall..::..IPageRequest
The page request to process

See Also

IWhoisBackGroundProcessor Interface
Enqueue Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Enqueue Method (IPAddress)

IWhoisBackGroundProcessor..::..Enqueue Method (IPAddress)

enqueue a ip address to resolve

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Enqueue(
    IPAddress address
)

Parameters

address
Type: IPAddress

See Also

IWhoisBackGroundProcessor Interface
Enqueue Overload
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Flush Method

IWhoisBackGroundProcessor..::..Flush Method

Process all queued page requests that are pending processing

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Flush()

See Also

IWhoisBackGroundProcessor Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


Instance Method

IWhoisBackGroundProcessor..::..Instance Method

Get the default instance of the IWhoisBackGroundProcessor

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IWhoisBackGroundProcessor> Instance()

Return Value

IWhoisBackGroundProcessor if registered or null

Remarks

Interface is only available if the NuGet Package Walter.Web.FireWall.WhoIsProcessor is used and configured

See Also

IWhoisBackGroundProcessor Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


QueuedCount Method

IWhoisBackGroundProcessor..::..QueuedCount Method

The count of items in the queue that are waiting to be processed

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int QueuedCount()

See Also

IWhoisBackGroundProcessor Interface
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetReason Enumeration

Reason why a firewall reject recommendation is considered.

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ResetReason

Members

Member name | Description
NoReason | The no reason
ResetAllAfterGivenData | The reset all after given data
ResetGeographyAfterGivenData | A reset geography was issued after given data
ResetUserAfterGivenData | A reset user was issued after given data
ResetUserTypeAfterGivenData | A reset user type was issued after given data
ResetIPRangeAfterGivenData | A reset on a IP address range was issued after given data
ResetIncidentDateAfterGivenData | A reset on incident dates was issued after given data

Remarks

Reject considerations my be applicable to among others cookies as a user can have a blocked cookie on a device while having been released on the incident database. As user devices are not connected to the firewall's database this disconnect is managed using these rules

See Also

Walter.Web.FireWall.Infrastructure.Repositories Namespace


Walter.Web.FireWall.Middleware Namespace

Classes

 | Class | Description
Public class | HttpStatusCodeExceptionMiddleware | Class HttpStatusCodeExceptionMiddleware.


HttpStatusCodeExceptionMiddleware Class

Class HttpStatusCodeExceptionMiddleware.

Namespace: Walter.Web.FireWall.Middleware
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class HttpStatusCodeExceptionMiddleware

See Also

HttpStatusCodeExceptionMiddleware Members
Walter.Web.FireWall.Middleware Namespace


HttpStatusCodeExceptionMiddleware Members

The HttpStatusCodeExceptionMiddleware type exposes the following members.

Constructors

 | Name | Description
Public method | HttpStatusCodeExceptionMiddleware | Initializes a new instance of the HttpStatusCodeExceptionMiddleware class.

Methods

 | Name | Description
Public method | Invoke | Invokes the specified context.

See Also

HttpStatusCodeExceptionMiddleware Class
Walter.Web.FireWall.Middleware Namespace


HttpStatusCodeExceptionMiddleware Constructor

Initializes a new instance of the HttpStatusCodeExceptionMiddleware class.

Namespace: Walter.Web.FireWall.Middleware
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCodeExceptionMiddleware(
    RequestDelegate next,
    IFireWall fireWall,
    IHttpContextAccessor context,
    IFailedRequestTracker failedRequestTracker,
    Nullable<ILoggerFactory> factory,
    Nullable<IMemoryCache> memory,
    Nullable<ICookieFactory> cookieFactory
)

Parameters

next
Type: RequestDelegate
The next.
fireWall
Type: Walter.Web.FireWall..::..IFireWall
an instance of the firewall
context
Type: IHttpContextAccessor
failedRequestTracker
Type: Walter.Web.FireWall.RequestTracking..::..IFailedRequestTracker
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
an instance of the logging factory
memory
Type: Nullable <(Of <(<'IMemoryCache>)>)>
cookieFactory
Type: Nullable <(Of <(<' ICookieFactory >)>)>

Exceptions

Exception | Condition
[ArgumentNullException] | next
[ArgumentNullException] | loggerFactory

See Also

HttpStatusCodeExceptionMiddleware Class
Walter.Web.FireWall.Middleware Namespace


HttpStatusCodeExceptionMiddleware Methods

The HttpStatusCodeExceptionMiddleware type exposes the following members.

Methods

 | Name | Description
Public method | Invoke | Invokes the specified context.

See Also

HttpStatusCodeExceptionMiddleware Class
Walter.Web.FireWall.Middleware Namespace


Invoke Method

HttpStatusCodeExceptionMiddleware..::..Invoke Method

Invokes the specified context.

Namespace: Walter.Web.FireWall.Middleware
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task Invoke(
    HttpContext context
)

Parameters

context
Type: HttpContext
The context.

See Also

HttpStatusCodeExceptionMiddleware Class
Walter.Web.FireWall.Middleware Namespace


Walter.Web.FireWall.Models Namespace

Classes

 | Class | Description
Public class | BreadCrumb | Breadcrumb navigation item showing the navigation of a given user
Public class | CompressionData | Class CompressionData records the minification compression effectiveness and savings per endpoint
Public class | Documentation | Documentation container for documentation elements used in the FrameWork
Public class | FireWallStackItem | Class FireWallStackItem.
Public class | FireWallViolations | Class FireWallViolations. Implements the IFireWallViolations
Public class | KpiEntry | Class KpiEntry contains the processing time consumed by a given page for a given step.
Public class | KpiPageEntry | Class KpiPageEntry is a entry to the page firewall key performance indicators.
Public class | NameCount | Class NameCount contains name and count pair data.
Public class | PhishyVisitStats | Requested URL that are not discovered by the firewall and are Phishy by nature
Public class | SiteMapPageLinks | The site-map link contains a link that was discovered using the User detection framework
Public class | UserAgentAudit | Class contain information for how often a user agent was found in a given context
Public class | VisitStats | The structure VisitStats contains the visiting data for a given user on a given resource.

Structures

 | Structure | Description
Public structure | GuardValuation | Data structure GuardValuation contains the result of guard actions executed by a given page request.
Public structure | IpAddressSubscriptionEntry | IP address subscription entry
Public structure | UserScreen | the structure UserScreen is populated when using the JavaScript implementation and the firewall renders page requests

Interfaces

 | Interface | Description
Public interface | IAppliedResetRule | Interface describing a reset rule that was triggered against the firewall internal incident data.
Public interface | IFireWallSession | Firewall session object keeps track of the user and his action and visit duration
Public interface | IFirewallUser | The firewall assigned user
Public interface | IFireWallUserProxy | debugger proxy value
Public interface | IFireWallViolations | Firewall violation record
Public interface | IIncident | Interface IIncident
Public interface | IIncidentAction | AN INcedent action
Public interface | IPhishyVisitStats | Requested URL that are not discovered by the firewall and are Phishy by nature
Public interface | ISimpleISP | Interface ISimpleISP
Public interface | IVisitStats | Interface IVisitStats

Enumerations

 | Enumeration | Description
Public enumeration | ApplicationCompromisedActions | Indicates the action that need to be taken when a compromised application was detected by the firewall
Public enumeration | AppliedUrlRules | Enum AppliedUrlRules shows additional rules that are applied to a given URL
Public enumeration | ResetRuleRuleType | Classification type of rule associated with a reset event
Public enumeration | SiteMapSearchResult | Site-map search result contains information on the navigation by the user


ApplicationCompromisedActions Enumeration

Indicates the action that need to be taken when a compromised application was detected by the firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ApplicationCompromisedActions

Members

Member name | Description
None | Indicates that no compromised state was detected or no action needs to be performed
ShutDown | Shutdown the application and crash each request
Redirect | Redirect each request based to the URL specified in RedirectAllRequestsOnDiskManipulation
PersistOnReboot | If set the firewall will remember the state for the next time it starts again by writing a app_offline.htm file that you will need to manually delete to bring the application online again

See Also

Walter.Web.FireWall.Models Namespace


AppliedUrlRules Enumeration

Enum AppliedUrlRules shows additional rules that are applied to a given URL

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum AppliedUrlRules

Members

Member name | Description
None | Only default firewall rules are applied
GeoFilter | The Page contains values to block geographical locations some requests are filter
UserTypeFilter | The Page contains a contains a UserTypes Filter and will restrict the user types allowed to access the endpoint
FrequencyFilter | The Page contains a contains a frequency filter for requests is being filter
BlockDurationRule | The Page contains a contains a blocking rule filter
SkipCountValidationFilter | Link contains a skip count allowing the user a "pass" on the rule for a certain count, making a rule less restrictive
NoFirewallProtection | Firewall is disabled on this endpoint
IPFilter | The Page contains a IP address filter The firewall and will only allow a specified IP address to access the endpoint
PageRefreshFilter | The page contains a refresh filter
WhiteListIpFilter | The Page contains a white list IP address filter
Scrubbung | page contains an override for scrubbing
AddHock | Addhock configured on endpoint
KnownBadBoys | known malicious user rule on endpoint
CORS | CORS protection
UserAgentFilter | Malicious UserAgents protection
SiteMapFilter | Only allows access to users that have been made available
RejectBadIntentions | Only allow access based on User-Agent reputation
HoneyPotTrap | annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious
BlockedForPort | Indicates that the endpoint (may be a ad-hock endpoint to a resource that does not exist) is protected using EndPoinPortAttribute
APiEndpoint | the endpoint is used for external firewall management
ISPBlocked | Internet service provider blocking rule

See Also

Walter.Web.FireWall.Models Namespace


BreadCrumb Class

Breadcrumb navigation item showing the navigation of a given user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BreadCrumb

Remarks

The breadcrumb show how the user navigated through the application.

See Also

BreadCrumb Members
Walter.Web.FireWall.Models Namespace


BreadCrumb Members

The BreadCrumb type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BreadCrumb>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetEvalualtions | Get the violation evaluation meta data as well as reason why blocked or passed
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRelativeUrl(IPageRequest) | Get the relative URI for the provided page
Public method | GetRelativeUrl(Uri) | Get the relative URI for the provided url
Public method | SetValues | Sets the specified values array.
Public method | ToString | string representation

Properties

 | Name | Description
Public property | ChildRequests | Gets the child requests made against the page.
Public property | CIDR | Gets or sets the IP address Identifier.
Public property | CookiesPhishing | Gets the cookies send to the page that where not made by the site.
Public property | FireWallRout | Firewall rout used by the firewall when protecting the activity
Public property | FireWallSessionId | The firewall session ID the page was recorder
Public property | Flow | How the page has flown through the firewall
Public property | FWUID | Gets or sets the firewall user identifier.
Public property | GuardResponse | Gets the guard response.
Public property | HttpStatus | the HTTP Status of the request
Public property | Interactions | recorded interactions
Public property | LastActivityUtc | last recorded activity
Public property | Method | the method used to access the URL
Public property | PageRequestGroupId | Gets the Page request group, if this is the root page than this number will be the same as PageRequestId.
Public property | Path | the path of the item
Public property | PayLoadInfo | Gets or sets the pay load information.
Public property | PoisonedCookies | Gets the cookies send to the page are altered by the sender.
Public property | Query | query parameters if any
Public property | ResourceType | The resource consumed
Public property | Screen | the screen recorded by the user discovery
Public property | SessionPageGroupNumber | Session page group number
Public property | SiteMapStatus | Site-map search result contains information on the navigation by the user
Public property | Triggered | Gets the triggered blocking reasons.
Public property | UserAgent | User agent used when getting the resource
Public property | UserType | The recored user type
Public property | Violated | violated modules
Public property | VisitUtc | The date the endpoint was visited

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


BreadCrumb Methods

The BreadCrumb type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BreadCrumb>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetEvalualtions | Get the violation evaluation meta data as well as reason why blocked or passed
Public method | GetHashCode | Returns a hash code for this instance.
Public method | GetRelativeUrl(IPageRequest) | Get the relative URI for the provided page
Public method | GetRelativeUrl(Uri) | Get the relative URI for the provided url
Public method | SetValues | Sets the specified values array.
Public method | ToString | string representation

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Equals Method

BreadCrumb..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(BreadCrumb>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

BreadCrumb Class
BreadCrumb Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

BreadCrumb..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

BreadCrumb Class
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(BreadCrumb))

BreadCrumb..::..Equals Method (Nullable<(Of <(<'BreadCrumb>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<BreadCrumb> other
)

Parameters

other
Type: Nullable <(Of <(<' BreadCrumb >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

BreadCrumb Class
Equals Overload
Walter.Web.FireWall.Models Namespace


GetEvalualtions Method

BreadCrumb..::..GetEvalualtions Method

Get the violation evaluation meta data as well as reason why blocked or passed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<FirewallBlockReasonAuditEntry> GetEvalualtions()

Remarks

Will be empty if no violations detected

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


GetHashCode Method

BreadCrumb..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


GetRelativeUrl Method

BreadCrumb..::..GetRelativeUrl Method

Overload List

 | Name | Description
Public method | GetRelativeUrl(IPageRequest) | Get the relative URI for the provided page
Public method | GetRelativeUrl(Uri) | Get the relative URI for the provided url

See Also

BreadCrumb Class
BreadCrumb Members
Walter.Web.FireWall.Models Namespace


GetRelativeUrl Method (IPageRequest)

BreadCrumb..::..GetRelativeUrl Method (IPageRequest)

Get the relative URI for the provided page

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri GetRelativeUrl(
    IPageRequest relative
)

Parameters

relative
Type: Walter.Web.FireWall..::..IPageRequest
the page to base of from

Return Value

relative url for page

See Also

BreadCrumb Class
GetRelativeUrl Overload
Walter.Web.FireWall.Models Namespace


GetRelativeUrl Method (Uri)

BreadCrumb..::..GetRelativeUrl Method (Uri)

Get the relative URI for the provided url

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri GetRelativeUrl(
    Uri relative
)

Parameters

relative
Type: Uri
the url to base from

Return Value

relative url for page

See Also

BreadCrumb Class
GetRelativeUrl Overload
Walter.Web.FireWall.Models Namespace


SetValues Method

BreadCrumb..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


ToString Method

BreadCrumb..::..ToString Method

string representation

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


BreadCrumb Properties

The BreadCrumb type exposes the following members.

Properties

 | Name | Description
Public property | ChildRequests | Gets the child requests made against the page.
Public property | CIDR | Gets or sets the IP address Identifier.
Public property | CookiesPhishing | Gets the cookies send to the page that where not made by the site.
Public property | FireWallRout | Firewall rout used by the firewall when protecting the activity
Public property | FireWallSessionId | The firewall session ID the page was recorder
Public property | Flow | How the page has flown through the firewall
Public property | FWUID | Gets or sets the firewall user identifier.
Public property | GuardResponse | Gets the guard response.
Public property | HttpStatus | the HTTP Status of the request
Public property | Interactions | recorded interactions
Public property | LastActivityUtc | last recorded activity
Public property | Method | the method used to access the URL
Public property | PageRequestGroupId | Gets the Page request group, if this is the root page than this number will be the same as PageRequestId.
Public property | Path | the path of the item
Public property | PayLoadInfo | Gets or sets the pay load information.
Public property | PoisonedCookies | Gets the cookies send to the page are altered by the sender.
Public property | Query | query parameters if any
Public property | ResourceType | The resource consumed
Public property | Screen | the screen recorded by the user discovery
Public property | SessionPageGroupNumber | Session page group number
Public property | SiteMapStatus | Site-map search result contains information on the navigation by the user
Public property | Triggered | Gets the triggered blocking reasons.
Public property | UserAgent | User agent used when getting the resource
Public property | UserType | The recored user type
Public property | Violated | violated modules
Public property | VisitUtc | The date the endpoint was visited

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


ChildRequests Property

BreadCrumb..::..ChildRequests Property

Gets the child requests made against the page.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<BreadCrumb> ChildRequests { get; }

Field Value

The child requests.

Remarks

Child requests are java post backs or linked resources loaded by the endpoint in the bread crumb

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


CIDR Property

BreadCrumb..::..CIDR Property

Gets or sets the IP address Identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; set; }

Field Value

The cidr.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


CookiesPhishing Property

BreadCrumb..::..CookiesPhishing Property

Gets the cookies send to the page that where not made by the site.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<string, int> CookiesPhishing { get; }

Field Value

The cookies send for phishing .

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


FireWallRout Property

BreadCrumb..::..FireWallRout Property

Firewall rout used by the firewall when protecting the activity

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DiscoveredRout> FireWallRout { get; set; }

Remarks

This value is null if a fishing request is observed

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


FireWallSessionId Property

BreadCrumb..::..FireWallSessionId Property

The firewall session ID the page was recorder

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal FireWallSessionId { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Flow Property

BreadCrumb..::..Flow Property

How the page has flown through the firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FlowReason Flow { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


FWUID Property

BreadCrumb..::..FWUID Property

Gets or sets the firewall user identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long FWUID { get; set; }

Field Value

The user id

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


GuardResponse Property

BreadCrumb..::..GuardResponse Property

Gets the guard response.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GuardResponse GuardResponse { get; set; }

Field Value

The guard response.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


HttpStatus Property

BreadCrumb..::..HttpStatus Property

the HTTP Status of the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCode HttpStatus { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Interactions Property

BreadCrumb..::..Interactions Property

recorded interactions

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RecordedInteractions Interactions { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


LastActivityUtc Property

BreadCrumb..::..LastActivityUtc Property

last recorded activity

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastActivityUtc { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Method Property

BreadCrumb..::..Method Property

the method used to access the URL

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ProtocolMethod Method { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


PageRequestGroupId Property

BreadCrumb..::..PageRequestGroupId Property

Gets the Page request group, if this is the root page than this number will be the same as PageRequestId.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestGroupId { get; set; }

Field Value

The page request group.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Path Property

BreadCrumb..::..Path Property

the path of the item

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Path { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


PayLoadInfo Property

BreadCrumb..::..PayLoadInfo Property

Gets or sets the pay load information.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> PayLoadInfo { get; set; }

Field Value

The pay load information.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


PoisonedCookies Property

BreadCrumb..::..PoisonedCookies Property

Gets the cookies send to the page are altered by the sender.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<string, int> PoisonedCookies { get; }

Field Value

The manipulated cookies .

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Query Property

BreadCrumb..::..Query Property

query parameters if any

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Query { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


ResourceType Property

BreadCrumb..::..ResourceType Property

The resource consumed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LinkType ResourceType { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Screen Property

BreadCrumb..::..Screen Property

the screen recorded by the user discovery

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserScreen Screen { get; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


SessionPageGroupNumber Property

BreadCrumb..::..SessionPageGroupNumber Property

Session page group number

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal SessionPageGroupNumber { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


SiteMapStatus Property

BreadCrumb..::..SiteMapStatus Property

Site-map search result contains information on the navigation by the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapSearchResult SiteMapStatus { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Triggered Property

BreadCrumb..::..Triggered Property

Gets the triggered blocking reasons.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Triggered { get; set; }

Field Value

The triggered.

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


UserAgent Property

BreadCrumb..::..UserAgent Property

User agent used when getting the resource

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string UserAgent { get; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


UserType Property

BreadCrumb..::..UserType Property

The recored user type

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


Violated Property

BreadCrumb..::..Violated Property

violated modules

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Violated { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


VisitUtc Property

BreadCrumb..::..VisitUtc Property

The date the endpoint was visited

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime VisitUtc { get; set; }

See Also

BreadCrumb Class
Walter.Web.FireWall.Models Namespace


CompressionData Class

Class CompressionData records the minification compression effectiveness and savings per endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class CompressionData

Remarks

You can enable this feature by adding the [Minify] attribute to your Razor views and pages

Examples

Minify the rendered Razor view. You can access the compressed in the post processing as well as in the page reporting.
C#
[Minify]
public IActionResult Index()
{
   return View();
}

See Also

CompressionData Members
Walter.Web.FireWall.Models Namespace
Walter.Web.FireWall.Annotations..::..MinifyAttribute
[IFireWall.Report(Reporting.ReportTypes)]
[IFireWall.Report(Reporting.ReportTypes, Reporting.ReportFormat)]
[IFireWall.GetReport(Reporting.ReportTypes)]
ReportTypes..::..Minification


CompressionData Members

The CompressionData type exposes the following members.

Methods

 | Name | Description
Public method | AverageCompression | Get the averages compression for the razor page on this endpoint.
Public method | Compression | Get the total compression for the razor page on this endpoint.
Public method | ToString | Returns compression data as friendly string

Properties

 | Name | Description
Public property | AverageCompressedSize | Gets the average size of the compressed razor page.
Public property | AverageOriginalSize | Gets the size of the average original razor page.
Public property | CompressedSize | Gets the cumulative size of all the compressed data for the requested razor page HTML of the endpoint.
Public property | Count | returns data as to how often the endpoint has been compressed
Public property | Endpoint | Gets the endpoint that this compression data is recording.
Public property | FirstRecorded | Get the UTC date of when the first compression was recorder
Public property | LastRecorded | Get the UTC date of when the last compression was recorder
Public property | OriginalSize | Gets the cumulative size of all the un-compressed data for the requested razor page HTML of the endpoint.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


CompressionData Methods

The CompressionData type exposes the following members.

Methods

 | Name | Description
Public method | AverageCompression | Get the averages compression for the razor page on this endpoint.
Public method | Compression | Get the total compression for the razor page on this endpoint.
Public method | ToString | Returns compression data as friendly string

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


AverageCompression Method

CompressionData..::..AverageCompression Method

Get the averages compression for the razor page on this endpoint.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double AverageCompression()

Return Value

System.Double.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


Compression Method

CompressionData..::..Compression Method

Get the total compression for the razor page on this endpoint.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double Compression()

Return Value

System.Double.

Remarks

This value contains the size reduction as percentage so 0.7 indicates the page is 70% smaller then what it would be if not compressed

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


ToString Method

CompressionData..::..ToString Method

Returns compression data as friendly string

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

String representation of the compression data

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


CompressionData Properties

The CompressionData type exposes the following members.

Properties

 | Name | Description
Public property | AverageCompressedSize | Gets the average size of the compressed razor page.
Public property | AverageOriginalSize | Gets the size of the average original razor page.
Public property | CompressedSize | Gets the cumulative size of all the compressed data for the requested razor page HTML of the endpoint.
Public property | Count | returns data as to how often the endpoint has been compressed
Public property | Endpoint | Gets the endpoint that this compression data is recording.
Public property | FirstRecorded | Get the UTC date of when the first compression was recorder
Public property | LastRecorded | Get the UTC date of when the last compression was recorder
Public property | OriginalSize | Gets the cumulative size of all the un-compressed data for the requested razor page HTML of the endpoint.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


AverageCompressedSize Property

CompressionData..::..AverageCompressedSize Property

Gets the average size of the compressed razor page.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double AverageCompressedSize { get; }

Field Value

The average size of the compressed.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


AverageOriginalSize Property

CompressionData..::..AverageOriginalSize Property

Gets the size of the average original razor page.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double AverageOriginalSize { get; }

Field Value

The size of the average original.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


CompressedSize Property

CompressionData..::..CompressedSize Property

Gets the cumulative size of all the compressed data for the requested razor page HTML of the endpoint.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CompressedSize { get; }

Field Value

The size of the compressed.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


Count Property

CompressionData..::..Count Property

returns data as to how often the endpoint has been compressed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long Count { get; }

Field Value

The count.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


Endpoint Property

CompressionData..::..Endpoint Property

Gets the endpoint that this compression data is recording.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DiscoveredRout Endpoint { get; }

Field Value

The endpoint.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


FirstRecorded Property

CompressionData..::..FirstRecorded Property

Get the UTC date of when the first compression was recorder

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime FirstRecorded { get; }

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


LastRecorded Property

CompressionData..::..LastRecorded Property

Get the UTC date of when the last compression was recorder

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastRecorded { get; }

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


OriginalSize Property

CompressionData..::..OriginalSize Property

Gets the cumulative size of all the un-compressed data for the requested razor page HTML of the endpoint.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long OriginalSize { get; }

Field Value

The size of the original.

See Also

CompressionData Class
Walter.Web.FireWall.Models Namespace


Documentation Class

Documentation container for documentation elements used in the FrameWork

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class Documentation

See Also

Documentation Members
Walter.Web.FireWall.Models Namespace
IPageRequest..::..AddDocumentation(String, Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(String>)>>), Nullable<(Of <<'(Int32>)>>))
IPageRequest..::..GetDocumentation()()()()


Documentation Members

The Documentation type exposes the following members.

Methods

 | Name | Description
Public method | ToString | returns the string representation element of the documentation instance

Properties

 | Name | Description
Public property | CreatedUtc | Gets the created UTC.
Public property | FileName | Gets the name of the file.
Public property | Line | Gets the line.
Public property | Message | Gets the message.
Public property | Method | Gets the method.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


Documentation Methods

The Documentation type exposes the following members.

Methods

 | Name | Description
Public method | ToString | returns the string representation element of the documentation instance

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


ToString Method

Documentation..::..ToString Method

returns the string representation element of the documentation instance

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


Documentation Properties

The Documentation type exposes the following members.

Properties

 | Name | Description
Public property | CreatedUtc | Gets the created UTC.
Public property | FileName | Gets the name of the file.
Public property | Line | Gets the line.
Public property | Message | Gets the message.
Public property | Method | Gets the method.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


CreatedUtc Property

Documentation..::..CreatedUtc Property

Gets the created UTC.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime CreatedUtc { get; }

Field Value

The created UTC.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


FileName Property

Documentation..::..FileName Property

Gets the name of the file.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string FileName { get; }

Field Value

The name of the file.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


Line Property

Documentation..::..Line Property

Gets the line.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Line { get; }

Field Value

The line.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


Message Property

Documentation..::..Message Property

Gets the message.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Message { get; }

Field Value

The message.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


Method Property

Documentation..::..Method Property

Gets the method.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Method { get; }

Field Value

The method.

See Also

Documentation Class
Walter.Web.FireWall.Models Namespace


FireWallStackItem Class

Class FireWallStackItem.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallStackItem : IFireWallStackItemProxy

See Also

FireWallStackItem Members
Walter.Web.FireWall.Models Namespace


FireWallStackItem Members

The FireWallStackItem type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | Context | Gets the context for the evaluation.
Public property | ControlledBy | The module that generated the entry
Public property | Created | Gets the UTC date the incident stack entry was created.
Public property | Data | Data elements explaining the values expected and received
Public property | Modules | Gets the module executed.
Public property | Reason | Gets the reason for the issue.
Public property | Route | Access the firewall rout if a firewall endpoint was configured and discovered for the request's rules
Public property | Rule | Gets a humanly readable rule describing filter.
Public property | RuleNr | The rule number that triggered the incident in the module
Public property | SessionPageGroupNumber | The firewall session sequence number for the page
Public property | SessionPageNumber | The session page number of the resource processed by the firewall.
Public property | Uri | The url of the request
Public property | VersionId | The version specific id for the rule

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


FireWallStackItem Methods

The FireWallStackItem type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


ToString Method

FireWallStackItem..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


FireWallStackItem Properties

The FireWallStackItem type exposes the following members.

Properties

 | Name | Description
Public property | Context | Gets the context for the evaluation.
Public property | ControlledBy | The module that generated the entry
Public property | Created | Gets the UTC date the incident stack entry was created.
Public property | Data | Data elements explaining the values expected and received
Public property | Modules | Gets the module executed.
Public property | Reason | Gets the reason for the issue.
Public property | Route | Access the firewall rout if a firewall endpoint was configured and discovered for the request's rules
Public property | Rule | Gets a humanly readable rule describing filter.
Public property | RuleNr | The rule number that triggered the incident in the module
Public property | SessionPageGroupNumber | The firewall session sequence number for the page
Public property | SessionPageNumber | The session page number of the resource processed by the firewall.
Public property | Uri | The url of the request
Public property | VersionId | The version specific id for the rule

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Context Property

FireWallStackItem..::..Context Property

Gets the context for the evaluation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts Context { get; }

Field Value

The context.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


ControlledBy Property

FireWallStackItem..::..ControlledBy Property

The module that generated the entry

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuards ControlledBy { get; }

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Created Property

FireWallStackItem..::..Created Property

Gets the UTC date the incident stack entry was created.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Created { get; set; }

Field Value

The Date created.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Data Property

FireWallStackItem..::..Data Property

Data elements explaining the values expected and received

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<IncidentAssertType, string> Data { get; }

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Modules Property

FireWallStackItem..::..Modules Property

Gets the module executed.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Modules { get; }

Field Value

The module.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Reason Property

FireWallStackItem..::..Reason Property

Gets the reason for the issue.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; }

Field Value

The reason.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Route Property

FireWallStackItem..::..Route Property

Access the firewall rout if a firewall endpoint was configured and discovered for the request's rules

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DiscoveredRout> Route { get; }

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Rule Property

FireWallStackItem..::..Rule Property

Gets a humanly readable rule describing filter.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Rule { get; }

Field Value

The rule.

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


RuleNr Property

FireWallStackItem..::..RuleNr Property

The rule number that triggered the incident in the module

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int RuleNr { get; }

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


SessionPageGroupNumber Property

FireWallStackItem..::..SessionPageGroupNumber Property

The firewall session sequence number for the page

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal SessionPageGroupNumber { get; }

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


SessionPageNumber Property

FireWallStackItem..::..SessionPageNumber Property

The session page number of the resource processed by the firewall.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long SessionPageNumber { get; }

Remarks

When accessing a page with multiple AJAX call you can access the Stack from the RootPage to access all requests as well as the incidents detected on it. the order of execution is described by the SessionPageNumber

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


Uri Property

FireWallStackItem..::..Uri Property

The url of the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri Uri { get; }

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


VersionId Property

FireWallStackItem..::..VersionId Property

The version specific id for the rule

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int VersionId { get; }

Remarks

can change based on the DLL release, use RuleNr for decisions in your code

See Also

FireWallStackItem Class
Walter.Web.FireWall.Models Namespace


FireWallViolations Class

Class FireWallViolations. Implements the IFireWallViolations

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class FireWallViolations : IFireWallViolations

See Also

FireWallViolations Members
Walter.Web.FireWall.Models Namespace
Walter.Web.FireWall.Models..::..IFireWallViolations


FireWallViolations Members

The FireWallViolations type exposes the following members.

Constructors

 | Name | Description
Public method | FireWallViolations(IPageRequest, String) | Initializes a new instance of the FireWallViolations class.
Public method | FireWallViolations(IHoneyPotPortDetection, String) | Initializes a new instance of the FireWallViolations class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(FireWallViolations>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IFireWallViolations>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | Active | Gets or sets a value indicating whether this IFireWallViolations indecent is active.
Public property | CIDR | Gets IP address in the CIDR format (Classless Inter-Domain Routing) format
Public property | Description | Gets or sets the description for the violation.
Public property | DnsName | Gets or sets the name of the DNS of the ISP.
Public property | FireWallUser | Gets or sets the fire wall user id.
Public property | GroupName | Gets or sets the name of the group / category of the blocking.
Public property | ID | Gets the identifier assigned to the violation.
Public property | InterceptLocation | Gets or sets the intercept location.
Public property | IPAddress | Gets the IP address triggering the incident.
Public property | Location | Gets or sets the country of origin.
Public property | Name | Gets or sets the name of a violation.
Public property | PageRequestId | Gets or sets the page request identifier as assigned by the firewall.
Public property | PageTraceId | Gets or sets the page request trace as assigned by the framework.
Public property | Proxy | Gets or sets the proxy if the IP was from a proxy (if proxy provider enabled).
Public property | Reason | Gets or sets the reason why the entry was blocked.
Public property | RedirectedTo | Gets or sets the URL the user was redirected to.
Public property | TriggerDate | Gets or sets the date triggered.
Public property | Url | Gets or sets the URL being blocked.
Public property | UserType | the type of user

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


FireWallViolations Constructor

Overload List

 | Name | Description
Public method | FireWallViolations(IPageRequest, String) | Initializes a new instance of the FireWallViolations class.
Public method | FireWallViolations(IHoneyPotPortDetection, String) | Initializes a new instance of the FireWallViolations class.

See Also

FireWallViolations Class
FireWallViolations Members
Walter.Web.FireWall.Models Namespace


FireWallViolations Constructor (IPageRequest, String)

Initializes a new instance of the FireWallViolations class.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallViolations(
    IPageRequest page,
    string incidentName
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page.
incidentName
Type: String
Name of the incident.

See Also

FireWallViolations Class
FireWallViolations Overload
Walter.Web.FireWall.Models Namespace


FireWallViolations Constructor (IHoneyPotPortDetection, String)

Initializes a new instance of the FireWallViolations class.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallViolations(
    IHoneyPotPortDetection detection,
    string incidentName
)

Parameters

detection
Type: IHoneyPotPortDetection
The detection.
incidentName
Type: String
Name of the incident.

Exceptions

Exception | Condition
[ArgumentNullException] | detection

See Also

FireWallViolations Class
FireWallViolations Overload
Walter.Web.FireWall.Models Namespace


FireWallViolations Methods

The FireWallViolations type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(FireWallViolations>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IFireWallViolations>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Equals Method

FireWallViolations..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(FireWallViolations>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | Equals(Nullable<(Of <<'(IFireWallViolations>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

FireWallViolations Class
FireWallViolations Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

FireWallViolations..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

FireWallViolations Class
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(FireWallViolations))

FireWallViolations..::..Equals Method (Nullable<(Of <(<'FireWallViolations>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<FireWallViolations> other
)

Parameters

other
Type: Nullable <(Of <(<' FireWallViolations >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

FireWallViolations Class
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(IFireWallViolations))

FireWallViolations..::..Equals Method (Nullable<(Of <(<'IFireWallViolations>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<IFireWallViolations> other
)

Parameters

other
Type: Nullable <(Of <(<' IFireWallViolations >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

FireWallViolations Class
Equals Overload
Walter.Web.FireWall.Models Namespace


GetHashCode Method

FireWallViolations..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


ToString Method

FireWallViolations..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


FireWallViolations Properties

The FireWallViolations type exposes the following members.

Properties

 | Name | Description
Public property | Active | Gets or sets a value indicating whether this IFireWallViolations indecent is active.
Public property | CIDR | Gets IP address in the CIDR format (Classless Inter-Domain Routing) format
Public property | Description | Gets or sets the description for the violation.
Public property | DnsName | Gets or sets the name of the DNS of the ISP.
Public property | FireWallUser | Gets or sets the fire wall user id.
Public property | GroupName | Gets or sets the name of the group / category of the blocking.
Public property | ID | Gets the identifier assigned to the violation.
Public property | InterceptLocation | Gets or sets the intercept location.
Public property | IPAddress | Gets the IP address triggering the incident.
Public property | Location | Gets or sets the country of origin.
Public property | Name | Gets or sets the name of a violation.
Public property | PageRequestId | Gets or sets the page request identifier as assigned by the firewall.
Public property | PageTraceId | Gets or sets the page request trace as assigned by the framework.
Public property | Proxy | Gets or sets the proxy if the IP was from a proxy (if proxy provider enabled).
Public property | Reason | Gets or sets the reason why the entry was blocked.
Public property | RedirectedTo | Gets or sets the URL the user was redirected to.
Public property | TriggerDate | Gets or sets the date triggered.
Public property | Url | Gets or sets the URL being blocked.
Public property | UserType | the type of user

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Active Property

FireWallViolations..::..Active Property

Gets or sets a value indicating whether this IFireWallViolations indecent is active.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Active { get; set; }

Field Value

true if active; otherwise, false.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


CIDR Property

FireWallViolations..::..CIDR Property

Gets IP address in the CIDR format (Classless Inter-Domain Routing) format

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; }

Field Value

The IP in CIDR.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Description Property

FireWallViolations..::..Description Property

Gets or sets the description for the violation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> Description { get; set; }

Field Value

The description.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


DnsName Property

FireWallViolations..::..DnsName Property

Gets or sets the name of the DNS of the ISP.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string DnsName { get; }

Field Value

The name of the DNS.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


FireWallUser Property

FireWallViolations..::..FireWallUser Property

Gets or sets the fire wall user id.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long FireWallUser { get; }

Field Value

The fire wall user.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


GroupName Property

FireWallViolations..::..GroupName Property

Gets or sets the name of the group / category of the blocking.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts GroupName { get; set; }

Field Value

The name of the group.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


ID Property

FireWallViolations..::..ID Property

Gets the identifier assigned to the violation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Guid ID { get; }

Field Value

The identifier.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


InterceptLocation Property

FireWallViolations..::..InterceptLocation Property

Gets or sets the intercept location.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public InterceptLocations InterceptLocation { get; set; }

Field Value

The intercept location.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


IPAddress Property

FireWallViolations..::..IPAddress Property

Gets the IP address triggering the incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress IPAddress { get; }

Field Value

The IP address.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Location Property

FireWallViolations..::..Location Property

Gets or sets the country of origin.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation Location { get; set; }

Field Value

The location.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Name Property

FireWallViolations..::..Name Property

Gets or sets the name of a violation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Name { get; set; }

Field Value

The name.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


PageRequestId Property

FireWallViolations..::..PageRequestId Property

Gets or sets the page request identifier as assigned by the firewall.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

Field Value

The page request identifier.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


PageTraceId Property

FireWallViolations..::..PageTraceId Property

Gets or sets the page request trace as assigned by the framework.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string PageTraceId { get; }

Field Value

The page request trace.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Proxy Property

FireWallViolations..::..Proxy Property

Gets or sets the proxy if the IP was from a proxy (if proxy provider enabled).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<GeoLocation> Proxy { get; set; }

Field Value

The proxy.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Reason Property

FireWallViolations..::..Reason Property

Gets or sets the reason why the entry was blocked.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


RedirectedTo Property

FireWallViolations..::..RedirectedTo Property

Gets or sets the URL the user was redirected to.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> RedirectedTo { get; set; }

Field Value

The redirected to.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


TriggerDate Property

FireWallViolations..::..TriggerDate Property

Gets or sets the date triggered.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime TriggerDate { get; set; }

Field Value

The date.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


Url Property

FireWallViolations..::..Url Property

Gets or sets the URL being blocked.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri Url { get; }

Field Value

The URL.

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


UserType Property

FireWallViolations..::..UserType Property

the type of user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; set; }

See Also

FireWallViolations Class
Walter.Web.FireWall.Models Namespace


GuardValuation Structure

Data structure GuardValuation contains the result of guard actions executed by a given page request.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public struct GuardValuation

See Also

GuardValuation Members
Walter.Web.FireWall.Models Namespace
IPageRequest..::..GetGuardValuations()()()()


GuardValuation Members

The GuardValuation type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GuardValuation) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | string representation of the Guard Valuation

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | Evaluated | Gets time stamp of the evaluation.
Public property | FailedTest | Gets a value indicating whether the test was failed meaning an incident was detected.
Public property | IssueReason | The issue is populated if an issue was detected and an guard rule triggered
Public property | RuleId | Contains the Rule Id of the Guard action evaluated
Public property | Step | Gets the guard module that executed in this step.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


GuardValuation Methods

The GuardValuation type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GuardValuation) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | string representation of the Guard Valuation

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


Equals Method

GuardValuation..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(GuardValuation) | Indicates whether the current object is equal to another object of the same type.

See Also

GuardValuation Structure
GuardValuation Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

GuardValuation..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

GuardValuation Structure
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (GuardValuation)

GuardValuation..::..Equals Method (GuardValuation)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    GuardValuation other
)

Parameters

other
Type: Walter.Web.FireWall.Models..::..GuardValuation
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

GuardValuation Structure
Equals Overload
Walter.Web.FireWall.Models Namespace


GetHashCode Method

GuardValuation..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


ToString Method

GuardValuation..::..ToString Method

string representation of the Guard Valuation

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


GuardValuation Operators

The GuardValuation type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


Equality Operator

GuardValuation..::..Equality Operator

Implements the == operator.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator ==(
    GuardValuation left,
    GuardValuation right
)

Parameters

left
Type: Walter.Web.FireWall.Models..::..GuardValuation
The left.
right
Type: Walter.Web.FireWall.Models..::..GuardValuation
The right.

Return Value

The result of the operator.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


Inequality Operator

GuardValuation..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator !=(
    GuardValuation left,
    GuardValuation right
)

Parameters

left
Type: Walter.Web.FireWall.Models..::..GuardValuation
The left.
right
Type: Walter.Web.FireWall.Models..::..GuardValuation
The right.

Return Value

The result of the operator.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


GuardValuation Properties

The GuardValuation type exposes the following members.

Properties

 | Name | Description
Public property | Evaluated | Gets time stamp of the evaluation.
Public property | FailedTest | Gets a value indicating whether the test was failed meaning an incident was detected.
Public property | IssueReason | The issue is populated if an issue was detected and an guard rule triggered
Public property | RuleId | Contains the Rule Id of the Guard action evaluated
Public property | Step | Gets the guard module that executed in this step.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


Evaluated Property

GuardValuation..::..Evaluated Property

Gets time stamp of the evaluation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Evaluated { get; }

Field Value

The evaluated.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


FailedTest Property

GuardValuation..::..FailedTest Property

Gets a value indicating whether the test was failed meaning an incident was detected.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool FailedTest { get; }

Field Value

true if failed; otherwise, false.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


IssueReason Property

GuardValuation..::..IssueReason Property

The issue is populated if an issue was detected and an guard rule triggered

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> IssueReason { get; }

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


RuleId Property

GuardValuation..::..RuleId Property

Contains the Rule Id of the Guard action evaluated

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int RuleId { get; }

Remarks

The value can be -1 if manual rule

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


Step Property

GuardValuation..::..Step Property

Gets the guard module that executed in this step.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Step { get; }

Field Value

The module.

Remarks

The firewall will only 1x execute the same rule regardless if manual invoked or automatically, altering the conditions and re-executing the Guard module will therefore not have any effect.

See Also

GuardValuation Structure
Walter.Web.FireWall.Models Namespace


IAppliedResetRule Interface

Interface describing a reset rule that was triggered against the firewall internal incident data.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IAppliedResetRule

See Also

IAppliedResetRule Members
Walter.Web.FireWall.Models Namespace


IAppliedResetRule Members

The IAppliedResetRule type exposes the following members.

Properties

 | Name | Description
Public property | AffectedIncidents | Gets the affected incidents.
Public property | Description | Gets the description of the applied reset rule.
Public property | IssuedUtc | Gets the issued date UTC.
Public property | IsUpdate | Gets a value indicating whether this instance is update or a new entry.
Public property | ResetType | Gets the type of the reset issued.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


IAppliedResetRule Properties

The IAppliedResetRule type exposes the following members.

Properties

 | Name | Description
Public property | AffectedIncidents | Gets the affected incidents.
Public property | Description | Gets the description of the applied reset rule.
Public property | IssuedUtc | Gets the issued date UTC.
Public property | IsUpdate | Gets a value indicating whether this instance is update or a new entry.
Public property | ResetType | Gets the type of the reset issued.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


AffectedIncidents Property

IAppliedResetRule..::..AffectedIncidents Property

Gets the affected incidents.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int AffectedIncidents { get; }

Field Value

The affected incidents.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


Description Property

IAppliedResetRule..::..Description Property

Gets the description of the applied reset rule.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Description { get; }

Field Value

The description.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


IssuedUtc Property

IAppliedResetRule..::..IssuedUtc Property

Gets the issued date UTC.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime IssuedUtc { get; }

Field Value

The issued UTC.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


IsUpdate Property

IAppliedResetRule..::..IsUpdate Property

Gets a value indicating whether this instance is update or a new entry.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsUpdate { get; }

Field Value

true if this instance is update; otherwise, false.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


ResetType Property

IAppliedResetRule..::..ResetType Property

Gets the type of the reset issued.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ResetRuleRuleType ResetType { get; }

Field Value

The type of the reset.

See Also

IAppliedResetRule Interface
Walter.Web.FireWall.Models Namespace


IFireWallSession Interface

Firewall session object keeps track of the user and his action and visit duration

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallSession

Remarks

This is not a ISession object, it does not perform data storage and is not a server side cookie

See Also

IFireWallSession Members
Walter.Web.FireWall.Models Namespace


IFireWallSession Members

The IFireWallSession type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that identifies this instance.

Properties

 | Name | Description
Public property | Age | The age of the firewall session
Public property | CIDR | the IP address that the session belongs to
Public property | SessionStart | the time the session started

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


IFireWallSession Methods

The IFireWallSession type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] that identifies this instance.

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


ToString Method

IFireWallSession..::..ToString Method

Returns a [System.String] that identifies this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ToString()

Return Value

A [System.String] that identifies this instance.

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


IFireWallSession Properties

The IFireWallSession type exposes the following members.

Properties

 | Name | Description
Public property | Age | The age of the firewall session
Public property | CIDR | the IP address that the session belongs to
Public property | SessionStart | the time the session started

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


Age Property

IFireWallSession..::..Age Property

The age of the firewall session

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan Age { get; }

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IFireWallSession..::..CIDR Property

the IP address that the session belongs to

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

Remarks

This is a check value to test the cookie belongs to the IP or if the user switched IP like some times mobile devices or VPN users do.

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


SessionStart Property

IFireWallSession..::..SessionStart Property

the time the session started

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime SessionStart { get; }

See Also

IFireWallSession Interface
Walter.Web.FireWall.Models Namespace


IFirewallUser Interface

The firewall assigned user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFirewallUser

See Also

IFirewallUser Members
Walter.Web.FireWall.Models Namespace


IFirewallUser Members

The IFirewallUser type exposes the following members.

Methods

 | Name | Description
Public method | AddGuardActions | Adds the guard actions.
Public method | InLocation | Validate if a user is known to have been in a given location
 | Parse | will parse the json to a firewall user if the json is valid for a IFireWallUser
Public method | ToString | returns a human readable representation of the user as represented by this instance.
Public method | TriggerBlockCount | Manually trigger a violation related count increase in the users profile
Public method | TriggerGeoBlockCount | Manually trigger a geography related-block count increase in the users profile
Public method | TriggerModelInvalidCount | Manually triggers the model invalid count.
Public method | TriggerUserAgentSwitchCount | Manually trigger the fact that the consumer is trying to switch to a different user agent hoping that we provide access to a resource

Properties

 | Name | Description
Public property | AgentSwitchCount | an proximate count of how often the user switched the user agent
Public property | AssumedBlockedTill | Gets the assumed UTC date until when we assumed the user will be blocked.
Public property | CIDR | The IP address of the user in CIDR format (Classless Inter-Domain Routing)
Public property | Device | the users device data
Public property | GeoBlockCount | an proximate count of how often the user was triggered access blocking based on his geography
Public property | Id | the integer ID for the user
Public property | IPAddress | Gets the IP address.
Public property | IsSpoofing | Indicates that the user is faking to be a search engine, or other known service etc Finds-out if the user is using a fake user-agent
Public property | JavaEnabled | Indicate if the user has responded to JavaScript when using the User Discovery protection
Public property | KeyboardCount | A increment of how many page requests send of those the keyboard was used
Public property | KnownViolations | Gets the known violations for this user.
Public property | LastBlock | Gets the last time the user was blocked.
Public property | LastInteraction | Last time the user had interactivity recorder by the firewall
Public property | LastViolation | Gets the UTC date when last violation occurred.
Public property | Location | Get the location of the user if the location has been determined
Public property | ModelBlockCount | How often a user submitted a bad model that got rejected using the ModelFilterAttribute annotation protection
Public property | MouseCount | A increment of how many page requests send of those the mouse was used
Public property | NavigatesToLinkNotOnSitemapCount | Provides a count of how often a user did not access a link found on the users site map. implies firewall site-map is configured
Public property | Referrer | The first page we know the user to have used to access our site, this can be a search engine, link in a post etc.
Public property | Screen | Access the users screen device as we have last seen it
Public property | SessionId | firewall user session id regardless if ISession is supported by the application
Public property | TouchCount | A increment of how many page requests send of those a touch screen was used
Public property | UserType | Gets or sets the type of the user.
Public property | ViolationsBlockCount | an proximate count of how often the triggered a firewall rule we know he was blocked
Public property | ViolationsCount | an proximate count of how often the triggered a firewall rule we know he violated
Public property | Visits | How often the user has visited the application
Public property | VisitsWithSuspiciousHeaders | how often we have seen the user access the site where the request headers do not match that what we expect the device to provide.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


IFirewallUser Methods

The IFirewallUser type exposes the following members.

Methods

 | Name | Description
Public method | AddGuardActions | Adds the guard actions.
Public method | InLocation | Validate if a user is known to have been in a given location
 | Parse | will parse the json to a firewall user if the json is valid for a IFireWallUser
Public method | ToString | returns a human readable representation of the user as represented by this instance.
Public method | TriggerBlockCount | Manually trigger a violation related count increase in the users profile
Public method | TriggerGeoBlockCount | Manually trigger a geography related-block count increase in the users profile
Public method | TriggerModelInvalidCount | Manually triggers the model invalid count.
Public method | TriggerUserAgentSwitchCount | Manually trigger the fact that the consumer is trying to switch to a different user agent hoping that we provide access to a resource

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


AddGuardActions Method

IFirewallUser..::..AddGuardActions Method

Adds the guard actions.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void AddGuardActions(
    FirewallBlockReasons blockReasons
)

Parameters

blockReasons
Type: Walter.BOM..::..FirewallBlockReasons
The block reasons.

Return Value

System.Int32.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


InLocation Method

IFirewallUser..::..InLocation Method

Validate if a user is known to have been in a given location

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool InLocation(
    params GeoLocation[] locations
)

Parameters

locations
Type: array<GeoLocation>[]()[][]
the locations to test

Return Value

returns True if the user was recorded in this location

Remarks

If called with an empty set then it always returns false. If no GeoProvider is used this will always return false

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Parse Method

IFirewallUser..::..Parse Method

will parse the json to a firewall user if the json is valid for a IFireWallUser

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallUser Parse(
    IPAddress address,
    string json
)

Parameters

address
Type: IPAddress
json
Type: String

Return Value

Populated firewall user

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


ToString Method

IFirewallUser..::..ToString Method

returns a human readable representation of the user as represented by this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string ToString()

Return Value

System.String.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


TriggerBlockCount Method

IFirewallUser..::..TriggerBlockCount Method

Manually trigger a violation related count increase in the users profile

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long TriggerBlockCount()

Return Value

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


TriggerGeoBlockCount Method

IFirewallUser..::..TriggerGeoBlockCount Method

Manually trigger a geography related-block count increase in the users profile

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int TriggerGeoBlockCount()

Return Value

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


TriggerModelInvalidCount Method

IFirewallUser..::..TriggerModelInvalidCount Method

Manually triggers the model invalid count.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int TriggerModelInvalidCount()

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


TriggerUserAgentSwitchCount Method

IFirewallUser..::..TriggerUserAgentSwitchCount Method

Manually trigger the fact that the consumer is trying to switch to a different user agent hoping that we provide access to a resource

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int TriggerUserAgentSwitchCount()

Return Value

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


IFirewallUser Properties

The IFirewallUser type exposes the following members.

Properties

 | Name | Description
Public property | AgentSwitchCount | an proximate count of how often the user switched the user agent
Public property | AssumedBlockedTill | Gets the assumed UTC date until when we assumed the user will be blocked.
Public property | CIDR | The IP address of the user in CIDR format (Classless Inter-Domain Routing)
Public property | Device | the users device data
Public property | GeoBlockCount | an proximate count of how often the user was triggered access blocking based on his geography
Public property | Id | the integer ID for the user
Public property | IPAddress | Gets the IP address.
Public property | IsSpoofing | Indicates that the user is faking to be a search engine, or other known service etc Finds-out if the user is using a fake user-agent
Public property | JavaEnabled | Indicate if the user has responded to JavaScript when using the User Discovery protection
Public property | KeyboardCount | A increment of how many page requests send of those the keyboard was used
Public property | KnownViolations | Gets the known violations for this user.
Public property | LastBlock | Gets the last time the user was blocked.
Public property | LastInteraction | Last time the user had interactivity recorder by the firewall
Public property | LastViolation | Gets the UTC date when last violation occurred.
Public property | Location | Get the location of the user if the location has been determined
Public property | ModelBlockCount | How often a user submitted a bad model that got rejected using the ModelFilterAttribute annotation protection
Public property | MouseCount | A increment of how many page requests send of those the mouse was used
Public property | NavigatesToLinkNotOnSitemapCount | Provides a count of how often a user did not access a link found on the users site map. implies firewall site-map is configured
Public property | Referrer | The first page we know the user to have used to access our site, this can be a search engine, link in a post etc.
Public property | Screen | Access the users screen device as we have last seen it
Public property | SessionId | firewall user session id regardless if ISession is supported by the application
Public property | TouchCount | A increment of how many page requests send of those a touch screen was used
Public property | UserType | Gets or sets the type of the user.
Public property | ViolationsBlockCount | an proximate count of how often the triggered a firewall rule we know he was blocked
Public property | ViolationsCount | an proximate count of how often the triggered a firewall rule we know he violated
Public property | Visits | How often the user has visited the application
Public property | VisitsWithSuspiciousHeaders | how often we have seen the user access the site where the request headers do not match that what we expect the device to provide.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


AgentSwitchCount Property

IFirewallUser..::..AgentSwitchCount Property

an proximate count of how often the user switched the user agent

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int AgentSwitchCount { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


AssumedBlockedTill Property

IFirewallUser..::..AssumedBlockedTill Property

Gets the assumed UTC date until when we assumed the user will be blocked.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> AssumedBlockedTill { get; set; }

Field Value

The assumed blocked till.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IFirewallUser..::..CIDR Property

The IP address of the user in CIDR format (Classless Inter-Domain Routing)

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Device Property

IFirewallUser..::..Device Property

the users device data

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IDeviceSignature Device { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


GeoBlockCount Property

IFirewallUser..::..GeoBlockCount Property

an proximate count of how often the user was triggered access blocking based on his geography

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int GeoBlockCount { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Id Property

IFirewallUser..::..Id Property

the integer ID for the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long Id { get; set; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


IPAddress Property

IFirewallUser..::..IPAddress Property

Gets the IP address.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string IPAddress { get; }

Field Value

The IP address.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


IsSpoofing Property

IFirewallUser..::..IsSpoofing Property

Indicates that the user is faking to be a search engine, or other known service etc
Finds-out if the user is using a fake user-agent

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsSpoofing { get; }

Return Value

True if impersonating

Examples

The bellow sample makes use of the IsSpofing property to alter the duration of blocking for the firewall blocking rules.
C#
private void FireWall_OnGuardAction(object sender, GuardActionEventArgs e)
{
   if (e.Page.User.AsFireWallUser().IsSpoofing)
   {
       foreach (var item in e.Page.Incidents())
       {
           item.Expires = DateTime.UtcNow.AddDays(300);
       }
    }
}

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


JavaEnabled Property

IFirewallUser..::..JavaEnabled Property

Indicate if the user has responded to JavaScript when using the User Discovery protection

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool JavaEnabled { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


KeyboardCount Property

IFirewallUser..::..KeyboardCount Property

A increment of how many page requests send of those the keyboard was used

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int KeyboardCount { get; }

Remarks

Use value in relation to Visits property where visits during the requests will lead as you first visit before feedback is given, also you can have multiple input events recorded per page increasing the count. After some time you will get a stable ratio when bad or when good depending on your web application as API endpoints never record user input events

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


KnownViolations Property

IFirewallUser..::..KnownViolations Property

Gets the known violations for this user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons KnownViolations { get; }

Field Value

The known violations.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


LastBlock Property

IFirewallUser..::..LastBlock Property

Gets the last time the user was blocked.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastBlock { get; }

Field Value

The last block.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


LastInteraction Property

IFirewallUser..::..LastInteraction Property

Last time the user had interactivity recorder by the firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastInteraction { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


LastViolation Property

IFirewallUser..::..LastViolation Property

Gets the UTC date when last violation occurred.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastViolation { get; }

Field Value

The date of the last violation.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Location Property

IFirewallUser..::..Location Property

Get the location of the user if the location has been determined

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoLocation> Location { get; }

Remarks

You need to use a Geography plug-in for this to work. Look for NuGet Packages staring with the name "Walter.Web.FireWall.Geo" and select one.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


ModelBlockCount Property

IFirewallUser..::..ModelBlockCount Property

How often a user submitted a bad model that got rejected using the ModelFilterAttribute annotation protection

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int ModelBlockCount { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


MouseCount Property

IFirewallUser..::..MouseCount Property

A increment of how many page requests send of those the mouse was used

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int MouseCount { get; }

Remarks

Use value in relation to Visits property where visits during the requests will lead as you first visit before feedback is given, also you can have multiple input events recorded per page increasing the count. After some time you will get a stable ratio when bad or when good depending on your web application as API endpoints never record user input events

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


NavigatesToLinkNotOnSitemapCount Property

IFirewallUser..::..NavigatesToLinkNotOnSitemapCount Property

Provides a count of how often a user did not access a link found on the users site map. implies firewall site-map is configured

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int NavigatesToLinkNotOnSitemapCount { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Referrer Property

IFirewallUser..::..Referrer Property

The first page we know the user to have used to access our site, this can be a search engine, link in a post etc.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> Referrer { get; }

Remarks

If the first page the user entered in the URL is the web application then this url is used

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Screen Property

IFirewallUser..::..Screen Property

Access the users screen device as we have last seen it

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserScreen Screen { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


SessionId Property

IFirewallUser..::..SessionId Property

firewall user session id regardless if ISession is supported by the application

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallSession SessionId { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


TouchCount Property

IFirewallUser..::..TouchCount Property

A increment of how many page requests send of those a touch screen was used

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int TouchCount { get; }

Remarks

Use value in relation to Visits property where visits during the requests will lead as you first visit before feedback is given, also you can have multiple input events recorded per page increasing the count. After some time you will get a stable ratio when bad or when good depending on your web application as API endpoints never record user input events

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


UserType Property

IFirewallUser..::..UserType Property

Gets or sets the type of the user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes UserType { get; set; }

Field Value

The type of the user.

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


ViolationsBlockCount Property

IFirewallUser..::..ViolationsBlockCount Property

an proximate count of how often the triggered a firewall rule we know he was blocked

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long ViolationsBlockCount { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


ViolationsCount Property

IFirewallUser..::..ViolationsCount Property

an proximate count of how often the triggered a firewall rule we know he violated

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long ViolationsCount { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


Visits Property

IFirewallUser..::..Visits Property

How often the user has visited the application

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Visits { get; }

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


VisitsWithSuspiciousHeaders Property

IFirewallUser..::..VisitsWithSuspiciousHeaders Property

how often we have seen the user access the site where the request headers do not match that what we expect the device to provide.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int VisitsWithSuspiciousHeaders { get; }

Remarks

Wrong device capabilities, headers, and screen size in relation to the user-agent is a good indication you are being spoofed or accessed by a bot

See Also

IFirewallUser Interface
Walter.Web.FireWall.Models Namespace


IFireWallUserProxy Interface

debugger proxy value

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallUserProxy

See Also

IFireWallUserProxy Members
Walter.Web.FireWall.Models Namespace


IFireWallUserProxy Members

The IFireWallUserProxy type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | The IP address of the user in CIDR format (Classless Inter-Domain Routing)
Public property | IPAddress | Gets the IP address.
Public property | LastInteraction | Last time the user had interactivity recorder by the firewall
Public property | Location | Get the location of the user if the location has been determined
Public property | Screen | Access the users screen device as we have last seen it
Public property | UserType | Gets or sets the type of the user.
Public property | Visits | How often the user has visited the application

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


IFireWallUserProxy Properties

The IFireWallUserProxy type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | The IP address of the user in CIDR format (Classless Inter-Domain Routing)
Public property | IPAddress | Gets the IP address.
Public property | LastInteraction | Last time the user had interactivity recorder by the firewall
Public property | Location | Get the location of the user if the location has been determined
Public property | Screen | Access the users screen device as we have last seen it
Public property | UserType | Gets or sets the type of the user.
Public property | Visits | How often the user has visited the application

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IFireWallUserProxy..::..CIDR Property

The IP address of the user in CIDR format (Classless Inter-Domain Routing)

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


IPAddress Property

IFireWallUserProxy..::..IPAddress Property

Gets the IP address.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string IPAddress { get; }

Field Value

The IP address.

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


LastInteraction Property

IFireWallUserProxy..::..LastInteraction Property

Last time the user had interactivity recorder by the firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastInteraction { get; }

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


Location Property

IFireWallUserProxy..::..Location Property

Get the location of the user if the location has been determined

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoLocation> Location { get; }

Remarks

You need to use a Geography plug-in for this to work. Look for NuGet Packages staring with the name "Walter.Web.FireWall.Geo" and select one.

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


Screen Property

IFireWallUserProxy..::..Screen Property

Access the users screen device as we have last seen it

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserScreen Screen { get; }

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


UserType Property

IFireWallUserProxy..::..UserType Property

Gets or sets the type of the user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes UserType { get; set; }

Field Value

The type of the user.

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


Visits Property

IFireWallUserProxy..::..Visits Property

How often the user has visited the application

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Visits { get; }

See Also

IFireWallUserProxy Interface
Walter.Web.FireWall.Models Namespace


IFireWallViolations Interface

Firewall violation record

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallViolations

See Also

IFireWallViolations Members
Walter.Web.FireWall.Models Namespace


IFireWallViolations Members

The IFireWallViolations type exposes the following members.

Properties

 | Name | Description
Public property | Active | Gets or sets a value indicating whether this IFireWallViolations indecent is active.
Public property | CIDR | Gets or sets the CIDR (number representation of a ip address).
Public property | Description | Gets or sets the description for the violation.
Public property | DnsName | Gets or sets the name of the DNS of the ISP.
Public property | FireWallUser | Gets or sets the fire wall user id.
Public property | GroupName | Gets or sets the name of the group / category of the blocking.
Public property | ID | Gets the identifier assigned to the violation.
Public property | InterceptLocation | Gets or sets the intercept location.
Public property | IPAddress | Gets or sets the ip address.
Public property | Location | Gets or sets the country of origin.
Public property | Name | Gets or sets the name of a violation.
Public property | PageRequestId | Gets or sets the page request identifier as assigned by the firewall.
Public property | PageTraceId | Gets or sets the page request trace as assigned by the framework.
Public property | Proxy | Gets or sets the proxy if the IP was from a proxy (if proxy provider enabled).
Public property | Reason | Gets or sets the reason why the entry was blocked.
Public property | RedirectedTo | Gets or sets the URL the user was redirected to.
Public property | TriggerDate | Gets or sets the date triggered.
Public property | Url | Gets or sets the URL being blocked.
Public property | UserType | the type of user that triggered the violation

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


IFireWallViolations Properties

The IFireWallViolations type exposes the following members.

Properties

 | Name | Description
Public property | Active | Gets or sets a value indicating whether this IFireWallViolations indecent is active.
Public property | CIDR | Gets or sets the CIDR (number representation of a ip address).
Public property | Description | Gets or sets the description for the violation.
Public property | DnsName | Gets or sets the name of the DNS of the ISP.
Public property | FireWallUser | Gets or sets the fire wall user id.
Public property | GroupName | Gets or sets the name of the group / category of the blocking.
Public property | ID | Gets the identifier assigned to the violation.
Public property | InterceptLocation | Gets or sets the intercept location.
Public property | IPAddress | Gets or sets the ip address.
Public property | Location | Gets or sets the country of origin.
Public property | Name | Gets or sets the name of a violation.
Public property | PageRequestId | Gets or sets the page request identifier as assigned by the firewall.
Public property | PageTraceId | Gets or sets the page request trace as assigned by the framework.
Public property | Proxy | Gets or sets the proxy if the IP was from a proxy (if proxy provider enabled).
Public property | Reason | Gets or sets the reason why the entry was blocked.
Public property | RedirectedTo | Gets or sets the URL the user was redirected to.
Public property | TriggerDate | Gets or sets the date triggered.
Public property | Url | Gets or sets the URL being blocked.
Public property | UserType | the type of user that triggered the violation

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Active Property

IFireWallViolations..::..Active Property

Gets or sets a value indicating whether this IFireWallViolations indecent is active.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool Active { get; set; }

Field Value

true if active; otherwise, false.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IFireWallViolations..::..CIDR Property

Gets or sets the CIDR (number representation of a ip address).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

Field Value

The CIDR.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Description Property

IFireWallViolations..::..Description Property

Gets or sets the description for the violation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Description { get; set; }

Field Value

The description.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


DnsName Property

IFireWallViolations..::..DnsName Property

Gets or sets the name of the DNS of the ISP.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string DnsName { get; }

Field Value

The name of the DNS.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


FireWallUser Property

IFireWallViolations..::..FireWallUser Property

Gets or sets the fire wall user id.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long FireWallUser { get; }

Field Value

The fire wall user.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


GroupName Property

IFireWallViolations..::..GroupName Property

Gets or sets the name of the group / category of the blocking.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallContexts GroupName { get; set; }

Field Value

The name of the group.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


ID Property

IFireWallViolations..::..ID Property

Gets the identifier assigned to the violation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Guid ID { get; }

Field Value

The identifier.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


InterceptLocation Property

IFireWallViolations..::..InterceptLocation Property

Gets or sets the intercept location.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
InterceptLocations InterceptLocation { get; set; }

Field Value

The intercept location.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


IPAddress Property

IFireWallViolations..::..IPAddress Property

Gets or sets the ip address.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IPAddress { get; }

Field Value

The ip address.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Location Property

IFireWallViolations..::..Location Property

Gets or sets the country of origin.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation Location { get; set; }

Field Value

The location.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Name Property

IFireWallViolations..::..Name Property

Gets or sets the name of a violation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Name { get; set; }

Field Value

The name.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


PageRequestId Property

IFireWallViolations..::..PageRequestId Property

Gets or sets the page request identifier as assigned by the firewall.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageRequestId { get; }

Field Value

The page request identifier.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


PageTraceId Property

IFireWallViolations..::..PageTraceId Property

Gets or sets the page request trace as assigned by the framework.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string PageTraceId { get; }

Field Value

The page request trace.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Proxy Property

IFireWallViolations..::..Proxy Property

Gets or sets the proxy if the IP was from a proxy (if proxy provider enabled).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoLocation> Proxy { get; set; }

Field Value

The proxy.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Reason Property

IFireWallViolations..::..Reason Property

Gets or sets the reason why the entry was blocked.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


RedirectedTo Property

IFireWallViolations..::..RedirectedTo Property

Gets or sets the URL the user was redirected to.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> RedirectedTo { get; set; }

Field Value

The redirected to.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


TriggerDate Property

IFireWallViolations..::..TriggerDate Property

Gets or sets the date triggered.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime TriggerDate { get; set; }

Field Value

The date.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


Url Property

IFireWallViolations..::..Url Property

Gets or sets the URL being blocked.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> Url { get; }

Field Value

The URL.

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


UserType Property

IFireWallViolations..::..UserType Property

the type of user that triggered the violation

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes UserType { get; }

See Also

IFireWallViolations Interface
Walter.Web.FireWall.Models Namespace


IIncident Interface

Interface IIncident

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IIncident

See Also

IIncident Members
Walter.Web.FireWall.Models Namespace


IIncident Members

The IIncident type exposes the following members.

Methods

 | Name | Description
Public method | EndpointRule | The endpoint protection at the time of the incident
Public method | SameRule | Sames the rule.

Properties

 | Name | Description
Public property | CIDR | the CIDR of the IP address (Classless Inter-Domain Routing)
Public property | Context | Gets or sets the context.
Public property | Description | A optional custom provided description of the incident
Public property | Expires | The UTC date the violation will expire
Public property | FWSession | Gets the firewall session.
Public property | GuardAction | Gets the guard action on the incident.
Public property | GuardResponse | Gets the guard response.
Public property | IndecentId | Gets the indecent identifier.
Public property | InterceptLocation | Gets or sets the intercept location for the incident.
Public property | IPAddress | The IP address of the user that caused the incident
Public property | LastTriggered | Gets or sets the last UTC triggered date.
Public property | LatLong | The geographical map location to use for the incident, will contain either the country capital or the city
Public property | Location | The location known at the time the incident was raised
Public property | MachineName | Gets the name of the machine that recorded the incident.
Public property | Method | The method used when requesting the resource
Public property | NavigationHistory | The navigation of the user at the time of generating the incident
Public property | PageGroupId | Gets the page group identifier as assigned by the firewall.
Public property | PageRequestTrace | Gets the page group identifier as assigned by the framework.
Public property | Path | The path portion of the URL's that this user triggered this incident on
Public property | PayloadInfo | Gets the payload information if a offensive response.
Public property | Reason | Gets or sets the reason.
Public property | Reported | Gets or sets the reported date (UTC).
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | Status | firewall Workflow status
Public property | Triggered | Gets or sets the count of how ofter the user triggered the violation before expired.
Public property | UnblockReported | The date that unblocking was reported
Public property | User | Gets or sets the user.
Public property | UserIncidentNr | the how many'eth incident is it that this user created
Public property | WasRedirected | Indicated that the incident caused a redirect
Public property | WhoIsRangeId | The ISP range ID

Events

 | Name | Description
Public event | OnInterceptLocationChanged | Triggered when the intercept location was changed

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


IIncident Methods

The IIncident type exposes the following members.

Methods

 | Name | Description
Public method | EndpointRule | The endpoint protection at the time of the incident
Public method | SameRule | Sames the rule.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


EndpointRule Method

IIncident..::..EndpointRule Method

The endpoint protection at the time of the incident

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DiscoveredRout EndpointRule()

Return Value

The Configured endpoint

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


SameRule Method

IIncident..::..SameRule Method

Sames the rule.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool SameRule(
    IIncident other
)

Parameters

other
Type: Walter.Web.FireWall.Models..::..IIncident
The other.

Return Value

true if XXXX, false otherwise.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


IIncident Properties

The IIncident type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | the CIDR of the IP address (Classless Inter-Domain Routing)
Public property | Context | Gets or sets the context.
Public property | Description | A optional custom provided description of the incident
Public property | Expires | The UTC date the violation will expire
Public property | FWSession | Gets the firewall session.
Public property | GuardAction | Gets the guard action on the incident.
Public property | GuardResponse | Gets the guard response.
Public property | IndecentId | Gets the indecent identifier.
Public property | InterceptLocation | Gets or sets the intercept location for the incident.
Public property | IPAddress | The IP address of the user that caused the incident
Public property | LastTriggered | Gets or sets the last UTC triggered date.
Public property | LatLong | The geographical map location to use for the incident, will contain either the country capital or the city
Public property | Location | The location known at the time the incident was raised
Public property | MachineName | Gets the name of the machine that recorded the incident.
Public property | Method | The method used when requesting the resource
Public property | NavigationHistory | The navigation of the user at the time of generating the incident
Public property | PageGroupId | Gets the page group identifier as assigned by the firewall.
Public property | PageRequestTrace | Gets the page group identifier as assigned by the framework.
Public property | Path | The path portion of the URL's that this user triggered this incident on
Public property | PayloadInfo | Gets the payload information if a offensive response.
Public property | Reason | Gets or sets the reason.
Public property | Reported | Gets or sets the reported date (UTC).
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | Status | firewall Workflow status
Public property | Triggered | Gets or sets the count of how ofter the user triggered the violation before expired.
Public property | UnblockReported | The date that unblocking was reported
Public property | User | Gets or sets the user.
Public property | UserIncidentNr | the how many'eth incident is it that this user created
Public property | WasRedirected | Indicated that the incident caused a redirect
Public property | WhoIsRangeId | The ISP range ID

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IIncident..::..CIDR Property

the CIDR of the IP address (Classless Inter-Domain Routing)

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Context Property

IIncident..::..Context Property

Gets or sets the context.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallContexts Context { get; set; }

Field Value

The context.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Description Property

IIncident..::..Description Property

A optional custom provided description of the incident

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Description { get; set; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Expires Property

IIncident..::..Expires Property

The UTC date the violation will expire

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime Expires { get; set; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


FWSession Property

IIncident..::..FWSession Property

Gets the firewall session.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
decimal FWSession { get; }

Field Value

The session.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


GuardAction Property

IIncident..::..GuardAction Property

Gets the guard action on the incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GuardAction GuardAction { get; }

Field Value

The guard action.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


GuardResponse Property

IIncident..::..GuardResponse Property

Gets the guard response.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GuardResponse GuardResponse { get; }

Field Value

The guard response.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


IndecentId Property

IIncident..::..IndecentId Property

Gets the indecent identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Guid IndecentId { get; }

Field Value

The indecent identifier.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


InterceptLocation Property

IIncident..::..InterceptLocation Property

Gets or sets the intercept location for the incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
InterceptLocations InterceptLocation { get; set; }

Field Value

The intercept location.

Remarks

The intercept location may change based on the configured plugins

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


IPAddress Property

IIncident..::..IPAddress Property

The IP address of the user that caused the incident

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IPAddress { get; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


LastTriggered Property

IIncident..::..LastTriggered Property

Gets or sets the last UTC triggered date.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastTriggered { get; set; }

Field Value

The last triggered.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


LatLong Property

IIncident..::..LatLong Property

The geographical map location to use for the incident, will contain either the country capital or the city

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SimpleLatLong LatLong { get; }

Remarks

Need to use A LatLong Nuget package like Walter.Web.FireWall.Geo.MaxMind for this to resolve to city level

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Location Property

IIncident..::..Location Property

The location known at the time the incident was raised

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<GeoLocation> Location { get; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


MachineName Property

IIncident..::..MachineName Property

Gets the name of the machine that recorded the incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string MachineName { get; }

Field Value

The name of the machine.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Method Property

IIncident..::..Method Property

The method used when requesting the resource

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ProtocolMethod Method { get; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


NavigationHistory Property

IIncident..::..NavigationHistory Property

The navigation of the user at the time of generating the incident

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<BreadCrumb> NavigationHistory { get; }

Remarks

The bread crumbs shows how the user traversed through the web application during the application session

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


PageGroupId Property

IIncident..::..PageGroupId Property

Gets the page group identifier as assigned by the firewall.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageGroupId { get; }

Field Value

The page group identifier.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


PageRequestTrace Property

IIncident..::..PageRequestTrace Property

Gets the page group identifier as assigned by the framework.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string PageRequestTrace { get; }

Field Value

The page group identifier.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Path Property

IIncident..::..Path Property

The path portion of the URL's that this user triggered this incident on

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri Path { get; }

Return Value

IList<Uri>.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


PayloadInfo Property

IIncident..::..PayloadInfo Property

Gets the payload information if a offensive response.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> PayloadInfo { get; }

Field Value

The payload information.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Reason Property

IIncident..::..Reason Property

Gets or sets the reason.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Reported Property

IIncident..::..Reported Property

Gets or sets the reported date (UTC).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime Reported { get; }

Field Value

The reported.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


SessionId Property

IIncident..::..SessionId Property

Gets the session identifier that the active when the incident was reported.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string SessionId { get; }

Field Value

The session identifier.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Status Property

IIncident..::..Status Property

firewall Workflow status

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Status { get; set; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


Triggered Property

IIncident..::..Triggered Property

Gets or sets the count of how ofter the user triggered the violation before expired.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Triggered { get; set; }

Field Value

The triggered.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


UnblockReported Property

IIncident..::..UnblockReported Property

The date that unblocking was reported

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> UnblockReported { get; set; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


User Property

IIncident..::..User Property

Gets or sets the user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallUser User { get; set; }

Field Value

The user.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


UserIncidentNr Property

IIncident..::..UserIncidentNr Property

the how many'eth incident is it that this user created

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long UserIncidentNr { get; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


WasRedirected Property

IIncident..::..WasRedirected Property

Indicated that the incident caused a redirect

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool WasRedirected { get; }

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


WhoIsRangeId Property

IIncident..::..WhoIsRangeId Property

The ISP range ID

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long WhoIsRangeId { get; set; }

Field Value

The ISP WHOIS range identifier.

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


IIncident Events

The IIncident type exposes the following members.

Events

 | Name | Description
Public event | OnInterceptLocationChanged | Triggered when the intercept location was changed

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


OnInterceptLocationChanged Event

IIncident..::..OnInterceptLocationChanged Event

Triggered when the intercept location was changed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
event Nullable<EventHandler<EventArgs>> OnInterceptLocationChanged

Remarks

Make sure to release the event if subscribed to ensure garbage collection

See Also

IIncident Interface
Walter.Web.FireWall.Models Namespace


IIncidentAction Interface

AN INcedent action

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IIncidentAction

See Also

IIncidentAction Members
Walter.Web.FireWall.Models Namespace


IIncidentAction Members

The IIncidentAction type exposes the following members.

Properties

 | Name | Description
Public property | Active | Indicates that blocking is active
Public property | GroupName | Group name of the blocking
Public property | Reason | Reason of the blocking
Public property | StatusCode | Gets the HTTP status code.

See Also

IIncidentAction Interface
Walter.Web.FireWall.Models Namespace


IIncidentAction Properties

The IIncidentAction type exposes the following members.

Properties

 | Name | Description
Public property | Active | Indicates that blocking is active
Public property | GroupName | Group name of the blocking
Public property | Reason | Reason of the blocking
Public property | StatusCode | Gets the HTTP status code.

See Also

IIncidentAction Interface
Walter.Web.FireWall.Models Namespace


Active Property

IIncidentAction..::..Active Property

Indicates that blocking is active

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool Active { get; set; }

See Also

IIncidentAction Interface
Walter.Web.FireWall.Models Namespace


GroupName Property

IIncidentAction..::..GroupName Property

Group name of the blocking

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallContexts GroupName { get; }

See Also

IIncidentAction Interface
Walter.Web.FireWall.Models Namespace


Reason Property

IIncidentAction..::..Reason Property

Reason of the blocking

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Reason { get; }

See Also

IIncidentAction Interface
Walter.Web.FireWall.Models Namespace


StatusCode Property

IIncidentAction..::..StatusCode Property

Gets the HTTP status code.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int StatusCode { get; }

Field Value

The status code.

See Also

IIncidentAction Interface
Walter.Web.FireWall.Models Namespace


IpAddressSubscriptionEntry Structure

IP address subscription entry

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public struct IpAddressSubscriptionEntry

See Also

IpAddressSubscriptionEntry Members
Walter.Web.FireWall.Models Namespace


IpAddressSubscriptionEntry Members

The IpAddressSubscriptionEntry type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(IpAddressSubscriptionEntry) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | string representation of IP subscription entry

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the CIDR (Classless Inter-Domain Routing).
Public property | IPAddressRange | Gets or sets the ip address range.
Public property | Location | Gets or sets the location.
Public property | SearchEngine | Search engine flag
Public property | UserType | Gets or sets the type of the user.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


IpAddressSubscriptionEntry Methods

The IpAddressSubscriptionEntry type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(IpAddressSubscriptionEntry) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | string representation of IP subscription entry

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


Equals Method

IpAddressSubscriptionEntry..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(IpAddressSubscriptionEntry) | Indicates whether the current object is equal to another object of the same type.

See Also

IpAddressSubscriptionEntry Structure
IpAddressSubscriptionEntry Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

IpAddressSubscriptionEntry..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

IpAddressSubscriptionEntry Structure
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (IpAddressSubscriptionEntry)

IpAddressSubscriptionEntry..::..Equals Method (IpAddressSubscriptionEntry)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    IpAddressSubscriptionEntry other
)

Parameters

other
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

IpAddressSubscriptionEntry Structure
Equals Overload
Walter.Web.FireWall.Models Namespace


GetHashCode Method

IpAddressSubscriptionEntry..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


ToString Method

IpAddressSubscriptionEntry..::..ToString Method

string representation of IP subscription entry

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


IpAddressSubscriptionEntry Operators

The IpAddressSubscriptionEntry type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


Equality Operator

IpAddressSubscriptionEntry..::..Equality Operator

Implements the == operator.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator ==(
    IpAddressSubscriptionEntry left,
    IpAddressSubscriptionEntry right
)

Parameters

left
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry
The left.
right
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry
The right.

Return Value

The result of the operator.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


Inequality Operator

IpAddressSubscriptionEntry..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator !=(
    IpAddressSubscriptionEntry left,
    IpAddressSubscriptionEntry right
)

Parameters

left
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry
The left.
right
Type: Walter.Web.FireWall.Models..::..IpAddressSubscriptionEntry
The right.

Return Value

The result of the operator.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


IpAddressSubscriptionEntry Properties

The IpAddressSubscriptionEntry type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets or sets the CIDR (Classless Inter-Domain Routing).
Public property | IPAddressRange | Gets or sets the ip address range.
Public property | Location | Gets or sets the location.
Public property | SearchEngine | Search engine flag
Public property | UserType | Gets or sets the type of the user.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


CIDR Property

IpAddressSubscriptionEntry..::..CIDR Property

Gets or sets the CIDR (Classless Inter-Domain Routing).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; set; }

Field Value

The CIDR.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


IPAddressRange Property

IpAddressSubscriptionEntry..::..IPAddressRange Property

Gets or sets the ip address range.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string IPAddressRange { get; set; }

Field Value

The ip address range.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


Location Property

IpAddressSubscriptionEntry..::..Location Property

Gets or sets the location.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Location Location { get; set; }

Field Value

The location.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


SearchEngine Property

IpAddressSubscriptionEntry..::..SearchEngine Property

Search engine flag

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SearchEngine SearchEngine { get; set; }

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


UserType Property

IpAddressSubscriptionEntry..::..UserType Property

Gets or sets the type of the user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; set; }

Field Value

The type of the user.

See Also

IpAddressSubscriptionEntry Structure
Walter.Web.FireWall.Models Namespace


IPhishyVisitStats Interface

Requested URL that are not discovered by the firewall and are Phishy by nature

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IPhishyVisitStats

Remarks

If you manually alter the firewall discovery then you might generate Phishy requests as well as requests that are not in your application and will generate a 404 request by the web server

See Also

IPhishyVisitStats Members
Walter.Web.FireWall.Models Namespace


IPhishyVisitStats Members

The IPhishyVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets the address in CIDR format (Classless Inter-Domain Routing).
Public property | DiscoveredUserType | The user type as assumed by the firewall when the user got discovered
Public property | GuardAction | Guard action if was rejected by firewall
Public property | IPAddress | The IP address used to access the service
Public property | IsSpoofing | Indicates we knew the user was spoofing when the page was served
Public property | LatLong | Simple LatLong from the request
Public property | Location | The geo location
Public property | Method | The protocol method that was used in the request
Public property | PageGroupId | The page group id that this request belongs to
Public property | PageRequestId | The page id
Public property | RederectedUrl | The url if the request was redirected
Public property | Referer | The url that was used to get here
Public property | RequestDate | The date the page was requested, date is in UTC date format
Public property | RequestedUrl | The URL used to access the web application
Public property | SessionId | The firewall session id for the user
Public property | StatusCode | The HTTP status code as set by the firewall
Public property | UserId | the Firewall user id
Public property | UserType | the type of user as known of type of serving the request

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


IPhishyVisitStats Properties

The IPhishyVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets the address in CIDR format (Classless Inter-Domain Routing).
Public property | DiscoveredUserType | The user type as assumed by the firewall when the user got discovered
Public property | GuardAction | Guard action if was rejected by firewall
Public property | IPAddress | The IP address used to access the service
Public property | IsSpoofing | Indicates we knew the user was spoofing when the page was served
Public property | LatLong | Simple LatLong from the request
Public property | Location | The geo location
Public property | Method | The protocol method that was used in the request
Public property | PageGroupId | The page group id that this request belongs to
Public property | PageRequestId | The page id
Public property | RederectedUrl | The url if the request was redirected
Public property | Referer | The url that was used to get here
Public property | RequestDate | The date the page was requested, date is in UTC date format
Public property | RequestedUrl | The URL used to access the web application
Public property | SessionId | The firewall session id for the user
Public property | StatusCode | The HTTP status code as set by the firewall
Public property | UserId | the Firewall user id
Public property | UserType | the type of user as known of type of serving the request

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IPhishyVisitStats..::..CIDR Property

Gets the address in CIDR format (Classless Inter-Domain Routing).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


DiscoveredUserType Property

IPhishyVisitStats..::..DiscoveredUserType Property

The user type as assumed by the firewall when the user got discovered

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<UserTypes> DiscoveredUserType { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


GuardAction Property

IPhishyVisitStats..::..GuardAction Property

Guard action if was rejected by firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GuardAction GuardAction { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


IPAddress Property

IPhishyVisitStats..::..IPAddress Property

The IP address used to access the service

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IPAddress { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


IsSpoofing Property

IPhishyVisitStats..::..IsSpoofing Property

Indicates we knew the user was spoofing when the page was served

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsSpoofing { get; set; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


LatLong Property

IPhishyVisitStats..::..LatLong Property

Simple LatLong from the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SimpleLatLong LatLong { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


Location Property

IPhishyVisitStats..::..Location Property

The geo location

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GeoLocation Location { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


Method Property

IPhishyVisitStats..::..Method Property

The protocol method that was used in the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ProtocolMethod Method { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


PageGroupId Property

IPhishyVisitStats..::..PageGroupId Property

The page group id that this request belongs to

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageGroupId { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


PageRequestId Property

IPhishyVisitStats..::..PageRequestId Property

The page id

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long PageRequestId { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


RederectedUrl Property

IPhishyVisitStats..::..RederectedUrl Property

The url if the request was redirected

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> RederectedUrl { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


Referer Property

IPhishyVisitStats..::..Referer Property

The url that was used to get here

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<Uri> Referer { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


RequestDate Property

IPhishyVisitStats..::..RequestDate Property

The date the page was requested, date is in UTC date format

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime RequestDate { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


RequestedUrl Property

IPhishyVisitStats..::..RequestedUrl Property

The URL used to access the web application

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri RequestedUrl { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


SessionId Property

IPhishyVisitStats..::..SessionId Property

The firewall session id for the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string SessionId { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


StatusCode Property

IPhishyVisitStats..::..StatusCode Property

The HTTP status code as set by the firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HttpStatusCode StatusCode { get; set; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


UserId Property

IPhishyVisitStats..::..UserId Property

the Firewall user id

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long UserId { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


UserType Property

IPhishyVisitStats..::..UserType Property

the type of user as known of type of serving the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes UserType { get; }

See Also

IPhishyVisitStats Interface
Walter.Web.FireWall.Models Namespace


ISimpleISP Interface

Interface ISimpleISP

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISimpleISP

See Also

ISimpleISP Members
Walter.Web.FireWall.Models Namespace


ISimpleISP Members

The ISimpleISP type exposes the following members.

Properties

 | Name | Description
Public property | Abuse | Gets or sets the abuse.
Public property | AdminMail | Gets or sets the admin mail.
Public property | AdminName | Gets or sets the name of the admin.
Public property | AdminPhone | Gets or sets the admin phone.
Public property | CIDR_From | Gets or sets the cidr from.
Public property | CIDR_Till | Gets or sets the cidr till.
Public property | Country | Gets or sets the country.
Public property | ICAN_URL | Gets or sets the ican URL.
Public property | Incidents | Gets or sets the incidents.
Public property | IncidentsInTimeSpan | Gets the incidents in time span.
Public property | IP_From | Gets or sets the ip from.
Public property | IP_Till | Gets or sets the ip till.
Public property | IPAdresses | Gets the ip adresses.
Public property | LastIncident | Gets or sets the last incident.
Public property | LastSeen | Gets or sets the last seen.
Public property | Organization | Gets or sets the organization.
Public property | OrganizationAddress | Gets or sets the organization address.
Public property | RangeOrganization | Gets or sets the range organization.
Public property | RangeOrganizationAddress | Gets or sets the range organization address.
Public property | TrustLevel | Gets or sets the trust level.
Public property | UsersWithBlockStatus | Gets or sets the users with block status.
Public property | UsersWithIncidents | Gets or sets the users with incidents.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


ISimpleISP Properties

The ISimpleISP type exposes the following members.

Properties

 | Name | Description
Public property | Abuse | Gets or sets the abuse.
Public property | AdminMail | Gets or sets the admin mail.
Public property | AdminName | Gets or sets the name of the admin.
Public property | AdminPhone | Gets or sets the admin phone.
Public property | CIDR_From | Gets or sets the cidr from.
Public property | CIDR_Till | Gets or sets the cidr till.
Public property | Country | Gets or sets the country.
Public property | ICAN_URL | Gets or sets the ican URL.
Public property | Incidents | Gets or sets the incidents.
Public property | IncidentsInTimeSpan | Gets the incidents in time span.
Public property | IP_From | Gets or sets the ip from.
Public property | IP_Till | Gets or sets the ip till.
Public property | IPAdresses | Gets the ip adresses.
Public property | LastIncident | Gets or sets the last incident.
Public property | LastSeen | Gets or sets the last seen.
Public property | Organization | Gets or sets the organization.
Public property | OrganizationAddress | Gets or sets the organization address.
Public property | RangeOrganization | Gets or sets the range organization.
Public property | RangeOrganizationAddress | Gets or sets the range organization address.
Public property | TrustLevel | Gets or sets the trust level.
Public property | UsersWithBlockStatus | Gets or sets the users with block status.
Public property | UsersWithIncidents | Gets or sets the users with incidents.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


Abuse Property

ISimpleISP..::..Abuse Property

Gets or sets the abuse.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> Abuse { get; set; }

Field Value

The abuse.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


AdminMail Property

ISimpleISP..::..AdminMail Property

Gets or sets the admin mail.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string AdminMail { get; set; }

Field Value

The admin mail.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


AdminName Property

ISimpleISP..::..AdminName Property

Gets or sets the name of the admin.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string AdminName { get; set; }

Field Value

The name of the admin.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


AdminPhone Property

ISimpleISP..::..AdminPhone Property

Gets or sets the admin phone.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string AdminPhone { get; set; }

Field Value

The admin phone.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


CIDR_From Property

ISimpleISP..::..CIDR_From Property

Gets or sets the cidr from.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR_From { get; set; }

Field Value

The cidr from.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


CIDR_Till Property

ISimpleISP..::..CIDR_Till Property

Gets or sets the cidr till.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR_Till { get; set; }

Field Value

The cidr till.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


Country Property

ISimpleISP..::..Country Property

Gets or sets the country.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Country { get; set; }

Field Value

The country.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


ICAN_URL Property

ISimpleISP..::..ICAN_URL Property

Gets or sets the ican URL.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> ICAN_URL { get; set; }

Field Value

The ican URL.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


Incidents Property

ISimpleISP..::..Incidents Property

Gets or sets the incidents.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Incidents { get; set; }

Field Value

The incidents.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


IncidentsInTimeSpan Property

ISimpleISP..::..IncidentsInTimeSpan Property

Gets the incidents in time span.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int IncidentsInTimeSpan { get; }

Field Value

The incidents in time span.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


IP_From Property

ISimpleISP..::..IP_From Property

Gets or sets the ip from.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string IP_From { get; set; }

Field Value

The ip from.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


IP_Till Property

ISimpleISP..::..IP_Till Property

Gets or sets the ip till.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string IP_Till { get; set; }

Field Value

The ip till.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


IPAdresses Property

ISimpleISP..::..IPAdresses Property

Gets the ip adresses.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int IPAdresses { get; }

Field Value

The ip adresses.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


LastIncident Property

ISimpleISP..::..LastIncident Property

Gets or sets the last incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<DateTime> LastIncident { get; set; }

Field Value

The last incident.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


LastSeen Property

ISimpleISP..::..LastSeen Property

Gets or sets the last seen.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastSeen { get; set; }

Field Value

The last seen.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


Organization Property

ISimpleISP..::..Organization Property

Gets or sets the organization.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Organization { get; set; }

Field Value

The organization.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


OrganizationAddress Property

ISimpleISP..::..OrganizationAddress Property

Gets or sets the organization address.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string OrganizationAddress { get; set; }

Field Value

The organization address.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


RangeOrganization Property

ISimpleISP..::..RangeOrganization Property

Gets or sets the range organization.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string RangeOrganization { get; set; }

Field Value

The range organization.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


RangeOrganizationAddress Property

ISimpleISP..::..RangeOrganizationAddress Property

Gets or sets the range organization address.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string RangeOrganizationAddress { get; set; }

Field Value

The range organization address.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


TrustLevel Property

ISimpleISP..::..TrustLevel Property

Gets or sets the trust level.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISPTrustLevels TrustLevel { get; set; }

Field Value

The trust level.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


UsersWithBlockStatus Property

ISimpleISP..::..UsersWithBlockStatus Property

Gets or sets the users with block status.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int UsersWithBlockStatus { get; set; }

Field Value

The users with block status.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


UsersWithIncidents Property

ISimpleISP..::..UsersWithIncidents Property

Gets or sets the users with incidents.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int UsersWithIncidents { get; set; }

Field Value

The users with incidents.

See Also

ISimpleISP Interface
Walter.Web.FireWall.Models Namespace


IVisitStats Interface

Interface IVisitStats

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IVisitStats

See Also

IVisitStats Members
Walter.Web.FireWall.Models Namespace


IVisitStats Members

The IVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | AbsolutePath | Gets the absolute path.
Public property | CIDR | Gets the cidr.
Public property | EndedUtc | Gets or sets the date the visitation knowingly ended (UTC).
Public property | GuardAction | The guard action executed
Public property | Incident | Gets a value indicating whether this IVisitStats is incident.
Public property | Interactive | Gets a value indicating whether this IVisitStats is interactive.
Public property | IPAddress | The IP address used to access the system
Public property | IsWhiteListed | Gets a value indicating whether this request was white listed.
Public property | Method | Gets the method.
Public property | SessionId | Gets the session identifier.
Public property | Started | Gets the data the request processing started.
Public property | StatusCode | Gets the status code.
Public property | Triggered | If set it will contain the triggered blocking reasons on the request
Public property | Url | Gets the URL.
Public property | UserId | Gets the user identifier.
Public property | UserType | Gets the type of the user.
Public property | Visit | Gets the date the page was send to the requester and depending on the latency the approximate time the result was accessible by the client.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


IVisitStats Properties

The IVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | AbsolutePath | Gets the absolute path.
Public property | CIDR | Gets the cidr.
Public property | EndedUtc | Gets or sets the date the visitation knowingly ended (UTC).
Public property | GuardAction | The guard action executed
Public property | Incident | Gets a value indicating whether this IVisitStats is incident.
Public property | Interactive | Gets a value indicating whether this IVisitStats is interactive.
Public property | IPAddress | The IP address used to access the system
Public property | IsWhiteListed | Gets a value indicating whether this request was white listed.
Public property | Method | Gets the method.
Public property | SessionId | Gets the session identifier.
Public property | Started | Gets the data the request processing started.
Public property | StatusCode | Gets the status code.
Public property | Triggered | If set it will contain the triggered blocking reasons on the request
Public property | Url | Gets the URL.
Public property | UserId | Gets the user identifier.
Public property | UserType | Gets the type of the user.
Public property | Visit | Gets the date the page was send to the requester and depending on the latency the approximate time the result was accessible by the client.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


AbsolutePath Property

IVisitStats..::..AbsolutePath Property

Gets the absolute path.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string AbsolutePath { get; }

Field Value

The absolute path.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


CIDR Property

IVisitStats..::..CIDR Property

Gets the cidr.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long CIDR { get; }

Field Value

The cidr.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


EndedUtc Property

IVisitStats..::..EndedUtc Property

Gets or sets the date the visitation knowingly ended (UTC).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime EndedUtc { get; set; }

Field Value

The ended UTC.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


GuardAction Property

IVisitStats..::..GuardAction Property

The guard action executed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
GuardAction GuardAction { get; }

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Incident Property

IVisitStats..::..Incident Property

Gets a value indicating whether this IVisitStats is incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool Incident { get; }

Field Value

true if incident; otherwise, false.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Interactive Property

IVisitStats..::..Interactive Property

Gets a value indicating whether this IVisitStats is interactive.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<bool> Interactive { get; }

Field Value

null if [interactive] contains no value, true if [interactive]; otherwise, false.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


IPAddress Property

IVisitStats..::..IPAddress Property

The IP address used to access the system

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IPAddress IPAddress { get; }

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


IsWhiteListed Property

IVisitStats..::..IsWhiteListed Property

Gets a value indicating whether this request was white listed.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsWhiteListed { get; }

Field Value

true if this instance is white listed; otherwise, false.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Method Property

IVisitStats..::..Method Property

Gets the method.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ProtocolMethod Method { get; }

Field Value

The method.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


SessionId Property

IVisitStats..::..SessionId Property

Gets the session identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string SessionId { get; }

Field Value

The session identifier.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Started Property

IVisitStats..::..Started Property

Gets the data the request processing started.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime Started { get; }

Field Value

The started.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


StatusCode Property

IVisitStats..::..StatusCode Property

Gets the status code.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
HttpStatusCode StatusCode { get; }

Field Value

The status code.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Triggered Property

IVisitStats..::..Triggered Property

If set it will contain the triggered blocking reasons on the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FirewallBlockReasons Triggered { get; }

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Url Property

IVisitStats..::..Url Property

Gets the URL.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri Url { get; }

Field Value

The URL.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


UserId Property

IVisitStats..::..UserId Property

Gets the user identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
long UserId { get; }

Field Value

The user identifier.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


UserType Property

IVisitStats..::..UserType Property

Gets the type of the user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes UserType { get; }

Field Value

The type of the user.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace


Visit Property

IVisitStats..::..Visit Property

Gets the date the page was send to the requester and depending on the latency the approximate time the result was accessible by the client.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime Visit { get; }

Field Value

The visit.

Remarks

Deduct the Visit - Started to calculate the time it took for the request to be generated, rendered and send

If requests to the same endpoint happen are started before the last Visit for the same user then there is an indicated for malicious intend.

See Also

IVisitStats Interface
Walter.Web.FireWall.Models Namespace
IVisitStats..::..Started


KpiEntry Class

Class KpiEntry contains the processing time consumed by a given page for a given step.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class KpiEntry

Remarks

Page processing time is highly effected by outside operations like logging and backing storage for object state

See Also

KpiEntry Members
Walter.Web.FireWall.Models Namespace


KpiEntry Members

The KpiEntry type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(KpiEntry>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | A string representation of KPI entry

Properties

 | Name | Description
Public property | Avg | Gets the average processor time.
Public property | Count | Gets the count.
Public property | LastMeasurementUtc | Gets the last measurement UTC.
Public property | Max | Determines the maximum processor time.
Public property | Min | Determines the minimum processor time.
Public property | Name | Gets the name of the instrumented activity.
Public property | StartMeasurementUtc | The date the measurement started
Public property | TotalAcumulatedProcessorTime | Gets the total accumulated processor time.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


KpiEntry Methods

The KpiEntry type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(KpiEntry>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | A string representation of KPI entry

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


Equals Method

KpiEntry..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(KpiEntry>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

KpiEntry Class
KpiEntry Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

KpiEntry..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

KpiEntry Class
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(KpiEntry))

KpiEntry..::..Equals Method (Nullable<(Of <(<'KpiEntry>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<KpiEntry> other
)

Parameters

other
Type: Nullable <(Of <(<' KpiEntry >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

KpiEntry Class
Equals Overload
Walter.Web.FireWall.Models Namespace


GetHashCode Method

KpiEntry..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


ToString Method

KpiEntry..::..ToString Method

A string representation of KPI entry

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

text

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


KpiEntry Properties

The KpiEntry type exposes the following members.

Properties

 | Name | Description
Public property | Avg | Gets the average processor time.
Public property | Count | Gets the count.
Public property | LastMeasurementUtc | Gets the last measurement UTC.
Public property | Max | Determines the maximum processor time.
Public property | Min | Determines the minimum processor time.
Public property | Name | Gets the name of the instrumented activity.
Public property | StartMeasurementUtc | The date the measurement started
Public property | TotalAcumulatedProcessorTime | Gets the total accumulated processor time.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


Avg Property

KpiEntry..::..Avg Property

Gets the average processor time.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Avg { get; }

Field Value

The average.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


Count Property

KpiEntry..::..Count Property

Gets the count.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long Count { get; }

Field Value

The count.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


LastMeasurementUtc Property

KpiEntry..::..LastMeasurementUtc Property

Gets the last measurement UTC.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastMeasurementUtc { get; }

Field Value

The last measurement UTC.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


Max Property

KpiEntry..::..Max Property

Determines the maximum processor time.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Max { get; }

Field Value

The maximum.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


Min Property

KpiEntry..::..Min Property

Determines the minimum processor time.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Min { get; }

Field Value

The minimum.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


Name Property

KpiEntry..::..Name Property

Gets the name of the instrumented activity.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Name { get; set; }

Field Value

The name.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


StartMeasurementUtc Property

KpiEntry..::..StartMeasurementUtc Property

The date the measurement started

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime StartMeasurementUtc { get; set; }

Field Value

The start measurement UTC.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


TotalAcumulatedProcessorTime Property

KpiEntry..::..TotalAcumulatedProcessorTime Property

Gets the total accumulated processor time.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan TotalAcumulatedProcessorTime { get; }

Field Value

The total accumulated processor time.

See Also

KpiEntry Class
Walter.Web.FireWall.Models Namespace


KpiPageEntry Class

Class KpiPageEntry is a entry to the page firewall key performance indicators.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class KpiPageEntry

See Also

KpiPageEntry Members
Walter.Web.FireWall.Models Namespace


KpiPageEntry Members

The KpiPageEntry type exposes the following members.

Constructors

 | Name | Description
Public method | KpiPageEntry(Uri, Uri, String) | json constructor

Methods

 | Name | Description
Public method | ToString | Represent the KPI page entry

Properties

 | Name | Description
Public property | Activity | Gets the activity.
Public property | CreatedUtc | Gets the created UTC.
Public property | ExecutedModules | Modules that have executed
Public property | FireWallOverhead | Gets the percentage of fire wall overhead on the request.
Public property | HttpStatusCode | Gets the HTTP status code.
Public property | ProcessedUtc | Gets the processed UTC.
Public property | RenderedUrl | Gets the rendered URL.
Public property | RequestedUrl | Gets the requested URL.
Public property | RequestFirewallProcessingTime | Gets the time it took for the firewall to processing request.
Public property | RequestRenderTime | Gets the request render time from the .net pipeline.
Public property | UserIp | the IP address of the user
Public property | UserType | The type of user.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


KpiPageEntry Constructor (Uri, Uri, String)

json constructor

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KpiPageEntry(
    Uri requestedUrl,
    Uri renderedUrl,
    string userIp
)

Parameters

requestedUrl
Type: Uri
renderedUrl
Type: Uri
userIp
Type: String

See Also

KpiPageEntry Class
#ctor Overload
Walter.Web.FireWall.Models Namespace


KpiPageEntry Methods

The KpiPageEntry type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Represent the KPI page entry

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


ToString Method

KpiPageEntry..::..ToString Method

Represent the KPI page entry

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

text

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


KpiPageEntry Properties

The KpiPageEntry type exposes the following members.

Properties

 | Name | Description
Public property | Activity | Gets the activity.
Public property | CreatedUtc | Gets the created UTC.
Public property | ExecutedModules | Modules that have executed
Public property | FireWallOverhead | Gets the percentage of fire wall overhead on the request.
Public property | HttpStatusCode | Gets the HTTP status code.
Public property | ProcessedUtc | Gets the processed UTC.
Public property | RenderedUrl | Gets the rendered URL.
Public property | RequestedUrl | Gets the requested URL.
Public property | RequestFirewallProcessingTime | Gets the time it took for the firewall to processing request.
Public property | RequestRenderTime | Gets the request render time from the .net pipeline.
Public property | UserIp | the IP address of the user
Public property | UserType | The type of user.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


Activity Property

KpiPageEntry..::..Activity Property

Gets the activity.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<ValueTuple<long, long, string>> Activity { get; }

Field Value

The activity.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


CreatedUtc Property

KpiPageEntry..::..CreatedUtc Property

Gets the created UTC.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime CreatedUtc { get; set; }

Field Value

The created UTC.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


ExecutedModules Property

KpiPageEntry..::..ExecutedModules Property

Modules that have executed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallModules ExecutedModules { get; set; }

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


FireWallOverhead Property

KpiPageEntry..::..FireWallOverhead Property

Gets the percentage of fire wall overhead on the request.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public double FireWallOverhead { get; set; }

Field Value

The fire wall overhead.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


HttpStatusCode Property

KpiPageEntry..::..HttpStatusCode Property

Gets the HTTP status code.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCode HttpStatusCode { get; set; }

Field Value

The HTTP status code.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


ProcessedUtc Property

KpiPageEntry..::..ProcessedUtc Property

Gets the processed UTC.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime ProcessedUtc { get; set; }

Field Value

The processed UTC.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


RenderedUrl Property

KpiPageEntry..::..RenderedUrl Property

Gets the rendered URL.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri RenderedUrl { get; set; }

Field Value

The rendered URL.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


RequestedUrl Property

KpiPageEntry..::..RequestedUrl Property

Gets the requested URL.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri RequestedUrl { get; set; }

Field Value

The requested URL.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


RequestFirewallProcessingTime Property

KpiPageEntry..::..RequestFirewallProcessingTime Property

Gets the time it took for the firewall to processing request.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan RequestFirewallProcessingTime { get; set; }

Field Value

processing time that was used by the firewall on the request.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


RequestRenderTime Property

KpiPageEntry..::..RequestRenderTime Property

Gets the request render time from the .net pipeline.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan RequestRenderTime { get; set; }

Field Value

The request render time.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


UserIp Property

KpiPageEntry..::..UserIp Property

the IP address of the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string UserIp { get; set; }

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


UserType Property

KpiPageEntry..::..UserType Property

The type of user.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; set; }

Field Value

The user.

See Also

KpiPageEntry Class
Walter.Web.FireWall.Models Namespace


NameCount Class

Class NameCount contains name and count pair data.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class NameCount

See Also

NameCount Members
Walter.Web.FireWall.Models Namespace


NameCount Members

The NameCount type exposes the following members.

Constructors

 | Name | Description
Public method | NameCount()()()() | creates a name count key pair
Public method | NameCount(String, Int32) | Initializes a new instance of the NameCount class.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | Name | Gets the name.

See Also

NameCount Class
Walter.Web.FireWall.Models Namespace


NameCount Constructor

Overload List

 | Name | Description
Public method | NameCount()()()() | creates a name count key pair
Public method | NameCount(String, Int32) | Initializes a new instance of the NameCount class.

See Also

NameCount Class
NameCount Members
Walter.Web.FireWall.Models Namespace


NameCount Constructor

creates a name count key pair

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public NameCount()

See Also

NameCount Class
NameCount Overload
Walter.Web.FireWall.Models Namespace


NameCount Constructor (String, Int32)

Initializes a new instance of the NameCount class.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public NameCount(
    string name,
    int count
)

Parameters

name
Type: String
The name.
count
Type: Int32
The count.

See Also

NameCount Class
NameCount Overload
Walter.Web.FireWall.Models Namespace


NameCount Properties

The NameCount type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets the count.
Public property | Name | Gets the name.

See Also

NameCount Class
Walter.Web.FireWall.Models Namespace


Count Property

NameCount..::..Count Property

Gets the count.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Count { get; set; }

Field Value

The count.

See Also

NameCount Class
Walter.Web.FireWall.Models Namespace


Name Property

NameCount..::..Name Property

Gets the name.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Name { get; set; }

Field Value

The name.

See Also

NameCount Class
Walter.Web.FireWall.Models Namespace


PhishyVisitStats Class

Requested URL that are not discovered by the firewall and are Phishy by nature

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class PhishyVisitStats : IPhishyVisitStats

Remarks

If you manually alter the firewall discovery then you might generate Phishy requests as well as requests that are not in your application and will generate a 404 request by the web server

See Also

PhishyVisitStats Members
Walter.Web.FireWall.Models Namespace


PhishyVisitStats Members

The PhishyVisitStats type exposes the following members.

Methods

 | Name | Description
Public method | ToString | get the Page requested

Properties

 | Name | Description
Public property | CIDR | Gets the address in CIDR format (Classless Inter-Domain Routing).
Public property | DiscoveredUserType | The user type as assumed by the firewall when the user got discovered
Public property | GuardAction | Guard action if was rejected by firewall
Public property | ID | Database ID if the object was saved to database
Public property | IPAddress | The IP address used to access the service
Public property | ISP | Gets or sets the ISP.
Public property | IsSpoofing | Indicates we knew the user was spoofing when the page was served
Public property | LatLong | Simple LatLong from the request
Public property | Location | The geo location
Public property | Method | The protocol method that was used in the request
Public property | PageGroupId | The page group id that this request belongs to
Public property | PageRequestId | The page id
Public property | RederectedUrl | The url if the request was redirected
Public property | Referer | The url that was used to get here
Public property | RequestDate | The date the page was requested, date is in UTC date format
Public property | RequestedUrl | The URL used to access the web application
Public property | SessionId | The firewall session id for the user
Public property | StatusCode | The HTTP status code as set by the firewall
Public property | UserId | the Firewall user id
Public property | UserType | the type of user as known of type of serving the request
Public property | WhoisIpRange | Gets or sets the ISP IP range segment.

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


PhishyVisitStats Methods

The PhishyVisitStats type exposes the following members.

Methods

 | Name | Description
Public method | ToString | get the Page requested

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


ToString Method

PhishyVisitStats..::..ToString Method

get the Page requested

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


PhishyVisitStats Properties

The PhishyVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | CIDR | Gets the address in CIDR format (Classless Inter-Domain Routing).
Public property | DiscoveredUserType | The user type as assumed by the firewall when the user got discovered
Public property | GuardAction | Guard action if was rejected by firewall
Public property | ID | Database ID if the object was saved to database
Public property | IPAddress | The IP address used to access the service
Public property | ISP | Gets or sets the ISP.
Public property | IsSpoofing | Indicates we knew the user was spoofing when the page was served
Public property | LatLong | Simple LatLong from the request
Public property | Location | The geo location
Public property | Method | The protocol method that was used in the request
Public property | PageGroupId | The page group id that this request belongs to
Public property | PageRequestId | The page id
Public property | RederectedUrl | The url if the request was redirected
Public property | Referer | The url that was used to get here
Public property | RequestDate | The date the page was requested, date is in UTC date format
Public property | RequestedUrl | The URL used to access the web application
Public property | SessionId | The firewall session id for the user
Public property | StatusCode | The HTTP status code as set by the firewall
Public property | UserId | the Firewall user id
Public property | UserType | the type of user as known of type of serving the request
Public property | WhoisIpRange | Gets or sets the ISP IP range segment.

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


CIDR Property

PhishyVisitStats..::..CIDR Property

Gets the address in CIDR format (Classless Inter-Domain Routing).

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


DiscoveredUserType Property

PhishyVisitStats..::..DiscoveredUserType Property

The user type as assumed by the firewall when the user got discovered

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<UserTypes> DiscoveredUserType { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


GuardAction Property

PhishyVisitStats..::..GuardAction Property

Guard action if was rejected by firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GuardAction GuardAction { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


ID Property

PhishyVisitStats..::..ID Property

Database ID if the object was saved to database

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<long> ID { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


IPAddress Property

PhishyVisitStats..::..IPAddress Property

The IP address used to access the service

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress IPAddress { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


ISP Property

PhishyVisitStats..::..ISP Property

Gets or sets the ISP.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long ISP { get; set; }

Field Value

The ISP.

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


IsSpoofing Property

PhishyVisitStats..::..IsSpoofing Property

Indicates we knew the user was spoofing when the page was served

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsSpoofing { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


LatLong Property

PhishyVisitStats..::..LatLong Property

Simple LatLong from the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SimpleLatLong LatLong { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


Location Property

PhishyVisitStats..::..Location Property

The geo location

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation Location { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


Method Property

PhishyVisitStats..::..Method Property

The protocol method that was used in the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ProtocolMethod Method { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


PageGroupId Property

PhishyVisitStats..::..PageGroupId Property

The page group id that this request belongs to

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageGroupId { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


PageRequestId Property

PhishyVisitStats..::..PageRequestId Property

The page id

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


RederectedUrl Property

PhishyVisitStats..::..RederectedUrl Property

The url if the request was redirected

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> RederectedUrl { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


Referer Property

PhishyVisitStats..::..Referer Property

The url that was used to get here

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> Referer { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


RequestDate Property

PhishyVisitStats..::..RequestDate Property

The date the page was requested, date is in UTC date format

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime RequestDate { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


RequestedUrl Property

PhishyVisitStats..::..RequestedUrl Property

The URL used to access the web application

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri RequestedUrl { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


SessionId Property

PhishyVisitStats..::..SessionId Property

The firewall session id for the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


StatusCode Property

PhishyVisitStats..::..StatusCode Property

The HTTP status code as set by the firewall

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCode StatusCode { get; set; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


UserId Property

PhishyVisitStats..::..UserId Property

the Firewall user id

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UserId { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


UserType Property

PhishyVisitStats..::..UserType Property

the type of user as known of type of serving the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; }

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


WhoisIpRange Property

PhishyVisitStats..::..WhoisIpRange Property

Gets or sets the ISP IP range segment.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long WhoisIpRange { get; set; }

Field Value

The IP range.

See Also

PhishyVisitStats Class
Walter.Web.FireWall.Models Namespace


ResetRuleRuleType Enumeration

Classification type of rule associated with a reset event

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ResetRuleRuleType

Members

Member name | Description
GeneralReset | general reset of all incidents
LocationReset | The geographical location reset
IPAddressReset | A single IPAddress reset
UserTypeReset | The user type reset
UserReset | The user reset
IncidentDateReset | The incident date reset
IPAddressRangeReset | A IPAddress range reset

See Also

Walter.Web.FireWall.Models Namespace


SiteMapPageLinks Class

The site-map link contains a link that was discovered using the User detection framework

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class SiteMapPageLinks : ISiteMapPageLinks

See Also

SiteMapPageLinks Members
Walter.Web.FireWall.Models Namespace


SiteMapPageLinks Members

The SiteMapPageLinks type exposes the following members.

Properties

 | Name | Description
Public property | Link | The URL for the link
Public property | Text | The text on the link
Public property | Type | the type of link discovered

See Also

SiteMapPageLinks Class
Walter.Web.FireWall.Models Namespace


SiteMapPageLinks Properties

The SiteMapPageLinks type exposes the following members.

Properties

 | Name | Description
Public property | Link | The URL for the link
Public property | Text | The text on the link
Public property | Type | the type of link discovered

See Also

SiteMapPageLinks Class
Walter.Web.FireWall.Models Namespace


Link Property

SiteMapPageLinks..::..Link Property

The URL for the link

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Link { get; set; }

See Also

SiteMapPageLinks Class
Walter.Web.FireWall.Models Namespace


Text Property

SiteMapPageLinks..::..Text Property

The text on the link

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Text { get; set; }

Remarks

This can be inner HTML including other HTML tags

See Also

SiteMapPageLinks Class
Walter.Web.FireWall.Models Namespace


Type Property

SiteMapPageLinks..::..Type Property

the type of link discovered

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SiteMapPageLinkType Type { get; set; }

See Also

SiteMapPageLinks Class
Walter.Web.FireWall.Models Namespace


SiteMapSearchResult Enumeration

Site-map search result contains information on the navigation by the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum SiteMapSearchResult

Members

Member name | Description
NotEvaluated | the value has not been evaluated
NotConfugured | No option matched as the firewall as it is not configured for it, this may happen if URL's are set using JavaScript
NotFound | The URL is not discovered on the rendered pages for the user on the site
Exists | Url exists in the site-map rendered on the current page
NotAccessibleFromReferrer | the url was Not accessible from the page the user came from (referrer), he should not know about it
AccessibleFromReferrer | The url makes sense as it is accessible from a previous page that the user came from (referrer),

Remarks

For this to work you will need to have memory chasing enabled as well as sufficient memory for the site to work. Larger sites can use the Walter.Web.FireWall.SiteMap NuGet extension. You enable it using .UseSeitemap(connectionString) in you services configuration.

See Also

Walter.Web.FireWall.Models Namespace


UserAgentAudit Class

Class contain information for how often a user agent was found in a given context

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class UserAgentAudit

See Also

UserAgentAudit Members
Walter.Web.FireWall.Models Namespace
BreadCrumbCollection..::..UserAgentsUsed()()()()


UserAgentAudit Members

The UserAgentAudit type exposes the following members.

Properties

 | Name | Description
Public property | Agent | The agent used
Public property | Count | the frequency of how often a agent was used

See Also

UserAgentAudit Class
Walter.Web.FireWall.Models Namespace


UserAgentAudit Properties

The UserAgentAudit type exposes the following members.

Properties

 | Name | Description
Public property | Agent | The agent used
Public property | Count | the frequency of how often a agent was used

See Also

UserAgentAudit Class
Walter.Web.FireWall.Models Namespace


Agent Property

UserAgentAudit..::..Agent Property

The agent used

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IUAUserAgent Agent { get; }

See Also

UserAgentAudit Class
Walter.Web.FireWall.Models Namespace


Count Property

UserAgentAudit..::..Count Property

the frequency of how often a agent was used

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Count { get; set; }

See Also

UserAgentAudit Class
Walter.Web.FireWall.Models Namespace


UserScreen Structure

the structure UserScreen is populated when using the JavaScript implementation and the firewall renders page requests

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public struct UserScreen

See Also

UserScreen Members
Walter.Web.FireWall.Models Namespace
[IUserScreen]


UserScreen Members

The UserScreen type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(UserScreen) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

Properties

 | Name | Description
Public property | ColorDepth | Gets or sets the color depth.
Public property | Height | Gets or sets the height.
Public property | Orientation | Gets or sets the orientation.
Public property | OrientationChanged | Set to true if we discover orientation changes
Public property | PixelDepth | Gets or sets the pixel depth.
Public property | Pixels | Screen pixels
Public property | Scrollbars | Gets or sets a value indicating whether this UserScreen is scrollbars.
Public property | UseTouchScreen | the user screen supports touch
Public property | Width | Gets or sets the width.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


UserScreen Methods

The UserScreen type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(UserScreen) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Equals Method

UserScreen..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(UserScreen) | Indicates whether the current object is equal to another object of the same type.

See Also

UserScreen Structure
UserScreen Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

UserScreen..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

UserScreen Structure
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (UserScreen)

UserScreen..::..Equals Method (UserScreen)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    UserScreen other
)

Parameters

other
Type: Walter.Web.FireWall.Models..::..UserScreen
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

UserScreen Structure
Equals Overload
Walter.Web.FireWall.Models Namespace


GetHashCode Method

UserScreen..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


ToString Method

UserScreen..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


UserScreen Operators

The UserScreen type exposes the following members.

Operators

Name | Description
Equality | Implements the == operator.
Inequality | Implements the != operator.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Equality Operator

UserScreen..::..Equality Operator

Implements the == operator.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator ==(
    UserScreen left,
    UserScreen right
)

Parameters

left
Type: Walter.Web.FireWall.Models..::..UserScreen
The left.
right
Type: Walter.Web.FireWall.Models..::..UserScreen
The right.

Return Value

The result of the operator.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Inequality Operator

UserScreen..::..Inequality Operator

Implements the != operator.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static bool operator !=(
    UserScreen left,
    UserScreen right
)

Parameters

left
Type: Walter.Web.FireWall.Models..::..UserScreen
The left.
right
Type: Walter.Web.FireWall.Models..::..UserScreen
The right.

Return Value

The result of the operator.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


UserScreen Properties

The UserScreen type exposes the following members.

Properties

 | Name | Description
Public property | ColorDepth | Gets or sets the color depth.
Public property | Height | Gets or sets the height.
Public property | Orientation | Gets or sets the orientation.
Public property | OrientationChanged | Set to true if we discover orientation changes
Public property | PixelDepth | Gets or sets the pixel depth.
Public property | Pixels | Screen pixels
Public property | Scrollbars | Gets or sets a value indicating whether this UserScreen is scrollbars.
Public property | UseTouchScreen | the user screen supports touch
Public property | Width | Gets or sets the width.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


ColorDepth Property

UserScreen..::..ColorDepth Property

Gets or sets the color depth.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int ColorDepth { get; set; }

Field Value

The color depth.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Height Property

UserScreen..::..Height Property

Gets or sets the height.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Height { get; set; }

Field Value

The height.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Orientation Property

UserScreen..::..Orientation Property

Gets or sets the orientation.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ScreenOrientations Orientation { get; set; }

Field Value

The orientation.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


OrientationChanged Property

UserScreen..::..OrientationChanged Property

Set to true if we discover orientation changes

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool OrientationChanged { get; set; }

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


PixelDepth Property

UserScreen..::..PixelDepth Property

Gets or sets the pixel depth.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int PixelDepth { get; set; }

Field Value

The pixel depth.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Pixels Property

UserScreen..::..Pixels Property

Screen pixels

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Pixels { get; }

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Scrollbars Property

UserScreen..::..Scrollbars Property

Gets or sets a value indicating whether this UserScreen is scrollbars.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Scrollbars { get; set; }

Field Value

true if scrollbars; otherwise, false.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


UseTouchScreen Property

UserScreen..::..UseTouchScreen Property

the user screen supports touch

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UseTouchScreen { get; set; }

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


Width Property

UserScreen..::..Width Property

Gets or sets the width.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Width { get; set; }

Field Value

The width.

See Also

UserScreen Structure
Walter.Web.FireWall.Models Namespace


VisitStats Class

The structure VisitStats contains the visiting data for a given user on a given resource.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class VisitStats : IVisitStats

See Also

VisitStats Members
Walter.Web.FireWall.Models Namespace


VisitStats Members

The VisitStats type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DiscoveredRout>)>>), Nullable<(Of <<'(EndPointCompairs>)>>)) | tests if the visit stats belong to a given endpoint
Public method | Equals(Nullable<(Of <<'(VisitStats>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | AbsolutePath | Gets the absolute path of the URL used to retrieve the resource.
Public property | CIDR | Gets the CIDR = Classless Inter-Domain Routing for the IP address used on this page request.
Public property | Country | the country the visit came from
Public property | EndedUtc | Gets or sets the date time the page was no longer active with the users browser in UTC date.
Public property | Evaluations | evaluations on the endpoint
Public property | FireWallPageGroup | Page group ID in firewall session
Public property | FireWallSessionId | Firewall session id
Public property | GuardAction | The Guard action on the page
Public property | GuardResponse | Gets the guard response.
Public property | ID | Database ID for entries that have been saved previously
Public property | Incident | Gets or sets a value indicating whether this instance has incident.
Public property | Interactive | Gets a value indicating whether this user was is interactive, used his mouse tough etc.
Public property | IPAddress | The IP address used to access the system
Public property | IsWhiteListed | Gets or sets a value indicating whether this instance is white listed.
Public property | LatLong | The proximate location of the user sending the request
Public property | LinkType | Type of resource served
Public property | Method | The Protocol used to consume the resource
Public property | PageRequestGroupId | The group that this request belongs to
Public property | PageRequestId | Gets the page request identifier that was generated by the system for this page.
Public property | PayloadInfo | Gets the payload information if set by the users action.
Public property | Refferer | Location where the visiting request came from
Public property | SessionId | Gets the session identifier.
Public property | Started | Gets the UTC date the request was started and the page was generated.
Public property | StatusCode | The status core returned to the consumer
Public property | Triggered | Gets or sets the triggered activities.
Public property | TriggeredGuards | Guards that have been triggered on the request
Public property | Url | Gets the URL that was visited.
Public property | UserId | Gets the user identifier.
Public property | UserPageVisitNr | Page number served to the user
Public property | UserType | Gets the type of the user known at the time of the request.
Public property | Violated | The violation recorded on the request
Public property | Visit | Gets the date of the visit.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


VisitStats Methods

The VisitStats type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DiscoveredRout>)>>), Nullable<(Of <<'(EndPointCompairs>)>>)) | tests if the visit stats belong to a given endpoint
Public method | Equals(Nullable<(Of <<'(VisitStats>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Equals Method

VisitStats..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(DiscoveredRout>)>>), Nullable<(Of <<'(EndPointCompairs>)>>)) | tests if the visit stats belong to a given endpoint
Public method | Equals(Nullable<(Of <<'(VisitStats>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

VisitStats Class
VisitStats Members
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(Object))

VisitStats..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current instance.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

VisitStats Class
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(DiscoveredRout), Nullable(EndPointCompairs))

VisitStats..::..Equals Method (Nullable<(Of <(<'DiscoveredRout>)>)>, Nullable<(Of <(<'EndPointCompairs>)>)>)

tests if the visit stats belong to a given endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<DiscoveredRout> endpoint,
    Nullable<EndPointCompairs> compairs
)

Parameters

endpoint
Type: Nullable <(Of <(<' DiscoveredRout >)>)>
the endpoint to match on
compairs
Type: Nullable <(Of <(<' EndPointCompairs >)>)>
how to compare

Return Value

True if the same

See Also

VisitStats Class
Equals Overload
Walter.Web.FireWall.Models Namespace


Equals Method (Nullable(VisitStats))

VisitStats..::..Equals Method (Nullable<(Of <(<'VisitStats>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<VisitStats> other
)

Parameters

other
Type: Nullable <(Of <(<' VisitStats >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

VisitStats Class
Equals Overload
Walter.Web.FireWall.Models Namespace


GetHashCode Method

VisitStats..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


SetId Method

VisitStats..::..SetId Method

Sets the technical identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


SetValues Method

VisitStats..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


ToString Method

VisitStats..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


VisitStats Properties

The VisitStats type exposes the following members.

Properties

 | Name | Description
Public property | AbsolutePath | Gets the absolute path of the URL used to retrieve the resource.
Public property | CIDR | Gets the CIDR = Classless Inter-Domain Routing for the IP address used on this page request.
Public property | Country | the country the visit came from
Public property | EndedUtc | Gets or sets the date time the page was no longer active with the users browser in UTC date.
Public property | Evaluations | evaluations on the endpoint
Public property | FireWallPageGroup | Page group ID in firewall session
Public property | FireWallSessionId | Firewall session id
Public property | GuardAction | The Guard action on the page
Public property | GuardResponse | Gets the guard response.
Public property | ID | Database ID for entries that have been saved previously
Public property | Incident | Gets or sets a value indicating whether this instance has incident.
Public property | Interactive | Gets a value indicating whether this user was is interactive, used his mouse tough etc.
Public property | IPAddress | The IP address used to access the system
Public property | IsWhiteListed | Gets or sets a value indicating whether this instance is white listed.
Public property | LatLong | The proximate location of the user sending the request
Public property | LinkType | Type of resource served
Public property | Method | The Protocol used to consume the resource
Public property | PageRequestGroupId | The group that this request belongs to
Public property | PageRequestId | Gets the page request identifier that was generated by the system for this page.
Public property | PayloadInfo | Gets the payload information if set by the users action.
Public property | Refferer | Location where the visiting request came from
Public property | SessionId | Gets the session identifier.
Public property | Started | Gets the UTC date the request was started and the page was generated.
Public property | StatusCode | The status core returned to the consumer
Public property | Triggered | Gets or sets the triggered activities.
Public property | TriggeredGuards | Guards that have been triggered on the request
Public property | Url | Gets the URL that was visited.
Public property | UserId | Gets the user identifier.
Public property | UserPageVisitNr | Page number served to the user
Public property | UserType | Gets the type of the user known at the time of the request.
Public property | Violated | The violation recorded on the request
Public property | Visit | Gets the date of the visit.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


AbsolutePath Property

VisitStats..::..AbsolutePath Property

Gets the absolute path of the URL used to retrieve the resource.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string AbsolutePath { get; }

Field Value

The absolute path.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


CIDR Property

VisitStats..::..CIDR Property

Gets the CIDR = Classless Inter-Domain Routing for the IP address used on this page request.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; }

Field Value

The integer representation of the IP address.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Country Property

VisitStats..::..Country Property

the country the visit came from

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation Country { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


EndedUtc Property

VisitStats..::..EndedUtc Property

Gets or sets the date time the page was no longer active with the users browser in UTC date.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime EndedUtc { get; set; }

Field Value

The page ended in UTC.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Evaluations Property

VisitStats..::..Evaluations Property

evaluations on the endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<FirewallBlockReasonAuditEntry> Evaluations { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


FireWallPageGroup Property

VisitStats..::..FireWallPageGroup Property

Page group ID in firewall session

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal FireWallPageGroup { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


FireWallSessionId Property

VisitStats..::..FireWallSessionId Property

Firewall session id

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public decimal FireWallSessionId { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


GuardAction Property

VisitStats..::..GuardAction Property

The Guard action on the page

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GuardAction GuardAction { get; set; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


GuardResponse Property

VisitStats..::..GuardResponse Property

Gets the guard response.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GuardResponse GuardResponse { get; set; }

Field Value

The guard response.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


ID Property

VisitStats..::..ID Property

Database ID for entries that have been saved previously

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<long> ID { get; set; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Incident Property

VisitStats..::..Incident Property

Gets or sets a value indicating whether this instance has incident.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Incident { get; set; }

Field Value

null if [has incident] contains no value, true if [has incident]; otherwise, false.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Interactive Property

VisitStats..::..Interactive Property

Gets a value indicating whether this user was is interactive, used his mouse tough etc.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> Interactive { get; set; }

Field Value

true if interactive; otherwise, false.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


IPAddress Property

VisitStats..::..IPAddress Property

The IP address used to access the system

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress IPAddress { get; }

Field Value

The ip address.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace
VisitStatsAddress()()()()


IsWhiteListed Property

VisitStats..::..IsWhiteListed Property

Gets or sets a value indicating whether this instance is white listed.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsWhiteListed { get; set; }

Field Value

true if this instance is white listed; otherwise, false.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


LatLong Property

VisitStats..::..LatLong Property

The proximate location of the user sending the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public SimpleLatLong LatLong { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


LinkType Property

VisitStats..::..LinkType Property

Type of resource served

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LinkType LinkType { get; set; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Method Property

VisitStats..::..Method Property

The Protocol used to consume the resource

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ProtocolMethod Method { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


PageRequestGroupId Property

VisitStats..::..PageRequestGroupId Property

The group that this request belongs to

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestGroupId { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


PageRequestId Property

VisitStats..::..PageRequestId Property

Gets the page request identifier that was generated by the system for this page.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

Field Value

The page request identifier.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


PayloadInfo Property

VisitStats..::..PayloadInfo Property

Gets the payload information if set by the users action.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> PayloadInfo { get; set; }

Field Value

The payload information.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Refferer Property

VisitStats..::..Refferer Property

Location where the visiting request came from

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<Uri> Refferer { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


SessionId Property

VisitStats..::..SessionId Property

Gets the session identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; set; }

Field Value

The session identifier.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Started Property

VisitStats..::..Started Property

Gets the UTC date the request was started and the page was generated.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Started { get; }

Field Value

The started.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


StatusCode Property

VisitStats..::..StatusCode Property

The status core returned to the consumer

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCode StatusCode { get; set; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Triggered Property

VisitStats..::..Triggered Property

Gets or sets the triggered activities.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Triggered { get; set; }

Field Value

The triggered.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


TriggeredGuards Property

VisitStats..::..TriggeredGuards Property

Guards that have been triggered on the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuards TriggeredGuards { get; set; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Url Property

VisitStats..::..Url Property

Gets the URL that was visited.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri Url { get; }

Field Value

The URL.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


UserId Property

VisitStats..::..UserId Property

Gets the user identifier.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UserId { get; }

Field Value

The user identifier.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


UserPageVisitNr Property

VisitStats..::..UserPageVisitNr Property

Page number served to the user

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int UserPageVisitNr { get; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


UserType Property

VisitStats..::..UserType Property

Gets the type of the user known at the time of the request.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; set; }

Field Value

The type of the user.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Violated Property

VisitStats..::..Violated Property

The violation recorded on the request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions Violated { get; set; }

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Visit Property

VisitStats..::..Visit Property

Gets the date of the visit.

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Visit { get; }

Field Value

The visiting date.

See Also

VisitStats Class
Walter.Web.FireWall.Models Namespace


Walter.Web.FireWall.Properties Namespace

Classes

 | Class | Description
Public class | Resources | A strongly-typed resource class, for looking up localized strings, etc.


Resources Class

A strongly-typed resource class, for looking up localized strings, etc.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class Resources

See Also

Resources Members
Walter.Web.FireWall.Properties Namespace


Resources Members

The Resources type exposes the following members.

Properties

Name | Description
AppPasswordMissing | Looks up a localized string similar to You data is GDPR protected without a firewall application password, change this setting.
Culture | Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class.
LicenseYourProduct | Looks up a localized string similar to License, invalid, expired or missing please register your domain at www.asp-waf.com.
MM01 | Looks up a localized string similar to MaxMind configuration must be one of the following options GeoMethod.UseFile or useMethod == GeoMethod.UseApi.
PGPKey | Looks up a localized string similar to MjA0OCE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+djYvT29QUjFVU0luSUZ0TkNBbDE3aWltN2RZM2FEbkdRNUlIS0NJQ3dEdEJFcnFqeWVUbllmeldNeUc4YWFNL0Jza0l6cmN6SGs4cUdYSzBIbXNxK1hiRk44d09hZXFIRWN6S0JaRGRIaHhpaTlrVUxWQ0RJdTYxRFJvdXNuam02ZW9MaGs5Y1pRNjhvS2VqTGk0ZnBocW5YOElMRzhTUXNaS2Rnd2NISE52RGtHTC9CR0lwT0UrODhRNWViZUw0dGp2Z3FNRVEzdEYvTytLS1BRcEZWSnBkN0xYbU1SeTFNUXlFY0VheDhEY2VnQjczdkswdlYvdVhZYVV5UUlDSDMzOEljZDNkck52OTBvand2MkRhRWpQbUxxMUtnK1VLVndEdUVtMHEvd2hCMDNBS05mYmZBZEhGLzVJUEQ1N3RGVlNWMDVFaUo1NU9lWk10S04wRmFRPT08L01vZHVsdXM+PEV4 [rest of string was truncated]";.
ResourceManager | Returns the cached ResourceManager instance used by this class.
ShudownMail | Looks up a localized string similar to <html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><style type="text/css">ol{margin:0;padding:0}table td,table th{padding:0}.c7{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:381.8pt;border-top-color:#000000;border-bottom-style:solid}.c5{b [rest of string was truncated]";.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


Resources Properties

The Resources type exposes the following members.

Properties

Name | Description
AppPasswordMissing | Looks up a localized string similar to You data is GDPR protected without a firewall application password, change this setting.
Culture | Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class.
LicenseYourProduct | Looks up a localized string similar to License, invalid, expired or missing please register your domain at www.asp-waf.com.
MM01 | Looks up a localized string similar to MaxMind configuration must be one of the following options GeoMethod.UseFile or useMethod == GeoMethod.UseApi.
PGPKey | Looks up a localized string similar to MjA0OCE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+djYvT29QUjFVU0luSUZ0TkNBbDE3aWltN2RZM2FEbkdRNUlIS0NJQ3dEdEJFcnFqeWVUbllmeldNeUc4YWFNL0Jza0l6cmN6SGs4cUdYSzBIbXNxK1hiRk44d09hZXFIRWN6S0JaRGRIaHhpaTlrVUxWQ0RJdTYxRFJvdXNuam02ZW9MaGs5Y1pRNjhvS2VqTGk0ZnBocW5YOElMRzhTUXNaS2Rnd2NISE52RGtHTC9CR0lwT0UrODhRNWViZUw0dGp2Z3FNRVEzdEYvTytLS1BRcEZWSnBkN0xYbU1SeTFNUXlFY0VheDhEY2VnQjczdkswdlYvdVhZYVV5UUlDSDMzOEljZDNkck52OTBvand2MkRhRWpQbUxxMUtnK1VLVndEdUVtMHEvd2hCMDNBS05mYmZBZEhGLzVJUEQ1N3RGVlNWMDVFaUo1NU9lWk10S04wRmFRPT08L01vZHVsdXM+PEV4 [rest of string was truncated]";.
ResourceManager | Returns the cached ResourceManager instance used by this class.
ShudownMail | Looks up a localized string similar to <html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><style type="text/css">ol{margin:0;padding:0}table td,table th{padding:0}.c7{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:381.8pt;border-top-color:#000000;border-bottom-style:solid}.c5{b [rest of string was truncated]";.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


AppPasswordMissing Property

Resources..::..AppPasswordMissing Property

Looks up a localized string similar to You data is GDPR protected without a firewall application password, change this setting.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string AppPasswordMissing { get; }

Field Value

The application password missing.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


Culture Property

Resources..::..Culture Property

Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static CultureInfo Culture { get; set; }

Field Value

The culture.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


LicenseYourProduct Property

Resources..::..LicenseYourProduct Property

Looks up a localized string similar to License, invalid, expired or missing please register your domain at www.asp-waf.com.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string LicenseYourProduct { get; }

Field Value

The license your product.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


MM01 Property

Resources..::..MM01 Property

Looks up a localized string similar to MaxMind configuration must be one of the following options GeoMethod.UseFile or useMethod == GeoMethod.UseApi.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string MM01 { get; }

Field Value

The m M01.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


PGPKey Property

Resources..::..PGPKey Property

Looks up a localized string similar to MjA0OCE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+djYvT29QUjFVU0luSUZ0TkNBbDE3aWltN2RZM2FEbkdRNUlIS0NJQ3dEdEJFcnFqeWVUbllmeldNeUc4YWFNL0Jza0l6cmN6SGs4cUdYSzBIbXNxK1hiRk44d09hZXFIRWN6S0JaRGRIaHhpaTlrVUxWQ0RJdTYxRFJvdXNuam02ZW9MaGs5Y1pRNjhvS2VqTGk0ZnBocW5YOElMRzhTUXNaS2Rnd2NISE52RGtHTC9CR0lwT0UrODhRNWViZUw0dGp2Z3FNRVEzdEYvTytLS1BRcEZWSnBkN0xYbU1SeTFNUXlFY0VheDhEY2VnQjczdkswdlYvdVhZYVV5UUlDSDMzOEljZDNkck52OTBvand2MkRhRWpQbUxxMUtnK1VLVndEdUVtMHEvd2hCMDNBS05mYmZBZEhGLzVJUEQ1N3RGVlNWMDVFaUo1NU9lWk10S04wRmFRPT08L01vZHVsdXM+PEV4 [rest of string was truncated]";.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string PGPKey { get; }

Field Value

The PGP key.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


ResourceManager Property

Resources..::..ResourceManager Property

Returns the cached ResourceManager instance used by this class.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static ResourceManager ResourceManager { get; }

Field Value

The resource manager.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


ShudownMail Property

Resources..::..ShudownMail Property

Looks up a localized string similar to <html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><style type="text/css">ol{margin:0;padding:0}table td,table th{padding:0}.c7{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:381.8pt;border-top-color:#000000;border-bottom-style:solid}.c5{b [rest of string was truncated]";.

Namespace: Walter.Web.FireWall.Properties
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static string ShudownMail { get; }

Field Value

The shudown mail.

See Also

Resources Class
Walter.Web.FireWall.Properties Namespace


Walter.Web.FireWall.Reporting Namespace

Classes

 | Class | Description
Public class | EmailReportData | The class EmailReportData will be created based on the users role as assigned in the configuration
Public class | EmailReportData..::..ReportDetails | detail containing the violations reported to the user
Public class | FireWallReportingModel | indicates that the model can be used when rendering firewall reports in views
Public class | HealthReportingData | Class ReportingData contains the format of the data that will get populated
Public class | HealthReportingData..::..DiskChange | Class DisckChange contains the meta data on file change data.
Public class | HealthReportingData..::..Incident | Class Incident.
Public class | HealthReportingData..::..ReportDetails | The details's of the firewall health status
Public class | HealthReportingData..::..ToDo | Class ToDo contains to-do as well as exception related to-do items.
Public class | HealthReportingData..::..Visits | Visits recorded by the firewall. Implements the IVisitStats

Interfaces

 | Interface | Description
Public interface | IFireWallReportingModel | Interface IFireWallReportingModel indicates that the model can be used when rendering firewall reports in views

Enumerations

 | Enumeration | Description
Public enumeration | ReportFormat | ReportFormat used when generating firewall reports
Public enumeration | ReportTypes | The enumerable ReportTypes allows you to select the report data that will be rendered in the firewall reporting interface


EmailReportData Class

The class EmailReportData will be created based on the users role as assigned in the configuration

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class EmailReportData : FireWallReportingModel

Examples

Configuration of the email template for 3 mail addresses that will received the rendered razor view _EmailReport.cshtml with the populated data. The model in the page will be EmailReportData
C#
services.AddFireWall("your token", "your domain-key"
   , domainName: new Uri("https://www.YourDomain.dll", UriKind.Absolute), options =>
   {
   //Will create GDPR compliant tickets when the firewall framework has errors and
   //will email update notifications when fixes exist.
   options.JoinCustomerImprovementProgramWithEmail = "WebMaster@YourDomain.dll";
   options.Cypher.ApplicationPassword = "123456Seven";
   options.ApplicationName = "YourDomain sales";
   options.ApplicationTag = "WS3";
   //personalized view located in ~/Views/Shared
   options.Reporting.HealthReportView = "_healthReport";
   options.Reporting.EmailReportView = "_EmailReport";
   options.Rules.BlockRequest.BlockDuration.SlideExpiration = true;
   options.Rules.BlockRequest.BlockDuration.Expires = TimeSpan.FromSeconds(10);
   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);
   }).UseGeography(new System.IO.DirectoryInfo("D:\\MaxMind"))
   .UseDiskLogging(options => { options.Directory = @"D:\Firewall"; })
   .UserDatabase(Connections.FireWallState)
   .UseFireWallReportingDatabase(Connections.FireWall)
   .UseSMTPReportingDatabase(Connections.FireWallMail, options =>
   {
   options.Archive = TimeSpan.FromDays(180);
   options.Server = "mail.cosonto.com";
   options.UserName = "noreply@cosonto.com";
   options.Password = "cosonto$ki82#ksKKjsk";
   options.Port = 25;
   options.From = "noreply@YourDomain.dll";
   options.IgnoreServerCertificateErrors = true;
   options.DefaultEmail = "admin@YourDomain.dll";
   options.Archive = TimeSpan.FromDays(60);
   options.MailingList.AddRange(new[] {
   new EMailAddress("Security Admin","security@YourDomain.dll") {
   Frequency= TimeSpan.FromHours(1),
   Roles= EMailRoles.FireWallAdministrationViolations | EMailRoles.UnauthorizedPhysicalFilesViolation } ,
   new EMailAddress("Website Admin","WebMaster@YourDomain.dll"){
   Frequency= TimeSpan.FromHours(1),
   Roles= EMailRoles.ProductUpdates | EMailRoles.OwnAccountRelatedViolations } ,
   });
   });

Inheritance Hierarchy

Walter.Web.FireWall.Reporting..::..FireWallReportingModel
Walter.Web.FireWall.Reporting..::..EmailReportData

See Also

EmailReportData Members
Walter.Web.FireWall.Reporting Namespace


EmailReportData Members

The EmailReportData type exposes the following members.

Properties

 | Name | Description
Public property | Created | UTC date the report data was created (Inherited from FireWallReportingModel.)
Public property | Details | The detail that are to be reported to the user as determined by his email profile
Public property | Email | the mail address that the report is generated for

See Also

EmailReportData Class
Walter.Web.FireWall.Reporting Namespace


EmailReportData Properties

The EmailReportData type exposes the following members.

Properties

 | Name | Description
Public property | Created | UTC date the report data was created (Inherited from FireWallReportingModel.)
Public property | Details | The detail that are to be reported to the user as determined by his email profile
Public property | Email | the mail address that the report is generated for

See Also

EmailReportData Class
Walter.Web.FireWall.Reporting Namespace


Details Property

EmailReportData..::..Details Property

The detail that are to be reported to the user as determined by his email profile

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EmailReportData..::..ReportDetails Details { get; }

Field Value

The details.

See Also

EmailReportData Class
Walter.Web.FireWall.Reporting Namespace


Email Property

EmailReportData..::..Email Property

the mail address that the report is generated for

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EMailAddress Email { get; }

Field Value

The email.

See Also

EmailReportData Class
Walter.Web.FireWall.Reporting Namespace


EmailReportData.ReportDetails Class

EmailReportData..::..ReportDetails Class

detail containing the violations reported to the user

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ReportDetails

See Also

EmailReportData..::..ReportDetails Members
Walter.Web.FireWall.Reporting Namespace


EmailReportData.ReportDetails Members

EmailReportData..::..ReportDetails Members

The EmailReportData..::..ReportDetails type exposes the following members.

Properties

 | Name | Description
Public property | ContentSecurityPolicyViolations | Gets the content security policy violations.
Public property | FireWallViolations | Gets the fire wall violations.

See Also

EmailReportData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


EmailReportData.ReportDetails Properties

EmailReportData..::..ReportDetails Properties

The EmailReportData..::..ReportDetails type exposes the following members.

Properties

 | Name | Description
Public property | ContentSecurityPolicyViolations | Gets the content security policy violations.
Public property | FireWallViolations | Gets the fire wall violations.

See Also

EmailReportData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


ContentSecurityPolicyViolations Property

ReportDetails..::..ContentSecurityPolicyViolations Property

Gets the content security policy violations.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IContentSecurityPolicyViolation> ContentSecurityPolicyViolations { get; }

Field Value

The content security policy violations.

See Also

EmailReportData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


FireWallViolations Property

ReportDetails..::..FireWallViolations Property

Gets the fire wall violations.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<IFireWallViolations> FireWallViolations { get; }

Field Value

The fire wall violations.

See Also

EmailReportData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


FireWallReportingModel Class

indicates that the model can be used when rendering firewall reports in views

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class FireWallReportingModel : IFireWallReportingModel

See Also

FireWallReportingModel Members
Walter.Web.FireWall.Reporting Namespace


FireWallReportingModel Members

The FireWallReportingModel type exposes the following members.

Properties

 | Name | Description
Public property | Created | UTC date the report data was created

See Also

FireWallReportingModel Class
Walter.Web.FireWall.Reporting Namespace


FireWallReportingModel Properties

The FireWallReportingModel type exposes the following members.

Properties

 | Name | Description
Public property | Created | UTC date the report data was created

See Also

FireWallReportingModel Class
Walter.Web.FireWall.Reporting Namespace


Created Property

FireWallReportingModel..::..Created Property

UTC date the report data was created

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Created { get; }

See Also

FireWallReportingModel Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData Class

Class ReportingData contains the format of the data that will get populated

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class HealthReportingData : FireWallReportingModel

Examples

These samples demonstrates how to report data for use by external applications by serializing json data.
Call the HTML template when rendering the report
using Walter.Web.FireWall;
   using Walter.Web.FireWall.Reporting;
   [ApiController]
   [Route("api/[controller]")]
   [Authorize]
   public class HealthController : Controller
   {
   private readonly ILogger<HealthController> _logger;
   private readonly IFireWall _fireWall;
   public HealthController(ILogger<HealthController> logger, IFireWall fireWall)
   {
   _logger = logger;
   _fireWall = fireWall;
   }
   [HttpGet]
   public string Get()
   {
   _logger?.Lazy().LogDebug("Call firewall heath report. Heath status:\n {status}",   _fireWall.Report(ReportTypes.DEFAULT));
   Response.ContentType = "application/xml";
   return _fireWall.Report(ReportTypes.DEFAULT, ReportFormat.HTML);
   }
  }
Minimal configure the firewall to use the health report
services.AddFireWall("your token", "your domain-key"
   , domainName: new Uri("https://www.YourDomain.dll", UriKind.Absolute), options =>
   {
   options.Cypher.ApplicationPassword = "123456Seven";
   options.ApplicationName = "Cosonto sales";
   options.ApplicationTag = "WS3";
   //personalized view located in ~/Views/Shared
   options.Reporting.HealthReportView = "_healthReport";
   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);
  }).UseGeography(new System.IO.DirectoryInfo("D:\\MaxMind"));
Use NewtonSoft when serializing the report object in service configuration
services.AddControllersWithViews()
                     .AddNewtonsoftJson(options=>  options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore );

Inheritance Hierarchy

Walter.Web.FireWall.Reporting..::..FireWallReportingModel
Walter.Web.FireWall.Reporting..::..HealthReportingData

See Also

HealthReportingData Members
Walter.Web.FireWall.Reporting Namespace


HealthReportingData Members

The HealthReportingData type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] containing json value representing this instance.

Properties

 | Name | Description
Public property | ApplicationStartedUtc | Gets the time that the application has started in UTC.
Public property | Content | Contains information on the content that is reported.
Public property | Created | UTC date the report data was created (Inherited from FireWallReportingModel.)
Public property | Details | Gets the firewall status and health details as per requested parameter.
Public property | FireWallActive | Gets the duration that the firewall is active.
Public property | FireWallContactDetails | The contact details for the firewall instance
Public property | FireWallIsLicensed | Gets a value indicating whether this firewall instance is licensed.
Public property | FireWallLicenseExpires | Gets the date that the firewall license expires.
Public property | FireWallLicenseLevel | Gets the licensed features in the firewall.
Public property | FireWallLicenseStatus | Gets the license status.
Public property | FireWallLocation | Gets the location of where the firewall is hosted from.
Public property | Format | Gets the format that will be generated when ToString is used.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData Methods

The HealthReportingData type exposes the following members.

Methods

 | Name | Description
Public method | ToString | Returns a [System.String] containing json value representing this instance.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


ToString Method

HealthReportingData..::..ToString Method

Returns a [System.String] containing json value representing this instance.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData Properties

The HealthReportingData type exposes the following members.

Properties

 | Name | Description
Public property | ApplicationStartedUtc | Gets the time that the application has started in UTC.
Public property | Content | Contains information on the content that is reported.
Public property | Created | UTC date the report data was created (Inherited from FireWallReportingModel.)
Public property | Details | Gets the firewall status and health details as per requested parameter.
Public property | FireWallActive | Gets the duration that the firewall is active.
Public property | FireWallContactDetails | The contact details for the firewall instance
Public property | FireWallIsLicensed | Gets a value indicating whether this firewall instance is licensed.
Public property | FireWallLicenseExpires | Gets the date that the firewall license expires.
Public property | FireWallLicenseLevel | Gets the licensed features in the firewall.
Public property | FireWallLicenseStatus | Gets the license status.
Public property | FireWallLocation | Gets the location of where the firewall is hosted from.
Public property | Format | Gets the format that will be generated when ToString is used.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


ApplicationStartedUtc Property

HealthReportingData..::..ApplicationStartedUtc Property

Gets the time that the application has started in UTC.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime ApplicationStartedUtc { get; set; }

Field Value

The application started UTC.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


Content Property

HealthReportingData..::..Content Property

Contains information on the content that is reported.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ReportTypes Content { get; set; }

Field Value

The content.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


Details Property

HealthReportingData..::..Details Property

Gets the firewall status and health details as per requested parameter.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HealthReportingData..::..ReportDetails Details { get; }

Field Value

The details.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallActive Property

HealthReportingData..::..FireWallActive Property

Gets the duration that the firewall is active.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan FireWallActive { get; set; }

Field Value

The duration active.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallContactDetails Property

HealthReportingData..::..FireWallContactDetails Property

The contact details for the firewall instance

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IWhoisContactDetails FireWallContactDetails { get; }

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallIsLicensed Property

HealthReportingData..::..FireWallIsLicensed Property

Gets a value indicating whether this firewall instance is licensed.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool FireWallIsLicensed { get; set; }

Field Value

true if this instance is licensed; otherwise, false.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallLicenseExpires Property

HealthReportingData..::..FireWallLicenseExpires Property

Gets the date that the firewall license expires.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> FireWallLicenseExpires { get; set; }

Field Value

The license expires.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallLicenseLevel Property

HealthReportingData..::..FireWallLicenseLevel Property

Gets the licensed features in the firewall.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallLicencedFeatures FireWallLicenseLevel { get; set; }

Field Value

The license level.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallLicenseStatus Property

HealthReportingData..::..FireWallLicenseStatus Property

Gets the license status.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LicenseStatus FireWallLicenseStatus { get; set; }

Field Value

The license status.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


FireWallLocation Property

HealthReportingData..::..FireWallLocation Property

Gets the location of where the firewall is hosted from.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<IMapLocation> FireWallLocation { get; set; }

Field Value

The location.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


Format Property

HealthReportingData..::..Format Property

Gets the format that will be generated when ToString is used.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ReportFormat Format { get; set; }

Field Value

The format.

See Also

HealthReportingData Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.DiskChange Class

HealthReportingData..::..DiskChange Class

Class DisckChange contains the meta data on file change data.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class DiskChange

See Also

HealthReportingData..::..DiskChange Members
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.DiskChange Members

HealthReportingData..::..DiskChange Members

The HealthReportingData..::..DiskChange type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets sum of changes recorded on the file.
Public property | FileName | Gets the name of the file that triggered the change.
Public property | First | Gets the date-time if the first change (UTC).
Public property | Last | Gets the data time of the last change (UTC).

See Also

HealthReportingData..::..DiskChange Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.DiskChange Properties

HealthReportingData..::..DiskChange Properties

The HealthReportingData..::..DiskChange type exposes the following members.

Properties

 | Name | Description
Public property | Count | Gets sum of changes recorded on the file.
Public property | FileName | Gets the name of the file that triggered the change.
Public property | First | Gets the date-time if the first change (UTC).
Public property | Last | Gets the data time of the last change (UTC).

See Also

HealthReportingData..::..DiskChange Class
Walter.Web.FireWall.Reporting Namespace


Count Property

DiskChange..::..Count Property

Gets sum of changes recorded on the file.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Count { get; set; }

Field Value

The count.

See Also

HealthReportingData..::..DiskChange Class
Walter.Web.FireWall.Reporting Namespace


FileName Property

DiskChange..::..FileName Property

Gets the name of the file that triggered the change.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string FileName { get; set; }

Field Value

The name of the file.

See Also

HealthReportingData..::..DiskChange Class
Walter.Web.FireWall.Reporting Namespace


First Property

DiskChange..::..First Property

Gets the date-time if the first change (UTC).

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime First { get; set; }

Field Value

The first.

See Also

HealthReportingData..::..DiskChange Class
Walter.Web.FireWall.Reporting Namespace


Last Property

DiskChange..::..Last Property

Gets the data time of the last change (UTC).

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Last { get; set; }

Field Value

The last.

See Also

HealthReportingData..::..DiskChange Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.Incident Class

HealthReportingData..::..Incident Class

Class Incident.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class Incident

See Also

HealthReportingData..::..Incident Members
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.Incident Members

HealthReportingData..::..Incident Members

The HealthReportingData..::..Incident type exposes the following members.

Properties

 | Name | Description
Public property | Context | Gets the context.
Public property | Description | Gets the description.
Public property | Expires | Gets the expires.
Public property | IndecentId | Gets the indecent identifier.
Public property | LastTriggered | Gets the last triggered.
Public property | MachineName | Gets the name of the machine.
Public property | Path | The path portion of the URL's that this user triggered this incident on
Public property | Reason | Gets the reason.
Public property | Reported | Gets the reported.
Public property | SessionId | Gets the firewall session identifier.
Public property | Triggered | Gets the trigger count.
Public property | User | Gets the user.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.Incident Properties

HealthReportingData..::..Incident Properties

The HealthReportingData..::..Incident type exposes the following members.

Properties

 | Name | Description
Public property | Context | Gets the context.
Public property | Description | Gets the description.
Public property | Expires | Gets the expires.
Public property | IndecentId | Gets the indecent identifier.
Public property | LastTriggered | Gets the last triggered.
Public property | MachineName | Gets the name of the machine.
Public property | Path | The path portion of the URL's that this user triggered this incident on
Public property | Reason | Gets the reason.
Public property | Reported | Gets the reported.
Public property | SessionId | Gets the firewall session identifier.
Public property | Triggered | Gets the trigger count.
Public property | User | Gets the user.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Context Property

Incident..::..Context Property

Gets the context.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts Context { get; }

Field Value

The context.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Description Property

Incident..::..Description Property

Gets the description.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> Description { get; }

Field Value

The description.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Expires Property

Incident..::..Expires Property

Gets the expires.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Expires { get; }

Field Value

The expires.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


IndecentId Property

Incident..::..IndecentId Property

Gets the indecent identifier.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Guid IndecentId { get; }

Field Value

The indecent identifier.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


LastTriggered Property

Incident..::..LastTriggered Property

Gets the last triggered.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastTriggered { get; }

Field Value

The last triggered.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


MachineName Property

Incident..::..MachineName Property

Gets the name of the machine.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string MachineName { get; }

Field Value

The name of the machine.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Path Property

Incident..::..Path Property

The path portion of the URL's that this user triggered this incident on

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri Path { get; }

Return Value

IList<Uri>.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Reason Property

Incident..::..Reason Property

Gets the reason.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; }

Field Value

The reason.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Reported Property

Incident..::..Reported Property

Gets the reported.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Reported { get; }

Field Value

The reported.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


SessionId Property

Incident..::..SessionId Property

Gets the firewall session identifier.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

Field Value

The session identifier.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


Triggered Property

Incident..::..Triggered Property

Gets the trigger count.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Triggered { get; }

Field Value

The triggered.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


User Property

Incident..::..User Property

Gets the user.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFirewallUser User { get; }

Field Value

The user.

See Also

HealthReportingData..::..Incident Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.ReportDetails Class

HealthReportingData..::..ReportDetails Class

The details's of the firewall health status

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ReportDetails

See Also

HealthReportingData..::..ReportDetails Members
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.ReportDetails Members

HealthReportingData..::..ReportDetails Members

The HealthReportingData..::..ReportDetails type exposes the following members.

Properties

 | Name | Description
Public property | ActiveIncidents | Gets the incidents that are currently active.
Public property | Activity | Gets the Visitation stats for up to the last 20 minutes.
Public property | Compression | The compression statistics for the endpoints of razor pages passed through the firewall
Public property | DisckChanges | Gets the disk changes recorded since last started.
Public property | EndPoints | Gets the endpoints that are guarded by the firewall as well as the configurations of each endpoint.
Public property | Exceptions | Contains exceptions all exceptions generated in the firewall.
Public property | KeyPerformanceIndicators | Gets the key performance indicators for the firewall.
Public property | PagePerformanceIndicators | Gets the page performance indicators.
Public property | RequestsPerMinute | Gets the requests per minute on a 24 hour basis.
Public property | SuspiciousCommunications | Communications of the web application with the not normal ports.
Public property | Talking | Gets a subset of the communications done by the server that is not related to this web application.
Public property | ToDo | Contains items that the firewall discovered are not optimal and need your attention

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.ReportDetails Properties

HealthReportingData..::..ReportDetails Properties

The HealthReportingData..::..ReportDetails type exposes the following members.

Properties

 | Name | Description
Public property | ActiveIncidents | Gets the incidents that are currently active.
Public property | Activity | Gets the Visitation stats for up to the last 20 minutes.
Public property | Compression | The compression statistics for the endpoints of razor pages passed through the firewall
Public property | DisckChanges | Gets the disk changes recorded since last started.
Public property | EndPoints | Gets the endpoints that are guarded by the firewall as well as the configurations of each endpoint.
Public property | Exceptions | Contains exceptions all exceptions generated in the firewall.
Public property | KeyPerformanceIndicators | Gets the key performance indicators for the firewall.
Public property | PagePerformanceIndicators | Gets the page performance indicators.
Public property | RequestsPerMinute | Gets the requests per minute on a 24 hour basis.
Public property | SuspiciousCommunications | Communications of the web application with the not normal ports.
Public property | Talking | Gets a subset of the communications done by the server that is not related to this web application.
Public property | ToDo | Contains items that the firewall discovered are not optimal and need your attention

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


ActiveIncidents Property

ReportDetails..::..ActiveIncidents Property

Gets the incidents that are currently active.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<HealthReportingData..::..Incident> ActiveIncidents { get; }

Field Value

The incidents.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


Activity Property

ReportDetails..::..Activity Property

Gets the Visitation stats for up to the last 20 minutes.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<HealthReportingData..::..Visits> Activity { get; }

Field Value

The activity.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


Compression Property

ReportDetails..::..Compression Property

The compression statistics for the endpoints of razor pages passed through the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IDictionary<DiscoveredRout, CompressionData> Compression { get; }

Remarks

This item will only contain data if you server razor pages and use the MinifyAttribute annotation on your razor pages

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace
Walter.Web.FireWall.Annotations..::..MinifyAttribute


DisckChanges Property

ReportDetails..::..DisckChanges Property

Gets the disk changes recorded since last started.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<HealthReportingData..::..DiskChange> DisckChanges { get; }

Field Value

The disk changes.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


EndPoints Property

ReportDetails..::..EndPoints Property

Gets the endpoints that are guarded by the firewall as well as the configurations of each endpoint.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<IReadOnlyList<DiscoveredRout>> EndPoints { get; }

Field Value

The end points.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


Exceptions Property

ReportDetails..::..Exceptions Property

Contains exceptions all exceptions generated in the firewall.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<HealthReportingData..::..ToDo> Exceptions { get; }

Field Value

The exceptions.

Remarks

Typically these are issued resulting from missing access rights or failing to connect to external resources

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


KeyPerformanceIndicators Property

ReportDetails..::..KeyPerformanceIndicators Property

Gets the key performance indicators for the firewall.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<KpiEntry> KeyPerformanceIndicators { get; }

Field Value

The key performance indicators.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


PagePerformanceIndicators Property

ReportDetails..::..PagePerformanceIndicators Property

Gets the page performance indicators.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<KpiPageEntry> PagePerformanceIndicators { get; }

Field Value

The page performance indicators.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


RequestsPerMinute Property

ReportDetails..::..RequestsPerMinute Property

Gets the requests per minute on a 24 hour basis.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<ValueTuple<DateTime, int>> RequestsPerMinute { get; }

Field Value

The requests per minute.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


SuspiciousCommunications Property

ReportDetails..::..SuspiciousCommunications Property

Communications of the web application with the not normal ports.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessRecord> SuspiciousCommunications { get; }

Remarks

The firewall will record any communication outside of the ports listed in IFireWall.Configuration.Rules.MonitorCommunicationsNotInPorts

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


Talking Property

ReportDetails..::..Talking Property

Gets a subset of the communications done by the server that is not related to this web application.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessHistoricRecord> Talking { get; }

Field Value

The talking.

Remarks

Use Product LookWhoisTalking for a professional platform as this reporting node does not capture all communications

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


ToDo Property

ReportDetails..::..ToDo Property

Contains items that the firewall discovered are not optimal and need your attention

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<HealthReportingData..::..ToDo> ToDo { get; }

Field Value

To do.

See Also

HealthReportingData..::..ReportDetails Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.ToDo Class

HealthReportingData..::..ToDo Class

Class ToDo contains to-do as well as exception related to-do items.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ToDo

See Also

HealthReportingData..::..ToDo Members
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.ToDo Members

HealthReportingData..::..ToDo Members

The HealthReportingData..::..ToDo type exposes the following members.

Properties

 | Name | Description
Public property | CreatedUtc | Gets the created UTC.
Public property | IsOptional | Gets a value indicating whether this instance is optional.
Public property | Reason | Gets the reason.
Public property | Task | Gets the task.

See Also

HealthReportingData..::..ToDo Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.ToDo Properties

HealthReportingData..::..ToDo Properties

The HealthReportingData..::..ToDo type exposes the following members.

Properties

 | Name | Description
Public property | CreatedUtc | Gets the created UTC.
Public property | IsOptional | Gets a value indicating whether this instance is optional.
Public property | Reason | Gets the reason.
Public property | Task | Gets the task.

See Also

HealthReportingData..::..ToDo Class
Walter.Web.FireWall.Reporting Namespace


CreatedUtc Property

ToDo..::..CreatedUtc Property

Gets the created UTC.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime CreatedUtc { get; }

Field Value

The created UTC.

See Also

HealthReportingData..::..ToDo Class
Walter.Web.FireWall.Reporting Namespace


IsOptional Property

ToDo..::..IsOptional Property

Gets a value indicating whether this instance is optional.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsOptional { get; }

Field Value

true if this instance is optional; otherwise, false.

See Also

HealthReportingData..::..ToDo Class
Walter.Web.FireWall.Reporting Namespace


Reason Property

ToDo..::..Reason Property

Gets the reason.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Reason { get; }

Field Value

The reason.

See Also

HealthReportingData..::..ToDo Class
Walter.Web.FireWall.Reporting Namespace


Task Property

ToDo..::..Task Property

Gets the task.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Enum Task { get; }

Field Value

The task.

See Also

HealthReportingData..::..ToDo Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.Visits Class

HealthReportingData..::..Visits Class

Visits recorded by the firewall. Implements the IVisitStats

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class Visits

See Also

HealthReportingData..::..Visits Members
Walter.Web.FireWall.Reporting Namespace
Walter.Web.FireWall.Models..::..IVisitStats


HealthReportingData.Visits Members

HealthReportingData..::..Visits Members

The HealthReportingData..::..Visits type exposes the following members.

Properties

 | Name | Description
Public property | AbsolutePath | Gets the absolute path (url).
Public property | CIDR | Gets the cidr of the IP address.
Public property | EndedUtc | if hosted is a website and javascript is enabled this would contain the time stamp of the page being closed
Public property | Incident | Gets a value indicating whether this IVisitStats is incident.
Public property | Interactive | Gets a value indicating whether this IVisitStats is interactive.
Public property | Method | Gets the method.
Public property | SessionId | Gets the session identifier.
Public property | Started | Gets the started.
Public property | StatusCode | Gets the status code.
Public property | Url | Gets the URL.
Public property | UserId | Gets the user identifier.
Public property | UserType | Gets the type of the user.
Public property | Visit | Gets the visit.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


HealthReportingData.Visits Properties

HealthReportingData..::..Visits Properties

The HealthReportingData..::..Visits type exposes the following members.

Properties

 | Name | Description
Public property | AbsolutePath | Gets the absolute path (url).
Public property | CIDR | Gets the cidr of the IP address.
Public property | EndedUtc | if hosted is a website and javascript is enabled this would contain the time stamp of the page being closed
Public property | Incident | Gets a value indicating whether this IVisitStats is incident.
Public property | Interactive | Gets a value indicating whether this IVisitStats is interactive.
Public property | Method | Gets the method.
Public property | SessionId | Gets the session identifier.
Public property | Started | Gets the started.
Public property | StatusCode | Gets the status code.
Public property | Url | Gets the URL.
Public property | UserId | Gets the user identifier.
Public property | UserType | Gets the type of the user.
Public property | Visit | Gets the visit.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


AbsolutePath Property

Visits..::..AbsolutePath Property

Gets the absolute path (url).

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string AbsolutePath { get; }

Field Value

The absolute path.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


CIDR Property

Visits..::..CIDR Property

Gets the cidr of the IP address.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long CIDR { get; }

Field Value

The cidr.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


EndedUtc Property

Visits..::..EndedUtc Property

if hosted is a website and javascript is enabled this would contain the time stamp of the page being closed

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime EndedUtc { get; }

Field Value

The ended UTC.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


Incident Property

Visits..::..Incident Property

Gets a value indicating whether this IVisitStats is incident.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Incident { get; }

Field Value

true if incident; otherwise, false.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


Interactive Property

Visits..::..Interactive Property

Gets a value indicating whether this IVisitStats is interactive.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> Interactive { get; }

Field Value

null if [interactive] contains no value, true if [interactive]; otherwise, false.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


Method Property

Visits..::..Method Property

Gets the method.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ProtocolMethod Method { get; }

Field Value

The method.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


SessionId Property

Visits..::..SessionId Property

Gets the session identifier.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

Field Value

The session identifier.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


Started Property

Visits..::..Started Property

Gets the started.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Started { get; }

Field Value

The started.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


StatusCode Property

Visits..::..StatusCode Property

Gets the status code.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public HttpStatusCode StatusCode { get; }

Field Value

The status code.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


Url Property

Visits..::..Url Property

Gets the URL.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri Url { get; }

Field Value

The URL.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


UserId Property

Visits..::..UserId Property

Gets the user identifier.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UserId { get; }

Field Value

The user identifier.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


UserType Property

Visits..::..UserType Property

Gets the type of the user.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypes UserType { get; }

Field Value

The type of the user.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


Visit Property

Visits..::..Visit Property

Gets the visit.

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Visit { get; }

Field Value

The visit.

See Also

HealthReportingData..::..Visits Class
Walter.Web.FireWall.Reporting Namespace


IFireWallReportingModel Interface

Interface IFireWallReportingModel indicates that the model can be used when rendering firewall reports in views

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallReportingModel

See Also

IFireWallReportingModel Members
Walter.Web.FireWall.Reporting Namespace


IFireWallReportingModel Members

The IFireWallReportingModel type exposes the following members.

Properties

 | Name | Description
Public property | Created | UTC date the report data was created

See Also

IFireWallReportingModel Interface
Walter.Web.FireWall.Reporting Namespace


IFireWallReportingModel Properties

The IFireWallReportingModel type exposes the following members.

Properties

 | Name | Description
Public property | Created | UTC date the report data was created

See Also

IFireWallReportingModel Interface
Walter.Web.FireWall.Reporting Namespace


Created Property

IFireWallReportingModel..::..Created Property

UTC date the report data was created

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime Created { get; }

See Also

IFireWallReportingModel Interface
Walter.Web.FireWall.Reporting Namespace


ReportFormat Enumeration

ReportFormat used when generating firewall reports

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ReportFormat

Members

Member name | Description
TextPlain | return plain text
Json | return json formatted text
Native | generate native object is used internally and can't be passed to the report engine, if you do you will get json back

Examples

C#
using Walter.Web.FireWall;
   using Walter.Web.FireWall.Reporting;
   [ApiController]
   [Route("api/[controller]")]
   [Authorize]
   public class HealthController : Controller
   {
       private readonly ILogger<HealthController> _logger;
       private readonly IFireWall _fireWall;

       public HealthController(ILogger<HealthController> logger, IFireWall fireWall)
       {
           _logger = logger;
           _fireWall = fireWall;
       }

       [HttpGet]
       public string Get()
       {
          _logger?.Lazy().LogDebug("Call firewall heath report. Heath status:\n {status}",   _fireWall.Report(ReportTypes.DEFAULT));
          Response.ContentType = "application/json";
          return _fireWall.Report(ReportTypes.DEFAULT, ReportFormat.Json);
        }
   }

See Also

Walter.Web.FireWall.Reporting Namespace


ReportTypes Enumeration

The enumerable ReportTypes allows you to select the report data that will be rendered in the firewall reporting interface

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum ReportTypes

Members

Member name | Description
None | none value specified, no report generated
Todo | The to-do items for the firewall
EndPoints | The end points managed by the firewall
Incidents | The incidents recorded by the firewall
Activity | The activity recorded by the firewall
FireWall | A violation of type firewall
CSPV | a violation of type Content Security Policy Violation (browser)
Updates | Pending updates in license or licensed binaries
Critical | used in combination with other flags indication critical updates/ activity/ information/ incidents
DataSubscription | There are data subscription updates, make sure you protect this output as it can be used to penetrate the firewall
KPI | KPI of Firewall
FireWallIncidents | Firewall incident
CsvpIncidents | Content Security Policy Violation incident
SecurityUpdate | There is security update that is pending and is not implemented, make sure you protect this output as it can be used to penetrate the firewall
RequestsPerMinute | The requests per minute
FileChanges | The suspicious file changes
Talking | The get the network communication between the server and outside parties outside of this web application
Details | Use this flag to show details data not just overview in text based reports
Minification | Minification report showing the amount of data the firewall was able to save from being send to the consumers
DEFAULT | The default reporting output does not contain any missing Security related Update as it would inform on available vulnerabilities
ALL | Return all data, even security relevant data

See Also

Walter.Web.FireWall.Reporting Namespace


Walter.Web.FireWall.RequestTracking Namespace

Classes

 | Class | Description
Public class | NotFoundMiddlewareOptions | Class NotFoundMiddlewareOptions.
Public class | NotFoundRequest | Class NotFoundRequest.

Interfaces

 | Interface | Description
Public interface | IFailedRequestTracker | track failed request in the firewall and allows the firewall to map old endpoints that may be in PDF's or external sites to new locations without causing the triggering of phishing requests
Public interface | INotFoundRequest | The INotFoundRequest Interface exposes the key data of the NotFoundRequest and injects it into firewall management objects.
Public interface | INotFoundRequestRepository | Interface INotFoundRequestRepository

Enumerations

 | Enumeration | Description
Public enumeration | FixPathBehavior | Enum FixPathBehavior


FixPathBehavior Enumeration

Enum FixPathBehavior

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum FixPathBehavior

Members

Member name | Description
Redirect | The redirect
Rewrite | The rewrite

See Also

Walter.Web.FireWall.RequestTracking Namespace


IFailedRequestTracker Interface

track failed request in the firewall and allows the firewall to map old endpoints that may be in PDF's or external sites to new locations without causing the triggering of phishing requests

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFailedRequestTracker

See Also

IFailedRequestTracker Members
Walter.Web.FireWall.RequestTracking Namespace


IFailedRequestTracker Members

The IFailedRequestTracker type exposes the following members.

Methods

 | Name | Description
Public method | GetRequest | Get the request for the path and method that failed
Public method | ListRequests | Lists the requests that are managed by the firewall.
Public method | Remove | removes the data
Public method | RemoveAsync | removes the data
Public method | UpdateRequest | updates the data

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


IFailedRequestTracker Methods

The IFailedRequestTracker type exposes the following members.

Methods

 | Name | Description
Public method | GetRequest | Get the request for the path and method that failed
Public method | ListRequests | Lists the requests that are managed by the firewall.
Public method | Remove | removes the data
Public method | RemoveAsync | removes the data
Public method | UpdateRequest | updates the data

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


GetRequest Method

IFailedRequestTracker..::..GetRequest Method

Get the request for the path and method that failed

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
NotFoundRequest GetRequest(
    ProtocolMethod method,
    string path
)

Parameters

method
Type: ProtocolMethod
method
path
Type: String
path

Return Value

NotFoundRequest

Remarks

finds an existing or creates new failed request object

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


ListRequests Method

IFailedRequestTracker..::..ListRequests Method

Lists the requests that are managed by the firewall.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<NotFoundRequest> ListRequests()

Return Value

IEnumerable<NotFoundRequest>.

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


Remove Method

IFailedRequestTracker..::..Remove Method

removes the data

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remove(
    NotFoundRequest request
)

Parameters

request
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


RemoveAsync Method

IFailedRequestTracker..::..RemoveAsync Method

removes the data

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task RemoveAsync(
    NotFoundRequest request
)

Parameters

request
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


UpdateRequest Method

IFailedRequestTracker..::..UpdateRequest Method

updates the data

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateRequest(
    NotFoundRequest request
)

Parameters

request
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest

See Also

IFailedRequestTracker Interface
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequest Interface

The INotFoundRequest Interface exposes the key data of the NotFoundRequest and injects it into firewall management objects.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface INotFoundRequest

Remarks

The NotFoundRequest data entry is optional and found on pages that are not valid in the application in it's current state. If the value is set you are then faced with 1 of 2 options

  1. URL phishing is detected as the page is not allowed
  2. an Old Link is used to access the site and the item does not exist anymore.

If option 2 is likely you can use SetCorrectedPath(String) to have the firewall redirect the request to the new endpoint

See Also

INotFoundRequest Members
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequest Members

The INotFoundRequest type exposes the following members.

Methods

 | Name | Description
Public method | SetCorrectedPath | Sets the corrected path on CorrectedPath for this NotFoundRequest.

Properties

 | Name | Description
Public property | CorrectedPath | Gets the corrected path.
Public property | FailedOnModules | Informs on the Guard-modules that requests on this non existing endpoints normally will fail on
Public property | LastSeenUtc | Gets the last time any user has invoked this endpoint.
Public property | Path | Gets the path that invoked the recording.
Public property | ProtocolMethod | Gets the protocol method on the request that failed.
Public property | Recorded | Gets the date the entry was first recorded.

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequest Methods

The INotFoundRequest type exposes the following members.

Methods

 | Name | Description
Public method | SetCorrectedPath | Sets the corrected path on CorrectedPath for this NotFoundRequest.

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


SetCorrectedPath Method

INotFoundRequest..::..SetCorrectedPath Method

Sets the corrected path on CorrectedPath for this NotFoundRequest.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void SetCorrectedPath(
    string path
)

Parameters

path
Type: String
The path.

Remarks

This will trigger a update that will propagate in the firewall storage

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequest Properties

The INotFoundRequest type exposes the following members.

Properties

 | Name | Description
Public property | CorrectedPath | Gets the corrected path.
Public property | FailedOnModules | Informs on the Guard-modules that requests on this non existing endpoints normally will fail on
Public property | LastSeenUtc | Gets the last time any user has invoked this endpoint.
Public property | Path | Gets the path that invoked the recording.
Public property | ProtocolMethod | Gets the protocol method on the request that failed.
Public property | Recorded | Gets the date the entry was first recorded.

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


CorrectedPath Property

INotFoundRequest..::..CorrectedPath Property

Gets the corrected path.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<string> CorrectedPath { get; }

Field Value

The corrected path.

Remarks

To update the path use the SetCorrectedPath(String) method

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace
INotFoundRequest..::..SetCorrectedPath(String)


FailedOnModules Property

INotFoundRequest..::..FailedOnModules Property

Informs on the Guard-modules that requests on this non existing endpoints normally will fail on

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
FireWallGuardActions FailedOnModules { get; }

Remarks

This is a collection of all known incidents that this path has been associated with

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


LastSeenUtc Property

INotFoundRequest..::..LastSeenUtc Property

Gets the last time any user has invoked this endpoint.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime LastSeenUtc { get; }

Field Value

The last seen UTC.

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


Path Property

INotFoundRequest..::..Path Property

Gets the path that invoked the recording.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Path { get; }

Field Value

The faulty path.

Remarks

You might have a endpoint that maps to this path, however the endpoint will not have a matching method like HttpGet, HttpPost etc.

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


ProtocolMethod Property

INotFoundRequest..::..ProtocolMethod Property

Gets the protocol method on the request that failed.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ProtocolMethod ProtocolMethod { get; }

Field Value

The faulty protocol method.

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


Recorded Property

INotFoundRequest..::..Recorded Property

Gets the date the entry was first recorded.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
DateTime Recorded { get; }

Field Value

The recorded UTC date.

Remarks

This date is relative to the firewall not to a request being processed

See Also

INotFoundRequest Interface
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequestRepository Interface

Interface INotFoundRequestRepository

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface INotFoundRequestRepository

See Also

INotFoundRequestRepository Members
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequestRepository Members

The INotFoundRequestRepository type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified not found request.
Public method | GetByPath | Gets the by path.
Public method | List | Lists this instance.
Public method | Remove | Removes the specified NotFoundRequest.
Public method | RemoveAsync | Removes the specified NotFoundRequest.
Public method | Update | Updates the specified not found request.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


INotFoundRequestRepository Methods

The INotFoundRequestRepository type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified not found request.
Public method | GetByPath | Gets the by path.
Public method | List | Lists this instance.
Public method | Remove | Removes the specified NotFoundRequest.
Public method | RemoveAsync | Removes the specified NotFoundRequest.
Public method | Update | Updates the specified not found request.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


Add Method

INotFoundRequestRepository..::..Add Method

Adds the specified not found request.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    NotFoundRequest notFoundRequest
)

Parameters

notFoundRequest
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The not found request.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


GetByPath Method

INotFoundRequestRepository..::..GetByPath Method

Gets the by path.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<NotFoundRequest> GetByPath(
    ProtocolMethod method,
    string path
)

Parameters

method
Type: ProtocolMethod
path
Type: String
The path.

Return Value

NotFoundRequest.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


List Method

INotFoundRequestRepository..::..List Method

Lists this instance.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<NotFoundRequest> List()

Return Value

IEnumerable<NotFoundRequest>.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


Remove Method

INotFoundRequestRepository..::..Remove Method

Removes the specified NotFoundRequest.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remove(
    NotFoundRequest notFoundRequest
)

Parameters

notFoundRequest
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The not found request.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


RemoveAsync Method

INotFoundRequestRepository..::..RemoveAsync Method

Removes the specified NotFoundRequest.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Task RemoveAsync(
    NotFoundRequest notFoundRequest
)

Parameters

notFoundRequest
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The not found request.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


Update Method

INotFoundRequestRepository..::..Update Method

Updates the specified not found request.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Update(
    NotFoundRequest notFoundRequest
)

Parameters

notFoundRequest
Type: Walter.Web.FireWall.RequestTracking..::..NotFoundRequest
The not found request.

See Also

INotFoundRequestRepository Interface
Walter.Web.FireWall.RequestTracking Namespace


NotFoundMiddlewareOptions Class

Class NotFoundMiddlewareOptions.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class NotFoundMiddlewareOptions

See Also

NotFoundMiddlewareOptions Members
Walter.Web.FireWall.RequestTracking Namespace


NotFoundMiddlewareOptions Members

The NotFoundMiddlewareOptions type exposes the following members.

Properties

 | Name | Description
Public property | FixPathBehavior | Gets or sets the fix path behavior.
Public property | Path | Gets or sets the path.

See Also

NotFoundMiddlewareOptions Class
Walter.Web.FireWall.RequestTracking Namespace


NotFoundMiddlewareOptions Properties

The NotFoundMiddlewareOptions type exposes the following members.

Properties

 | Name | Description
Public property | FixPathBehavior | Gets or sets the fix path behavior.
Public property | Path | Gets or sets the path.

See Also

NotFoundMiddlewareOptions Class
Walter.Web.FireWall.RequestTracking Namespace


FixPathBehavior Property

NotFoundMiddlewareOptions..::..FixPathBehavior Property

Gets or sets the fix path behavior.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FixPathBehavior FixPathBehavior { get; set; }

Field Value

The fix path behavior.

See Also

NotFoundMiddlewareOptions Class
Walter.Web.FireWall.RequestTracking Namespace


Path Property

NotFoundMiddlewareOptions..::..Path Property

Gets or sets the path.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Path { get; set; }

Field Value

The path.

See Also

NotFoundMiddlewareOptions Class
Walter.Web.FireWall.RequestTracking Namespace


NotFoundRequest Class

Class NotFoundRequest.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class NotFoundRequest : INotFoundRequest

See Also

NotFoundRequest Members
Walter.Web.FireWall.RequestTracking Namespace


NotFoundRequest Members

The NotFoundRequest type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(NotFoundRequest>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | IncrementCount | Increments the count.
Public method | SetCorrectedPath | Sets the corrected path on CorrectedPath for this NotFoundRequest.
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

Properties

 | Name | Description
Public property | CorrectedPath | Gets the corrected path.
Public property | FailedOnModules | Informs on the modules that endpoints with this path normally will fail on
Public property | ID | The tracking ID for the not found request
Public property | LastSeenUtc | Gets the last time any user has invoked this endpoint.
Public property | MappedCount | Counts how often the URL was rendered using the redirect
Public property | NoFondCount | Gets the count of possible 404 requests for this page.
Public property | Path | Gets the path that invoked the recording.
Public property | ProtocolMethod | Gets the protocol method on the request.
Public property | Recorded | Gets the date the entry was first recorded.
Public property | UpdatedUtc | Gets the updated UTC.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


NotFoundRequest Methods

The NotFoundRequest type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(NotFoundRequest>)>>)) | Indicates whether the current object is equal to another object of the same type.
Public method | GetHashCode | Returns a hash code for this instance.
Public method | IncrementCount | Increments the count.
Public method | SetCorrectedPath | Sets the corrected path on CorrectedPath for this NotFoundRequest.
Public method | SetId | Sets the technical identifier.
Public method | SetValues | Sets the specified values array.
Public method | ToString | Returns a [System.String] that represents this instance.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


Equals Method

NotFoundRequest..::..Equals Method

Overload List

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Determines whether the specified [System.Object] is equal to this instance.
Public method | Equals(Nullable<(Of <<'(NotFoundRequest>)>>)) | Indicates whether the current object is equal to another object of the same type.

See Also

NotFoundRequest Class
NotFoundRequest Members
Walter.Web.FireWall.RequestTracking Namespace


Equals Method (Nullable(Object))

NotFoundRequest..::..Equals Method (Nullable<(Of <(<'Object>)>)>)

Determines whether the specified [System.Object] is equal to this instance.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<Object> obj
)

Parameters

obj
Type: Nullable <(Of <(<' Object >)>)>
The object to compare with the current object.

Return Value

true if the specified [System.Object] is equal to this instance; otherwise, false.

See Also

NotFoundRequest Class
Equals Overload
Walter.Web.FireWall.RequestTracking Namespace


Equals Method (Nullable(NotFoundRequest))

NotFoundRequest..::..Equals Method (Nullable<(Of <(<'NotFoundRequest>)>)>)

Indicates whether the current object is equal to another object of the same type.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Equals(
    Nullable<NotFoundRequest> other
)

Parameters

other
Type: Nullable <(Of <(<' NotFoundRequest >)>)>
An object to compare with this object.

Return Value

trueTruetruetrue (True in Visual Basic) if the current object is equal to the other parameter; otherwise, falseFalsefalsefalse (False in Visual Basic).

See Also

NotFoundRequest Class
Equals Overload
Walter.Web.FireWall.RequestTracking Namespace


GetHashCode Method

NotFoundRequest..::..GetHashCode Method

Returns a hash code for this instance.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int GetHashCode()

Return Value

A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


IncrementCount Method

NotFoundRequest..::..IncrementCount Method

Increments the count.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void IncrementCount()

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


SetCorrectedPath Method

NotFoundRequest..::..SetCorrectedPath Method

Sets the corrected path on CorrectedPath for this NotFoundRequest.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetCorrectedPath(
    string path
)

Parameters

path
Type: String
The path.

Remarks

This will trigger a update that will propagate in the firewall storage

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


SetId Method

NotFoundRequest..::..SetId Method

Sets the technical identifier.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetId(
    Object value
)

Parameters

value
Type: Object
The value.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


SetValues Method

NotFoundRequest..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


ToString Method

NotFoundRequest..::..ToString Method

Returns a [System.String] that represents this instance.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

A [System.String] that represents this instance.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


NotFoundRequest Properties

The NotFoundRequest type exposes the following members.

Properties

 | Name | Description
Public property | CorrectedPath | Gets the corrected path.
Public property | FailedOnModules | Informs on the modules that endpoints with this path normally will fail on
Public property | ID | The tracking ID for the not found request
Public property | LastSeenUtc | Gets the last time any user has invoked this endpoint.
Public property | MappedCount | Counts how often the URL was rendered using the redirect
Public property | NoFondCount | Gets the count of possible 404 requests for this page.
Public property | Path | Gets the path that invoked the recording.
Public property | ProtocolMethod | Gets the protocol method on the request.
Public property | Recorded | Gets the date the entry was first recorded.
Public property | UpdatedUtc | Gets the updated UTC.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


CorrectedPath Property

NotFoundRequest..::..CorrectedPath Property

Gets the corrected path.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> CorrectedPath { get; set; }

Field Value

The corrected path.

Remarks

To update the path use the SetCorrectedPath(String) method

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace
NotFoundRequest..::..SetCorrectedPath(String)


FailedOnModules Property

NotFoundRequest..::..FailedOnModules Property

Informs on the modules that endpoints with this path normally will fail on

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallGuardActions FailedOnModules { get; set; }

Remarks

This is a collection of all known incidents that this path has been associated with

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


ID Property

NotFoundRequest..::..ID Property

The tracking ID for the not found request

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Guid ID { get; set; }

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


LastSeenUtc Property

NotFoundRequest..::..LastSeenUtc Property

Gets the last time any user has invoked this endpoint.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime LastSeenUtc { get; set; }

Field Value

The last seen UTC.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


MappedCount Property

NotFoundRequest..::..MappedCount Property

Counts how often the URL was rendered using the redirect

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int MappedCount { get; set; }

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


NoFondCount Property

NotFoundRequest..::..NoFondCount Property

Gets the count of possible 404 requests for this page.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int NoFondCount { get; set; }

Field Value

The count.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


Path Property

NotFoundRequest..::..Path Property

Gets the path that invoked the recording.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Path { get; set; }

Field Value

The faulty path.

Remarks

You might have a endpoint that maps to this path, however the endpoint will not have a matching method like HttpGet, HttpPost etc.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


ProtocolMethod Property

NotFoundRequest..::..ProtocolMethod Property

Gets the protocol method on the request.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ProtocolMethod ProtocolMethod { get; set; }

Field Value

The protocol method.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


Recorded Property

NotFoundRequest..::..Recorded Property

Gets the date the entry was first recorded.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Recorded { get; set; }

Field Value

The recorded.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


UpdatedUtc Property

NotFoundRequest..::..UpdatedUtc Property

Gets the updated UTC.

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> UpdatedUtc { get; set; }

Field Value

The updated UTC.

See Also

NotFoundRequest Class
Walter.Web.FireWall.RequestTracking Namespace


Walter.Web.FireWall.RuleEngine Namespace

Classes

 | Class | Description
Public class | DefaultRules | default firewall rule
Public class | FireWallRule | Class FireWallRule. Implements the IFireWallRule
Public class | FrequencyRule | Frequency related rules are those that allow an attempt for a given duration to allow for user error for a given time until it triggers.
Public class | RegExRule | Class RegExRule. Implements the FrequencyRule
Public class | RulesCollection | Thread-Safe collection of rules allowing for live updates to the rules database

Interfaces

 | Interface | Description
Public interface | IFireWallRule | basic rule properties
Public interface | IFirewallViolations | Interface IFirewallViolations is a mini database containing a scoped data set for a user, IP address or other dimension on the incident data
Public interface | IIncidentDatabase | Access the Incidents database of the firewall
Public interface | IRuntimeRulesEngine | Interface IRuntimeRulesEngine allows to access the rule-engine's external rules (those you invoke in your code) as these rules may have aditional methods or considerations that are not maintain

Enumerations

 | Enumeration | Description
Public enumeration | IncidentDatataManagment | Enum IncidentDatataManagment contains a method to filter incidents for management interface
Public enumeration | KnownRule | Enum KnownRules
Public enumeration | PatternLocations | The enum PatternLocation determines or documents where a pattern was expected to have matched
Public enumeration | RuleFilters | RuleFilter state how the rule should apply
Public enumeration | RuleGroups | Group that a given rule belong to
Public enumeration | UrlValidatedResult | Enum UrlValidatedResult returns what rule was violated by the rule engine executing blockedPatterns


DefaultRules Class

default firewall rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class DefaultRules : FrequencyRule

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.RuleEngine..::..FireWallRule
Walter.Web.FireWall.RuleEngine..::..FrequencyRule
Walter.Web.FireWall.RuleEngine..::..DefaultRules

See Also

DefaultRules Members
Walter.Web.FireWall.RuleEngine Namespace


DefaultRules Members

The DefaultRules type exposes the following members.

Constructors

 | Name | Description
Public method | DefaultRules | create the rule with rule type

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | action to perform on IP address
Public method | IsApplicable(IPageRequest) | action to implement on pages that are processed

Properties

 | Name | Description
Public property | AddressFilter | Address based filter needs to have an IP address to filter on the IP address
Public property | Allow | allows to pass
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement (Inherited from FireWallRule.)
Public property | Description | Gets or sets the description. (Inherited from FireWallRule.)
Public property | Duration | Duration a rule is in effect (block and allow) (Inherited from FireWallRule.)
Public property | Group | the category of the rule (Inherited from FireWallRule.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name. (Inherited from FireWallRule.)
Public property | Occurance | frequency that we will allow it to happen in a given timespan (Inherited from FrequencyRule.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule (Inherited from FireWallRule.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TimeSpan | The timespan a specific frequency of this rule may be violated (Inherited from FrequencyRule.)

See Also

DefaultRules Class
Walter.Web.FireWall.RuleEngine Namespace


DefaultRules Constructor

create the rule with rule type

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DefaultRules(
    KnownRule rule,
    bool allow
)

Parameters

rule
Type: Walter.Web.FireWall.RuleEngine..::..KnownRule
the rule group
allow
Type: Boolean
causes blocking

See Also

DefaultRules Class
Walter.Web.FireWall.RuleEngine Namespace


DefaultRules Methods

The DefaultRules type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | action to perform on IP address
Public method | IsApplicable(IPageRequest) | action to implement on pages that are processed

See Also

DefaultRules Class
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method

DefaultRules..::..IsApplicable Method

Overload List

 | Name | Description
Public method | IsApplicable(IPAddress) | action to perform on IP address
Public method | IsApplicable(IPageRequest) | action to implement on pages that are processed

See Also

DefaultRules Class
DefaultRules Members
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPAddress)

DefaultRules..::..IsApplicable Method (IPAddress)

action to perform on IP address

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsApplicable(
    IPAddress ip
)

Parameters

ip
Type: IPAddress

Return Value

true if triggered

See Also

DefaultRules Class
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPageRequest)

DefaultRules..::..IsApplicable Method (IPageRequest)

action to implement on pages that are processed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsApplicable(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
the page to investigate

Return Value

true if triggered

See Also

DefaultRules Class
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


DefaultRules Properties

The DefaultRules type exposes the following members.

Properties

 | Name | Description
Public property | AddressFilter | Address based filter needs to have an IP address to filter on the IP address
Public property | Allow | allows to pass
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement (Inherited from FireWallRule.)
Public property | Description | Gets or sets the description. (Inherited from FireWallRule.)
Public property | Duration | Duration a rule is in effect (block and allow) (Inherited from FireWallRule.)
Public property | Group | the category of the rule (Inherited from FireWallRule.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name. (Inherited from FireWallRule.)
Public property | Occurance | frequency that we will allow it to happen in a given timespan (Inherited from FrequencyRule.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule (Inherited from FireWallRule.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TimeSpan | The timespan a specific frequency of this rule may be violated (Inherited from FrequencyRule.)

See Also

DefaultRules Class
Walter.Web.FireWall.RuleEngine Namespace


AddressFilter Property

DefaultRules..::..AddressFilter Property

Address based filter needs to have an IP address to filter on the IP address

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<IPAddress> AddressFilter { get; set; }

See Also

DefaultRules Class
Walter.Web.FireWall.RuleEngine Namespace


Allow Property

DefaultRules..::..Allow Property

allows to pass

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Allow { get; }

See Also

DefaultRules Class
Walter.Web.FireWall.RuleEngine Namespace


FireWallRule Class

Class FireWallRule. Implements the IFireWallRule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class FireWallRule : BaseFireWallAttribute,
    IFireWallRule

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.RuleEngine..::..FireWallRule

See Also

FireWallRule Members
Walter.Web.FireWall.RuleEngine Namespace
Walter.Web.FireWall.RuleEngine..::..IFireWallRule


FireWallRule Members

The FireWallRule type exposes the following members.

Constructors

 | Name | Description
Protected method | FireWallRule(String, String, FireWallGuardActions, FirewallBlockReasons) | Create a rule

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip].
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request].

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement
Public property | Description | Gets or sets the description.
Public property | Duration | Duration a rule is in effect (block and allow)
Public property | Group | the category of the rule
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name.
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


FireWallRule Constructor (String, String, FireWallGuardActions, FirewallBlockReasons)

Create a rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected FireWallRule(
    string name,
    string description,
    FireWallGuardActions module,
    FirewallBlockReasons reason
)

Parameters

name
Type: String
Display name
description
Type: String
Explanation of the rule
module
Type: Walter.Web.FireWall.Filters..::..FireWallGuardActions
the module to trigger
reason
Type: Walter.BOM..::..FirewallBlockReasons
the reason to give

See Also

FireWallRule Class
#ctor Overload
Walter.Web.FireWall.RuleEngine Namespace


FireWallRule Methods

The FireWallRule type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip].
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request].

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method

FireWallRule..::..IsApplicable Method

Overload List

 | Name | Description
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip].
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request].

See Also

FireWallRule Class
FireWallRule Members
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPAddress)

FireWallRule..::..IsApplicable Method (IPAddress)

Determines whether [is] [the specified ip].

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsApplicable(
    IPAddress ip
)

Parameters

ip
Type: IPAddress
The ip.

Return Value

true if [is] [the specified ip]; otherwise, false.

See Also

FireWallRule Class
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPageRequest)

FireWallRule..::..IsApplicable Method (IPageRequest)

Determines whether the rule is applicable on a given context [the specified request].

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsApplicable(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page/service requested.

Return Value

true if [is] [the specified request]; otherwise, false.

See Also

FireWallRule Class
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


FireWallRule Properties

The FireWallRule type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement
Public property | Description | Gets or sets the description.
Public property | Duration | Duration a rule is in effect (block and allow)
Public property | Group | the category of the rule
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name.
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


DefaultAction Property

FireWallRule..::..DefaultAction Property

action to implement

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public KnownRule DefaultAction { get; set; }

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


Description Property

FireWallRule..::..Description Property

Gets or sets the description.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Description { get; set; }

Field Value

The description.

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


Duration Property

FireWallRule..::..Duration Property

Duration a rule is in effect (block and allow)

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan Duration { get; set; }

Field Value

The duration.

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


Group Property

FireWallRule..::..Group Property

the category of the rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RuleGroups Group { get; set; }

Field Value

The group.

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


Name Property

FireWallRule..::..Name Property

Gets or sets the name.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Name { get; set; }

Field Value

The name.

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


Scope Property

FireWallRule..::..Scope Property

The scope of a given rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RuleFilters Scope { get; set; }

Field Value

The scope.

See Also

FireWallRule Class
Walter.Web.FireWall.RuleEngine Namespace


FrequencyRule Class

Frequency related rules are those that allow an attempt for a given duration to allow for user error for a given time until it triggers.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class FrequencyRule : FireWallRule

Remarks

A rule that allows 0 occurrences will trigger immediately, a rule that allows 1 occurrence in 24 hours will trigger on the 2nd time on that 24 hrs timespan. You can unblock the user after a given duration

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.RuleEngine..::..FireWallRule
Walter.Web.FireWall.RuleEngine..::..FrequencyRule

See Also

FrequencyRule Members
Walter.Web.FireWall.RuleEngine Namespace


FrequencyRule Members

The FrequencyRule type exposes the following members.

Constructors

 | Name | Description
Protected method | FrequencyRule | Create a rule

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip]. (Inherited from FireWallRule.)
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request]. (Inherited from FireWallRule.)

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement (Inherited from FireWallRule.)
Public property | Description | Gets or sets the description. (Inherited from FireWallRule.)
Public property | Duration | Duration a rule is in effect (block and allow) (Inherited from FireWallRule.)
Public property | Group | the category of the rule (Inherited from FireWallRule.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name. (Inherited from FireWallRule.)
Public property | Occurance | frequency that we will allow it to happen in a given timespan
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule (Inherited from FireWallRule.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TimeSpan | The timespan a specific frequency of this rule may be violated

See Also

FrequencyRule Class
Walter.Web.FireWall.RuleEngine Namespace


FrequencyRule Constructor

Create a rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected FrequencyRule(
    string name,
    string description
)

Parameters

name
Type: String
Display name
description
Type: String
Explanation of the rule

See Also

FrequencyRule Class
Walter.Web.FireWall.RuleEngine Namespace


FrequencyRule Methods

The FrequencyRule type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip]. (Inherited from FireWallRule.)
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request]. (Inherited from FireWallRule.)

See Also

FrequencyRule Class
Walter.Web.FireWall.RuleEngine Namespace


FrequencyRule Properties

The FrequencyRule type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement (Inherited from FireWallRule.)
Public property | Description | Gets or sets the description. (Inherited from FireWallRule.)
Public property | Duration | Duration a rule is in effect (block and allow) (Inherited from FireWallRule.)
Public property | Group | the category of the rule (Inherited from FireWallRule.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name. (Inherited from FireWallRule.)
Public property | Occurance | frequency that we will allow it to happen in a given timespan
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule (Inherited from FireWallRule.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TimeSpan | The timespan a specific frequency of this rule may be violated

See Also

FrequencyRule Class
Walter.Web.FireWall.RuleEngine Namespace


Occurance Property

FrequencyRule..::..Occurance Property

frequency that we will allow it to happen in a given timespan

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Occurance { get; set; }

See Also

FrequencyRule Class
Walter.Web.FireWall.RuleEngine Namespace


TimeSpan Property

FrequencyRule..::..TimeSpan Property

The timespan a specific frequency of this rule may be violated

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public TimeSpan TimeSpan { get; set; }

See Also

FrequencyRule Class
Walter.Web.FireWall.RuleEngine Namespace


IFireWallRule Interface

basic rule properties

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallRule

See Also

IFireWallRule Members
Walter.Web.FireWall.RuleEngine Namespace


IFireWallRule Members

The IFireWallRule type exposes the following members.

Methods

 | Name | Description
Public method | IsApplicable(IPAddress) | Determines whether the rule applies for the [the specified ip] address.
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request].

Properties

 | Name | Description
Public property | DefaultAction | Gets the type of the rule.
Public property | Duration | Duration a rule is in effect (block and allow)
Public property | Group | the category of the rule
Public property | Name | the name of the rule, rule names are unique
Public property | Scope | The scope of a given rule

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


IFireWallRule Methods

Methods

 | Name | Description
Public method | IsApplicable(IPAddress) | Determines whether the rule applies for the [the specified ip] address.
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request].

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method

IFireWallRule..::..IsApplicable Method

Overload List

 | Name | Description
Public method | IsApplicable(IPAddress) | Determines whether the rule applies for the [the specified ip] address.
Public method | IsApplicable(IPageRequest) | Determines whether the rule is applicable on a given context [the specified request].

See Also

IFireWallRule Interface
IFireWallRule Members
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPAddress)

IFireWallRule..::..IsApplicable Method (IPAddress)

Determines whether the rule applies for the [the specified ip] address.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsApplicable(
    IPAddress ip
)

Parameters

ip
Type: IPAddress
The ip.

Return Value

true if [is] [the specified ip]; otherwise, false.

See Also

IFireWallRule Interface
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPageRequest)

IFireWallRule..::..IsApplicable Method (IPageRequest)

Determines whether the rule is applicable on a given context [the specified request].

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsApplicable(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page/service requested.

Return Value

true if [is] [the specified request]; otherwise, false.

See Also

IFireWallRule Interface
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


IFireWallRule Properties

The IFireWallRule type exposes the following members.

Properties

 | Name | Description
Public property | DefaultAction | Gets the type of the rule.
Public property | Duration | Duration a rule is in effect (block and allow)
Public property | Group | the category of the rule
Public property | Name | the name of the rule, rule names are unique
Public property | Scope | The scope of a given rule

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


DefaultAction Property

IFireWallRule..::..DefaultAction Property

Gets the type of the rule.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
KnownRule DefaultAction { get; }

Field Value

The type of the rule.

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


Duration Property

IFireWallRule..::..Duration Property

Duration a rule is in effect (block and allow)

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
TimeSpan Duration { get; set; }

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


Group Property

IFireWallRule..::..Group Property

the category of the rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
RuleGroups Group { get; set; }

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


Name Property

IFireWallRule..::..Name Property

the name of the rule, rule names are unique

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
string Name { get; }

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


Scope Property

IFireWallRule..::..Scope Property

The scope of a given rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
RuleFilters Scope { get; set; }

See Also

IFireWallRule Interface
Walter.Web.FireWall.RuleEngine Namespace


IFirewallViolations Interface

Interface IFirewallViolations is a mini database containing a scoped data set for a user, IP address or other dimension on the incident data

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFirewallViolations

See Also

IFirewallViolations Members
Walter.Web.FireWall.RuleEngine Namespace


IFirewallViolations Members

The IFirewallViolations type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified incident.
Public method | GetEntries()()()() | Gets the entries.
Public method | GetEntries(array<GeoLocation>[]()[][]) | Get all entries on a given location
Public method | GetEntries(Int64, Int64) | Get all active incidents for a given IP CIDR range
Public method | GetEntries(DateTime, DateTime) | Get all active incidents for a given date range
Public method | GetEntries(Int64, DateTime) | Gets the entries belonging to a page request on a given date .
Public method | GetEntries(IFirewallUser) | Get all incidents that belong to a user
Public method | GetEntries(UserTypes) | Get all incidents that belong to a user type (all flags must match)
Public method | GetEntries(String) | Gets the entries belonging to a page request on a given date .
Public method | Remove | Removes the specified incident.

Properties

 | Name | Description
Public property | Count | the active incidents in the container

See Also

IFirewallViolations Interface
Walter.Web.FireWall.RuleEngine Namespace


IFirewallViolations Methods

The IFirewallViolations type exposes the following members.

Methods

 | Name | Description
Public method | Add | Adds the specified incident.
Public method | GetEntries()()()() | Gets the entries.
Public method | GetEntries(array<GeoLocation>[]()[][]) | Get all entries on a given location
Public method | GetEntries(Int64, Int64) | Get all active incidents for a given IP CIDR range
Public method | GetEntries(DateTime, DateTime) | Get all active incidents for a given date range
Public method | GetEntries(Int64, DateTime) | Gets the entries belonging to a page request on a given date .
Public method | GetEntries(IFirewallUser) | Get all incidents that belong to a user
Public method | GetEntries(UserTypes) | Get all incidents that belong to a user type (all flags must match)
Public method | GetEntries(String) | Gets the entries belonging to a page request on a given date .
Public method | Remove | Removes the specified incident.

See Also

IFirewallViolations Interface
Walter.Web.FireWall.RuleEngine Namespace


Add Method

IFirewallViolations..::..Add Method

Adds the specified incident.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    IIncident incident,
    int timeout
)

Parameters

incident
Type: Walter.Web.FireWall.Models..::..IIncident
The incident.
timeout
Type: Int32
The timeout.

See Also

IFirewallViolations Interface
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method

IFirewallViolations..::..GetEntries Method

Overload List

 | Name | Description
Public method | GetEntries()()()() | Gets the entries.
Public method | GetEntries(array<GeoLocation>[]()[][]) | Get all entries on a given location
Public method | GetEntries(Int64, Int64) | Get all active incidents for a given IP CIDR range
Public method | GetEntries(DateTime, DateTime) | Get all active incidents for a given date range
Public method | GetEntries(Int64, DateTime) | Gets the entries belonging to a page request on a given date .
Public method | GetEntries(IFirewallUser) | Get all incidents that belong to a user
Public method | GetEntries(UserTypes) | Get all incidents that belong to a user type (all flags must match)
Public method | GetEntries(String) | Gets the entries belonging to a page request on a given date .

See Also

IFirewallViolations Interface
IFirewallViolations Members
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method

IFirewallViolations..::..GetEntries Method

Gets the entries.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries()

Return Value

Queue<Incident>.

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (GeoLocation[])

IFirewallViolations..::..GetEntries Method (array<GeoLocation>[]()[][])

Get all entries on a given location

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    params GeoLocation[] location
)

Parameters

location
Type: array<GeoLocation>[]()[][]
the locations to get

Return Value

Queue<Incident>.

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (Int64, Int64)

IFirewallViolations..::..GetEntries Method (Int64, Int64)

Get all active incidents for a given IP CIDR range

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    long cidrFrom,
    long cidrTill
)

Parameters

cidrFrom
Type: Int64
start entry
cidrTill
Type: Int64
end entry

Return Value

Queue<Incident>.

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (DateTime, DateTime)

IFirewallViolations..::..GetEntries Method (DateTime, DateTime)

Get all active incidents for a given date range

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    DateTime fromUtc,
    DateTime tillUtc
)

Parameters

fromUtc
Type: DateTime
start entry
tillUtc
Type: DateTime
end entry

Return Value

Queue<Incident>.

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (Int64, DateTime)

IFirewallViolations..::..GetEntries Method (Int64, DateTime)

Gets the entries belonging to a page request on a given date .

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    long pageRequestId,
    DateTime utcStartDate
)

Parameters

pageRequestId
Type: Int64
The page request identifier.
utcStartDate
Type: DateTime
Early start data

Return Value

Queue<IIncident>.

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (IFirewallUser)

IFirewallViolations..::..GetEntries Method (IFirewallUser)

Get all incidents that belong to a user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    IFirewallUser user
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
user to retrieve

Return Value

Queue<IIncident>

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (UserTypes)

IFirewallViolations..::..GetEntries Method (UserTypes)

Get all incidents that belong to a user type (all flags must match)

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    UserTypes userTypes
)

Parameters

userTypes
Type: Walter.Web.FireWall..::..UserTypes
type of user (group assignment)

Return Value

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


GetEntries Method (String)

IFirewallViolations..::..GetEntries Method (String)

Gets the entries belonging to a page request on a given date .

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Queue<IIncident> GetEntries(
    string pageTraceId
)

Parameters

pageTraceId
Type: String
The page request identifier.

Return Value

Queue<IIncident>.

See Also

IFirewallViolations Interface
GetEntries Overload
Walter.Web.FireWall.RuleEngine Namespace


Remove Method

IFirewallViolations..::..Remove Method

Removes the specified incident.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Remove(
    IIncident incident,
    int timeout
)

Parameters

incident
Type: Walter.Web.FireWall.Models..::..IIncident
The incident.
timeout
Type: Int32
The timeout.

See Also

IFirewallViolations Interface
Walter.Web.FireWall.RuleEngine Namespace


IFirewallViolations Properties

The IFirewallViolations type exposes the following members.

Properties

 | Name | Description
Public property | Count | the active incidents in the container

See Also

IFirewallViolations Interface
Walter.Web.FireWall.RuleEngine Namespace


Count Property

IFirewallViolations..::..Count Property

the active incidents in the container

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int Count { get; }

See Also

IFirewallViolations Interface
Walter.Web.FireWall.RuleEngine Namespace


IIncidentDatabase Interface

Access the Incidents database of the firewall

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IIncidentDatabase

Remarks

The interface is disposed by the firewall owning the interface

See Also

IIncidentDatabase Members
Walter.Web.FireWall.RuleEngine Namespace


IIncidentDatabase Members

The IIncidentDatabase type exposes the following members.

Methods

 | Name | Description
Public method | Active()()()() | Active incidents
Public method | Active(Int64, Int64) | Get all active incidents for a given IP CIDR range
Public method | Active(IFirewallUser) | Get all incidents that are no-longer active for a given user
Public method | Active(array<GeoLocation>[]()[][]) | Get all active incidents recorded against one or more geographical locations
Public method | Active(Int64) | Get all active incidents for a given IP CIDR
Public method | Active(DateTime, DateTime) | Get all active incidents for a given date range
Public method | Active(UserTypes) | All incidents for a given user-type like UserTypes.IsHuman || UserTypes.IsMalicious
Public method | Add(FireWallDiskViolation) | Allow for the saving of firewall disk violations
Public method | Add(IIncident) | Add or update an incident
Public method | All(Nullable<(Of <<'(TimeSpan>)>>)) | Get all incidents active and inactive
Public method | All(Boolean, Nullable<(Of <<'(TimeSpan>)>>)) | Get all incidents active and inactive with distinct reason categories
Public method | Attacks | Attacks counted in time-frame
Public method | CountBlockedUsers | count all users that are currently blocked
Public method | ExpiredActiveIncidents | Get expired active incidents
Public method | GetDiskChanges | get all disk changes around a specific date
Public method | Inactive(DateTime, DateTime) | Get all incidents that are no-longer active for a given date range
Public method | Inactive(Int64) | Get all incidents that are no-longer active for a given IP address
Public method | Inactive(array<GeoLocation>[]()[][]) | Get all incidents that are no-longer active against one or more geographical locations
Public method | Inactive(IFirewallUser) | All incidents for a given user
Public method | Inactive(Int64, Int64) | Get all inactive incidents for a given IP CIDR range
 | Instance | Access the default IIncidentDatabase instance used by the firewall
Public method | ISPIncidents | get the ISP incident stats
Public method | QueryIncidents | Queries the incidents for a page request (max 20 min old).
Public method | RecordDiscovery | Record user discovery for a page
Public method | RecordIgnoredIncident | record the suppressed incident
Public method | Save | Save data into long term storage
Public method | TryGet | tries and retrieves a entry out of the firewall for the user and IP
Public method | TryGetAbuseReport | get the abuse report belonging to the report ID
Public method | TryPop | tries to remove an entry for the user if it exists
Public method | TrySave | Save data into long term storage
Public method | UpdateExpiry | update the expiry data for the incident
Public method | UpdateInterceptLocation(Guid, InterceptLocations) | updates the intercept location for reporting by the tool doing the intercepting
Public method | UpdateInterceptLocation(IIncident) | updates the intercept location for reporting by the tool doing the intercepting
Public method | UpdateWhois | Updates and saves the WHOIS assignment for the IP address
Public method | Where | Retrieve the incidents that are missing data

Properties

 | Name | Description
Public property | IsReady | Gets a value indicating whether this instance is ready.
Public property | Status | The IO state of a the backing storage, only relevant for disk based storage systems

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


IIncidentDatabase Methods

The IIncidentDatabase type exposes the following members.

Methods

 | Name | Description
Public method | Active()()()() | Active incidents
Public method | Active(Int64, Int64) | Get all active incidents for a given IP CIDR range
Public method | Active(IFirewallUser) | Get all incidents that are no-longer active for a given user
Public method | Active(array<GeoLocation>[]()[][]) | Get all active incidents recorded against one or more geographical locations
Public method | Active(Int64) | Get all active incidents for a given IP CIDR
Public method | Active(DateTime, DateTime) | Get all active incidents for a given date range
Public method | Active(UserTypes) | All incidents for a given user-type like UserTypes.IsHuman || UserTypes.IsMalicious
Public method | Add(FireWallDiskViolation) | Allow for the saving of firewall disk violations
Public method | Add(IIncident) | Add or update an incident
Public method | All(Nullable<(Of <<'(TimeSpan>)>>)) | Get all incidents active and inactive
Public method | All(Boolean, Nullable<(Of <<'(TimeSpan>)>>)) | Get all incidents active and inactive with distinct reason categories
Public method | Attacks | Attacks counted in time-frame
Public method | CountBlockedUsers | count all users that are currently blocked
Public method | ExpiredActiveIncidents | Get expired active incidents
Public method | GetDiskChanges | get all disk changes around a specific date
Public method | Inactive(DateTime, DateTime) | Get all incidents that are no-longer active for a given date range
Public method | Inactive(Int64) | Get all incidents that are no-longer active for a given IP address
Public method | Inactive(array<GeoLocation>[]()[][]) | Get all incidents that are no-longer active against one or more geographical locations
Public method | Inactive(IFirewallUser) | All incidents for a given user
Public method | Inactive(Int64, Int64) | Get all inactive incidents for a given IP CIDR range
 | Instance | Access the default IIncidentDatabase instance used by the firewall
Public method | ISPIncidents | get the ISP incident stats
Public method | QueryIncidents | Queries the incidents for a page request (max 20 min old).
Public method | RecordDiscovery | Record user discovery for a page
Public method | RecordIgnoredIncident | record the suppressed incident
Public method | Save | Save data into long term storage
Public method | TryGet | tries and retrieves a entry out of the firewall for the user and IP
Public method | TryGetAbuseReport | get the abuse report belonging to the report ID
Public method | TryPop | tries to remove an entry for the user if it exists
Public method | TrySave | Save data into long term storage
Public method | UpdateExpiry | update the expiry data for the incident
Public method | UpdateInterceptLocation(Guid, InterceptLocations) | updates the intercept location for reporting by the tool doing the intercepting
Public method | UpdateInterceptLocation(IIncident) | updates the intercept location for reporting by the tool doing the intercepting
Public method | UpdateWhois | Updates and saves the WHOIS assignment for the IP address
Public method | Where | Retrieve the incidents that are missing data

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


Active Method

IIncidentDatabase..::..Active Method

Overload List

 | Name | Description
Public method | Active()()()() | Active incidents
Public method | Active(Int64, Int64) | Get all active incidents for a given IP CIDR range
Public method | Active(IFirewallUser) | Get all incidents that are no-longer active for a given user
Public method | Active(array<GeoLocation>[]()[][]) | Get all active incidents recorded against one or more geographical locations
Public method | Active(Int64) | Get all active incidents for a given IP CIDR
Public method | Active(DateTime, DateTime) | Get all active incidents for a given date range
Public method | Active(UserTypes) | All incidents for a given user-type like UserTypes.IsHuman || UserTypes.IsMalicious

See Also

IIncidentDatabase Interface
IIncidentDatabase Members
Walter.Web.FireWall.RuleEngine Namespace


Active Method

IIncidentDatabase..::..Active Method

Active incidents

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active()

Return Value

Dataset with 0 or more records

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Active Method (Int64, Int64)

IIncidentDatabase..::..Active Method (Int64, Int64)

Get all active incidents for a given IP CIDR range

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active(
    long cidrFrom,
    long cidrTill
)

Parameters

cidrFrom
Type: Int64
start entry
cidrTill
Type: Int64
end entry

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Active Method (IFirewallUser)

IIncidentDatabase..::..Active Method (IFirewallUser)

Get all incidents that are no-longer active for a given user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active(
    IFirewallUser user
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Active Method (GeoLocation[])

IIncidentDatabase..::..Active Method (array<GeoLocation>[]()[][])

Get all active incidents recorded against one or more geographical locations

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active(
    params GeoLocation[] location
)

Parameters

location
Type: array<GeoLocation>[]()[][]
the location to filter

Return Value

list of active incidents in a given location

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Active Method (Int64)

IIncidentDatabase..::..Active Method (Int64)

Get all active incidents for a given IP CIDR

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active(
    long ipAddress
)

Parameters

ipAddress
Type: Int64
the address

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Active Method (DateTime, DateTime)

IIncidentDatabase..::..Active Method (DateTime, DateTime)

Get all active incidents for a given date range

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active(
    DateTime fromUtc,
    DateTime tillUtc
)

Parameters

fromUtc
Type: DateTime
scope start entry
tillUtc
Type: DateTime
scope end entry

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Active Method (UserTypes)

IIncidentDatabase..::..Active Method (UserTypes)

All incidents for a given user-type like UserTypes.IsHuman || UserTypes.IsMalicious

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Active(
    UserTypes userType
)

Parameters

userType
Type: Walter.Web.FireWall..::..UserTypes
The UserType, individual flags are not considered

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Active Overload
Walter.Web.FireWall.RuleEngine Namespace


Add Method

IIncidentDatabase..::..Add Method

Overload List

 | Name | Description
Public method | Add(FireWallDiskViolation) | Allow for the saving of firewall disk violations
Public method | Add(IIncident) | Add or update an incident

See Also

IIncidentDatabase Interface
IIncidentDatabase Members
Walter.Web.FireWall.RuleEngine Namespace


Add Method (FireWallDiskViolation)

IIncidentDatabase..::..Add Method (FireWallDiskViolation)

Allow for the saving of firewall disk violations

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    FireWallDiskViolation item
)

Parameters

item
Type: Walter.Web.FireWall.ViewModels..::..FireWallDiskViolation

See Also

IIncidentDatabase Interface
Add Overload
Walter.Web.FireWall.RuleEngine Namespace


Add Method (IIncident)

IIncidentDatabase..::..Add Method (IIncident)

Add or update an incident

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    IIncident insedent
)

Parameters

insedent
Type: Walter.Web.FireWall.Models..::..IIncident
the incident to add or update

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Add Overload
Walter.Web.FireWall.RuleEngine Namespace


All Method

IIncidentDatabase..::..All Method

Overload List

 | Name | Description
Public method | All(Nullable<(Of <<'(TimeSpan>)>>)) | Get all incidents active and inactive
Public method | All(Boolean, Nullable<(Of <<'(TimeSpan>)>>)) | Get all incidents active and inactive with distinct reason categories

See Also

IIncidentDatabase Interface
IIncidentDatabase Members
Walter.Web.FireWall.RuleEngine Namespace


All Method (Nullable(TimeSpan))

IIncidentDatabase..::..All Method (Nullable<(Of <(<'TimeSpan>)>)>)

Get all incidents active and inactive

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> All(
    Nullable<TimeSpan> limitTo
)

Parameters

limitTo
Type: Nullable <(Of <(<'TimeSpan>)>)>
optionally limit the data for a given timespan to limit the data to

Return Value

list of active incidents

Remarks

Please note that depending on the data storage delta this could be several hundred gigabytes

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
All Overload
Walter.Web.FireWall.RuleEngine Namespace


All Method (Boolean, Nullable(TimeSpan))

IIncidentDatabase..::..All Method (Boolean, Nullable<(Of <(<'TimeSpan>)>)>)

Get all incidents active and inactive with distinct reason categories

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> All(
    bool distinct,
    Nullable<TimeSpan> limitTo
)

Parameters

distinct
Type: Boolean
If true then incidents with several reason flags will be listed independently
limitTo
Type: Nullable <(Of <(<'TimeSpan>)>)>
Optionally limit the data for a given timespan to limit the data to

Return Value

list of active incidents

Remarks

Please note that depending on the data storage delta this could be several hundred gigabytes

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
All Overload
Walter.Web.FireWall.RuleEngine Namespace


Attacks Method

IIncidentDatabase..::..Attacks Method

Attacks counted in time-frame

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ValueTuple<int, int> Attacks(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
time frame

Return Value

(int triggered, int requests)

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


CountBlockedUsers Method

IIncidentDatabase..::..CountBlockedUsers Method

count all users that are currently blocked

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int CountBlockedUsers(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
the time that they would have been blocked

Return Value

the number of blocked users

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


ExpiredActiveIncidents Method

IIncidentDatabase..::..ExpiredActiveIncidents Method

Get expired active incidents

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> ExpiredActiveIncidents()

Return Value

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


GetDiskChanges Method

IIncidentDatabase..::..GetDiskChanges Method

get all disk changes around a specific date

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<FireWallDiskViolation> GetDiskChanges(
    TimeSpan range,
    params DateTime[] dates
)

Parameters

range
Type: TimeSpan
the accuracy for the data
dates
Type: array<DateTime>[]()[][]
the UTC dates to test for

Return Value

this will get all changes

Remarks

will also include random changes not associated with any incidents detected

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


Inactive Method

IIncidentDatabase..::..Inactive Method

Overload List

 | Name | Description
Public method | Inactive(DateTime, DateTime) | Get all incidents that are no-longer active for a given date range
Public method | Inactive(Int64) | Get all incidents that are no-longer active for a given IP address
Public method | Inactive(array<GeoLocation>[]()[][]) | Get all incidents that are no-longer active against one or more geographical locations
Public method | Inactive(IFirewallUser) | All incidents for a given user
Public method | Inactive(Int64, Int64) | Get all inactive incidents for a given IP CIDR range

See Also

IIncidentDatabase Interface
IIncidentDatabase Members
Walter.Web.FireWall.RuleEngine Namespace


Inactive Method (DateTime, DateTime)

IIncidentDatabase..::..Inactive Method (DateTime, DateTime)

Get all incidents that are no-longer active for a given date range

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Inactive(
    DateTime fromUtc,
    DateTime tillUtc
)

Parameters

fromUtc
Type: DateTime
Starting date for the incidents to be returned
tillUtc
Type: DateTime
end date for the incidents to be returned

Return Value

Dataset with 0 or more data entries

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Inactive Overload
Walter.Web.FireWall.RuleEngine Namespace


Inactive Method (Int64)

IIncidentDatabase..::..Inactive Method (Int64)

Get all incidents that are no-longer active for a given IP address

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Inactive(
    long ipAddress
)

Parameters

ipAddress
Type: Int64
the address

Return Value

Dataset with 0 or more data entries

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Inactive Overload
Walter.Web.FireWall.RuleEngine Namespace


Inactive Method (GeoLocation[])

IIncidentDatabase..::..Inactive Method (array<GeoLocation>[]()[][])

Get all incidents that are no-longer active against one or more geographical locations

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Inactive(
    params GeoLocation[] location
)

Parameters

location
Type: array<GeoLocation>[]()[][]
the location to filter

Return Value

list of active incidents in a given location

See Also

IIncidentDatabase Interface
Inactive Overload
Walter.Web.FireWall.RuleEngine Namespace


Inactive Method (IFirewallUser)

IIncidentDatabase..::..Inactive Method (IFirewallUser)

All incidents for a given user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Inactive(
    IFirewallUser user
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Inactive Overload
Walter.Web.FireWall.RuleEngine Namespace


Inactive Method (Int64, Int64)

IIncidentDatabase..::..Inactive Method (Int64, Int64)

Get all inactive incidents for a given IP CIDR range

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Inactive(
    long cidrFrom,
    long cidrTill
)

Parameters

cidrFrom
Type: Int64
start entry
cidrTill
Type: Int64
end entry

Return Value

list of active incidents

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Inactive Overload
Walter.Web.FireWall.RuleEngine Namespace


Instance Method

IIncidentDatabase..::..Instance Method

Access the default IIncidentDatabase instance used by the firewall

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Nullable<IIncidentDatabase> Instance()

Return Value

Access the IncidentDatabase

Remarks

You can access the active storage system in the Incidents property

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


ISPIncidents Method

IIncidentDatabase..::..ISPIncidents Method

get the ISP incident stats

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<ISPIncident> ISPIncidents(
    TimeSpan limitTo,
    int orderByColumn,
    int page,
    int rowsPerPage,
    int fromDuration,
    int tillDuration,
    float minFrequency,
    float maxFrequency,
    int interval,
    out int pageCount
)

Parameters

limitTo
Type: TimeSpan
the incident
orderByColumn
Type: Int32
page
Type: Int32
rowsPerPage
Type: Int32
fromDuration
Type: Int32
lower bound duration of attack
tillDuration
Type: Int32
upper bound duration of attack
minFrequency
Type: Single
attacks per interval, 0 for all
maxFrequency
Type: Single
attacks per interval, 0 for all
interval
Type: Int32
interval scale 1=min, 2= hour, 3=day,4=week,5=month,6=quarter,7=year
pageCount
Type: Int32 %
pages of data available

Return Value

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


QueryIncidents Method

IIncidentDatabase..::..QueryIncidents Method

Queries the incidents for a page request (max 20 min old).

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> QueryIncidents(
    long pageRequestId
)

Parameters

pageRequestId
Type: Int64
The page request identifier.

Return Value

IList<IIncident>.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


RecordDiscovery Method

IIncidentDatabase..::..RecordDiscovery Method

Record user discovery for a page

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void RecordDiscovery(
    Discovery discovery
)

Parameters

discovery
Type: Discovery

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


RecordIgnoredIncident Method

IIncidentDatabase..::..RecordIgnoredIncident Method

record the suppressed incident

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void RecordIgnoredIncident(
    FireWallIncidentEventArgs eventArgs
)

Parameters

eventArgs
Type: Walter.Web.FireWall.EventArguments..::..FireWallIncidentEventArgs

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


Save Method

IIncidentDatabase..::..Save Method

Save data into long term storage

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Save()

Remarks

If database based storage this will call index maintenance procedure relative to the incident databases, you may update the procedure to best fit your own local installation.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


TryGet Method

IIncidentDatabase..::..TryGet Method

tries and retrieves a entry out of the firewall for the user and IP

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGet(
    IFirewallUser user,
    out Nullable<IFirewallViolations> violations
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user to retrieve
violations
Type: Nullable <(Of <(<' IFirewallViolations >)>)>%
violation for the user and or IP

Return Value

True if there where violations

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


TryGetAbuseReport Method

IIncidentDatabase..::..TryGetAbuseReport Method

get the abuse report belonging to the report ID

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetAbuseReport(
    Guid id,
    out byte[] pdf
)

Parameters

id
Type: Guid
pdf
Type: array< Byte >[]()[][]%
PDB bytes

Return Value

True if found

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


TryPop Method

IIncidentDatabase..::..TryPop Method

tries to remove an entry for the user if it exists

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryPop(
    IFirewallUser user,
    out Nullable<IFirewallViolations> violations
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
the user to pop the violations from
violations
Type: Nullable <(Of <(<' IFirewallViolations >)>)>%
the violations, can be null if false was returned

Return Value

True if violation was removed

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


TrySave Method

IIncidentDatabase..::..TrySave Method

Save data into long term storage

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void TrySave()

Remarks

If database based storage this will call index maintenance procedure relative to the incident databases, you may update the procedure to best fit your own local installation.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


UpdateExpiry Method

IIncidentDatabase..::..UpdateExpiry Method

update the expiry data for the incident

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateExpiry(
    IIncident incident
)

Parameters

incident
Type: Walter.Web.FireWall.Models..::..IIncident

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


UpdateInterceptLocation Method

IIncidentDatabase..::..UpdateInterceptLocation Method

Overload List

 | Name | Description
Public method | UpdateInterceptLocation(Guid, InterceptLocations) | updates the intercept location for reporting by the tool doing the intercepting
Public method | UpdateInterceptLocation(IIncident) | updates the intercept location for reporting by the tool doing the intercepting

See Also

IIncidentDatabase Interface
IIncidentDatabase Members
Walter.Web.FireWall.RuleEngine Namespace


UpdateInterceptLocation Method (Guid, InterceptLocations)

IIncidentDatabase..::..UpdateInterceptLocation Method (Guid, InterceptLocations)

updates the intercept location for reporting by the tool doing the intercepting

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateInterceptLocation(
    Guid incidentId,
    InterceptLocations location
)

Parameters

incidentId
Type: Guid
the incident id
location
Type: Walter.BOM..::..InterceptLocations
the flag indicating the location

See Also

IIncidentDatabase Interface
UpdateInterceptLocation Overload
Walter.Web.FireWall.RuleEngine Namespace


UpdateInterceptLocation Method (IIncident)

IIncidentDatabase..::..UpdateInterceptLocation Method (IIncident)

updates the intercept location for reporting by the tool doing the intercepting

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateInterceptLocation(
    IIncident incident
)

Parameters

incident
Type: Walter.Web.FireWall.Models..::..IIncident
the incident

See Also

IIncidentDatabase Interface
UpdateInterceptLocation Overload
Walter.Web.FireWall.RuleEngine Namespace


UpdateWhois Method

IIncidentDatabase..::..UpdateWhois Method

Updates and saves the WHOIS assignment for the IP address

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void UpdateWhois(
    IIncident item,
    IWhois who
)

Parameters

item
Type: Walter.Web.FireWall.Models..::..IIncident
the incident
who
Type: IWhois
WHOIS data

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


Where Method

IIncidentDatabase..::..Where Method

Retrieve the incidents that are missing data

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IIncident> Where(
    IncidentDatataManagment filter,
    int rows,
    int retry
)

Parameters

filter
Type: Walter.Web.FireWall.RuleEngine..::..IncidentDatataManagment
the filter to apply
rows
Type: Int32
The number of rows to return, -1 for no filter
retry
Type: Int32
counter for how often deadlock retry was called by it self

Return Value

all items in scope

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


IIncidentDatabase Properties

The IIncidentDatabase type exposes the following members.

Properties

 | Name | Description
Public property | IsReady | Gets a value indicating whether this instance is ready.
Public property | Status | The IO state of a the backing storage, only relevant for disk based storage systems

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


IsReady Property

IIncidentDatabase..::..IsReady Property

Gets a value indicating whether this instance is ready.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsReady { get; }

Field Value

true if this instance is ready; otherwise, false.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


Status Property

IIncidentDatabase..::..Status Property

The IO state of a the backing storage, only relevant for disk based storage systems

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ObjectIOState Status { get; }

Remarks

If larger dataset are collected you need to consider system limitations like disk read and write speed.

See Also

IIncidentDatabase Interface
Walter.Web.FireWall.RuleEngine Namespace


IncidentDatataManagment Enumeration

Enum IncidentDatataManagment contains a method to filter incidents for management interface

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum IncidentDatataManagment

Members

Member name | Description
NotSet | is not set
WhoisDataMissing | Get those WHOIS data is missing
GeoDataMissing | Get those that do not contain a valid country code

See Also

Walter.Web.FireWall.RuleEngine Namespace


IRuntimeRulesEngine Interface

Interface IRuntimeRulesEngine allows to access the rule-engine's external rules (those you invoke in your code) as these rules may have aditional methods or considerations that are not maintain

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IRuntimeRulesEngine

See Also

IRuntimeRulesEngine Members
Walter.Web.FireWall.RuleEngine Namespace


IRuntimeRulesEngine Members

The IRuntimeRulesEngine type exposes the following members.

Methods

 | Name | Description
Public method | HasRuleMappedToIncedent | Determines whether [has rule mapped to incident] [the specified page].
Public method | TryGetRuntimeFilter | Tries the get runtime filter.

See Also

IRuntimeRulesEngine Interface
Walter.Web.FireWall.RuleEngine Namespace


IRuntimeRulesEngine Methods

The IRuntimeRulesEngine type exposes the following members.

Methods

 | Name | Description
Public method | HasRuleMappedToIncedent | Determines whether [has rule mapped to incident] [the specified page].
Public method | TryGetRuntimeFilter | Tries the get runtime filter.

See Also

IRuntimeRulesEngine Interface
Walter.Web.FireWall.RuleEngine Namespace


HasRuleMappedToIncedent Method

IRuntimeRulesEngine..::..HasRuleMappedToIncedent Method

Determines whether [has rule mapped to incident] [the specified page].

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool HasRuleMappedToIncedent(
    IPageRequest page,
    IIncident incident,
    out Nullable<IIncidentAction> action
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page.
incident
Type: Walter.Web.FireWall.Models..::..IIncident
The incident.
action
Type: Nullable <(Of <(<' IIncidentAction >)>)>%
The action.

Return Value

true if [has rule mapped to incident] [the specified page]; otherwise, false.

See Also

IRuntimeRulesEngine Interface
Walter.Web.FireWall.RuleEngine Namespace


TryGetRuntimeFilter Method

IRuntimeRulesEngine..::..TryGetRuntimeFilter Method

Tries the get runtime filter.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool TryGetRuntimeFilter(
    IFirewallUser user,
    out Nullable<IRuntimeRules> runtimeRule
)

Parameters

user
Type: Walter.Web.FireWall.Models..::..IFirewallUser
The user.
runtimeRule
Type: Nullable <(Of <(<' IRuntimeRules >)>)>%
The runtime rule.

Return Value

true if XXXX, false otherwise.

See Also

IRuntimeRulesEngine Interface
Walter.Web.FireWall.RuleEngine Namespace


KnownRule Enumeration

Enum KnownRules

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum KnownRule

Members

Member name | Description
None | The none
Google | The google type of snooping
DDOS | The ddos
Pattern | The pattern type of rules
Scrubbing | The scrubbing rule
WhiteListed | The rule states that the item is white listed

See Also

Walter.Web.FireWall.RuleEngine Namespace


PatternLocations Enumeration

The enum PatternLocation determines or documents where a pattern was expected to have matched

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum PatternLocations

Members

Member name | Description
None | The location was not set or does not apply
Path | The URL's path
Query | The URL's query
Model | The submitted model
Header | The submitted header
Cookie | The submitted cookie
Domain | The domain is not valid

Remarks

Useful when you discover your firewall pattern recognition rules are triggered during development and you would like to know what rule in what location triggered the patter

See Also

Walter.Web.FireWall.RuleEngine Namespace


RegExRule Class

Class RegExRule. Implements the FrequencyRule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class RegExRule : FrequencyRule

Inheritance Hierarchy

Walter.Web.FireWall.Annotations..::..BaseFireWallAttribute
Walter.Web.FireWall.RuleEngine..::..FireWallRule
Walter.Web.FireWall.RuleEngine..::..FrequencyRule
Walter.Web.FireWall.RuleEngine..::..RegExRule

See Also

RegExRule Members
Walter.Web.FireWall.RuleEngine Namespace
Walter.Web.FireWall.RuleEngine..::..FrequencyRule


RegExRule Members

The RegExRule type exposes the following members.

Constructors

 | Name | Description
Public method | RegExRule | Initializes a new instance of the RegExRule class.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip address].
Public method | IsApplicable(IPageRequest) | Determines whether [is] [the specified request].

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement (Inherited from FireWallRule.)
Public property | Description | Gets or sets the description. (Inherited from FireWallRule.)
Public property | Duration | Duration a rule is in effect (block and allow) (Inherited from FireWallRule.)
Public property | Group | the category of the rule (Inherited from FireWallRule.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name. (Inherited from FireWallRule.)
Public property | Occurance | frequency that we will allow it to happen in a given timespan (Inherited from FrequencyRule.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RegEdit | Gets or sets the reg edit.
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule (Inherited from FireWallRule.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TimeSpan | The timespan a specific frequency of this rule may be violated (Inherited from FrequencyRule.)

See Also

RegExRule Class
Walter.Web.FireWall.RuleEngine Namespace


RegExRule Constructor

Initializes a new instance of the RegExRule class.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RegExRule(
    string regex,
    RegexOptions option
)

Parameters

regex
Type: String
The regex.
option
Type: RegexOptions
The option.

See Also

RegExRule Class
Walter.Web.FireWall.RuleEngine Namespace


RegExRule Methods

The RegExRule type exposes the following members.

Methods

 | Name | Description
Public method | Equals(Nullable<(Of <<'(Object>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | Equals(Nullable<(Of <<'(BaseFireWallAttribute>)>>)) | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from BaseFireWallAttribute.)
Public method | GetHashCode | Gets the hash code. (Inherited from BaseFireWallAttribute.)
Public method | GetRedirect | the redirect assigned to the attribute (Inherited from BaseFireWallAttribute.)
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip address].
Public method | IsApplicable(IPageRequest) | Determines whether [is] [the specified request].

See Also

RegExRule Class
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method

RegExRule..::..IsApplicable Method

Overload List

 | Name | Description
Public method | IsApplicable(IPAddress) | Determines whether [is] [the specified ip address].
Public method | IsApplicable(IPageRequest) | Determines whether [is] [the specified request].

See Also

RegExRule Class
RegExRule Members
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPAddress)

RegExRule..::..IsApplicable Method (IPAddress)

Determines whether [is] [the specified ip address].

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsApplicable(
    IPAddress ip
)

Parameters

ip
Type: IPAddress
The IP address.

Return Value

true if [is] [the specified ip address]; otherwise, false.

See Also

RegExRule Class
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


IsApplicable Method (IPageRequest)

RegExRule..::..IsApplicable Method (IPageRequest)

Determines whether [is] [the specified request].

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsApplicable(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The request.

Return Value

true if [is] [the specified request]; otherwise, false.

See Also

RegExRule Class
IsApplicable Overload
Walter.Web.FireWall.RuleEngine Namespace


RegExRule Properties

The RegExRule type exposes the following members.

Properties

 | Name | Description
Public property | BlockDuration | The duration for the violation to expire (Inherited from BaseFireWallAttribute.)
Public property | DefaultAction | action to implement (Inherited from FireWallRule.)
Public property | Description | Gets or sets the description. (Inherited from FireWallRule.)
Public property | Duration | Duration a rule is in effect (block and allow) (Inherited from FireWallRule.)
Public property | Group | the category of the rule (Inherited from FireWallRule.)
Public property | Id | URL Query parameter (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttempts | if not assigned it will default to rule engine (Inherited from BaseFireWallAttribute.)
Public property | MaximumAttemptsIn | Maximum attempts in (Inherited from BaseFireWallAttribute.)
Public property | Modules | The guard module covered by the Attribute (Inherited from BaseFireWallAttribute.)
Public property | Name | Gets or sets the name. (Inherited from FireWallRule.)
Public property | Occurance | frequency that we will allow it to happen in a given timespan (Inherited from FrequencyRule.)
Public property | Reasons | The firewall Block Reason for a given violation (Inherited from BaseFireWallAttribute.)
Public property | RedirectToAction | redirect to action an action in the application (Inherited from BaseFireWallAttribute.)
Public property | RedirectToController | Redirect to a controller in the application (Inherited from BaseFireWallAttribute.)
Public property | redirectToUrl | If set, it will indicate to redirect to external URL (Inherited from BaseFireWallAttribute.)
Public property | RegEdit | Gets or sets the reg edit.
Public property | RepeatViolations | Control how to act when repeat violations are encountered (Inherited from BaseFireWallAttribute.)
Public property | Scope | The scope of a given rule (Inherited from FireWallRule.)
Public property | SlideExpiration | Slide the expiration (Inherited from BaseFireWallAttribute.)
Public property | TimeSpan | The timespan a specific frequency of this rule may be violated (Inherited from FrequencyRule.)

See Also

RegExRule Class
Walter.Web.FireWall.RuleEngine Namespace


RegEdit Property

RegExRule..::..RegEdit Property

Gets or sets the reg edit.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string RegEdit { get; set; }

Field Value

The reg edit.

See Also

RegExRule Class
Walter.Web.FireWall.RuleEngine Namespace


RuleFilters Enumeration

RuleFilter state how the rule should apply

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RuleFilters

Members

Member name | Description
None | Indicates that this is not filter rule (default)
SameUser | Scope limited to the user
SameIP | Scope a given IP Address
AnyUser | Irrespective of user
AnyIP | Irrespective of the IP address
AnyCountry | Any country
SameCountry | The same country
StaleUser | The user does not interact with the site
BumbBot | A dumb bot
SmartBot | The smart bot

See Also

Walter.Web.FireWall.RuleEngine Namespace


RuleGroups Enumeration

Group that a given rule belong to

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum RuleGroups

Members

Member name | Description
None | Rules not assigned a specific group
DOS | denial of service
CORS | Cross Site Scripting
GeoBlocking | Geo Blocked
Exploit | Exploit probe by bot or user
CookieHijacking | Cookie Hijacking
Manipulation | Manipulation of request, cookies or form data
Replay | Replay by user with tools like Fiddler, PostMan or Wire-shark
UrlFishing | Url fishing
BlackListedUser | Indicated the firewall rejected the user
BlackListedIp | indicates the firewall rejected the IP
BlacklistedSource | Indicated that the firewall rejected the source, could be a cloud provider or data-center
BlacklistedIndexService | Could be a search engine of a 3rd party that is indexing your size for intellectual property claims
SqlInjection | Detected a sql injection attempt
NotAHuman | only allow access to verified humans
TwoFactorManipulation | Indicates that a 2 factor authentication manipulation was attempted
SSLCertificateAttack | Mal-ware, Forged Certificate Authorities and MITM Attacks
BruteForceEntry | Will trigger if the

See Also

Walter.Web.FireWall.RuleEngine Namespace


RulesCollection Class

Thread-Safe collection of rules allowing for live updates to the rules database

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class RulesCollection

See Also

RulesCollection Members
Walter.Web.FireWall.RuleEngine Namespace


RulesCollection Members

The RulesCollection type exposes the following members.

Methods

 | Name | Description
Public method | Add | Add a rule to the collection of rules
Public method | AddRange | Adds the range of rules.
Public method | Clear | remove all rules, when all rules are removed the default allow all rule is also not available therefore no-one is allowed. The firewall will default to closed and not to open if something goes wrong.
Public method | Contains | Indicates a rule with the name exists
Public method | CopyTo | Copies the rules to an array
Public method | GetEnumerator | Returns an enumerator that iterates through the collection.
Public method | Remove(IFireWallRule) | remove a given rule based on the name
Public method | Remove(String) | remove a given rule based on the name
Public method | TryGet(String, Nullable<(Of <<'(IFireWallRule>)>>)%) | Will try to get a rule with the given key if it exists
Public method | TryGet(KnownRule, IFireWallRule%) | Tries to get a default rule.

Properties

 | Name | Description
Public property | Count | entries in the collection
Public property | IsReadOnly | states the rule engine is open for updates
Public property | Item | Will try to get and add or overwrite a rule, if null is assigned the rule is removed

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


RulesCollection Methods

The RulesCollection type exposes the following members.

Methods

 | Name | Description
Public method | Add | Add a rule to the collection of rules
Public method | AddRange | Adds the range of rules.
Public method | Clear | remove all rules, when all rules are removed the default allow all rule is also not available therefore no-one is allowed. The firewall will default to closed and not to open if something goes wrong.
Public method | Contains | Indicates a rule with the name exists
Public method | CopyTo | Copies the rules to an array
Public method | GetEnumerator | Returns an enumerator that iterates through the collection.
Public method | Remove(IFireWallRule) | remove a given rule based on the name
Public method | Remove(String) | remove a given rule based on the name
Public method | TryGet(String, Nullable<(Of <<'(IFireWallRule>)>>)%) | Will try to get a rule with the given key if it exists
Public method | TryGet(KnownRule, IFireWallRule%) | Tries to get a default rule.

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


Add Method

RulesCollection..::..Add Method

Add a rule to the collection of rules

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Add(
    IFireWallRule rule
)

Parameters

rule
Type: Walter.Web.FireWall.RuleEngine..::..IFireWallRule
The rule to add

Return Value

Will accept the rule if rule with the same name doesn't exist

Exceptions

Exception | Condition
[ArgumentNullException] | Rule mus be provided

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


AddRange Method

RulesCollection..::..AddRange Method

Adds the range of rules.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AddRange(
    IEnumerable<IFireWallRule> rules
)

Parameters

rules
Type: IEnumerable<(Of <(<' IFireWallRule >)>)>
The rules.

Exceptions

Exception | Condition
[ArgumentNullException] | Rules may not be null

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


Clear Method

RulesCollection..::..Clear Method

remove all rules, when all rules are removed the default allow all rule is also not available therefore no-one is allowed. The firewall will default to closed and not to open if something goes wrong.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Clear()

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


Contains Method

RulesCollection..::..Contains Method

Indicates a rule with the name exists

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Contains(
    IFireWallRule item
)

Parameters

item
Type: Walter.Web.FireWall.RuleEngine..::..IFireWallRule
The name to look for, please note that names are not case sensitive

Return Value

True if included

Exceptions

Exception | Condition
[ArgumentNullException] | Item may not be null

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


CopyTo Method

RulesCollection..::..CopyTo Method

Copies the rules to an array

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void CopyTo(
    IFireWallRule[] array,
    int arrayIndex
)

Parameters

array
Type: array<IFireWallRule>[]()[][]
The array to copy to
arrayIndex
Type: Int32
the index to start coping on

Remarks

The array will be resized if there is not enough space

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


GetEnumerator Method

RulesCollection..::..GetEnumerator Method

Returns an enumerator that iterates through the collection.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerator<IFireWallRule> GetEnumerator()

Return Value

An enumerator that can be used to iterate through the collection.

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


Remove Method

RulesCollection..::..Remove Method

Overload List

 | Name | Description
Public method | Remove(IFireWallRule) | remove a given rule based on the name
Public method | Remove(String) | remove a given rule based on the name

See Also

RulesCollection Class
RulesCollection Members
Walter.Web.FireWall.RuleEngine Namespace


Remove Method (IFireWallRule)

RulesCollection..::..Remove Method (IFireWallRule)

remove a given rule based on the name

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Remove(
    IFireWallRule item
)

Parameters

item
Type: Walter.Web.FireWall.RuleEngine..::..IFireWallRule
the rule to remove

Return Value

Will return true if the rule was removed

Exceptions

Exception | Condition
[ArgumentNullException] | Rule can't be null

See Also

RulesCollection Class
Remove Overload
Walter.Web.FireWall.RuleEngine Namespace


Remove Method (String)

RulesCollection..::..Remove Method (String)

remove a given rule based on the name

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool Remove(
    string name
)

Parameters

name
Type: String
the rule to remove

Return Value

Will return true if the rule was removed

See Also

RulesCollection Class
Remove Overload
Walter.Web.FireWall.RuleEngine Namespace


TryGet Method

RulesCollection..::..TryGet Method

Overload List

 | Name | Description
Public method | TryGet(String, Nullable<(Of <<'(IFireWallRule>)>>)%) | Will try to get a rule with the given key if it exists
Public method | TryGet(KnownRule, IFireWallRule%) | Tries to get a default rule.

See Also

RulesCollection Class
RulesCollection Members
Walter.Web.FireWall.RuleEngine Namespace


TryGet Method (String, Nullable(IFireWallRule))

RulesCollection..::..TryGet Method (String, Nullable<(Of <(<'IFireWallRule>)>)>%)

Will try to get a rule with the given key if it exists

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGet(
    string name,
    out Nullable<IFireWallRule> rule
)

Parameters

name
Type: String
The rule with a given name to get
rule
Type: Nullable <(Of <(<' IFireWallRule >)>)>%
The rule to extract

Return Value

The requested rule or NULL if a rule with the name doesn't exist

See Also

RulesCollection Class
TryGet Overload
Walter.Web.FireWall.RuleEngine Namespace


TryGet Method (KnownRule, IFireWallRule)

RulesCollection..::..TryGet Method (KnownRule, IFireWallRule%)

Tries to get a default rule.

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGet(
    KnownRule ruleName,
    out IFireWallRule rule
)

Parameters

ruleName
Type: Walter.Web.FireWall.RuleEngine..::..KnownRule
Name of the rule.
rule
Type: Walter.Web.FireWall.RuleEngine..::..IFireWallRule %
The rule.

Return Value

true if XXXX, false otherwise.

See Also

RulesCollection Class
TryGet Overload
Walter.Web.FireWall.RuleEngine Namespace


RulesCollection Properties

The RulesCollection type exposes the following members.

Properties

 | Name | Description
Public property | Count | entries in the collection
Public property | IsReadOnly | states the rule engine is open for updates
Public property | Item | Will try to get and add or overwrite a rule, if null is assigned the rule is removed

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


Count Property

RulesCollection..::..Count Property

entries in the collection

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Count { get; }

Field Value

The count.

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


IsReadOnly Property

RulesCollection..::..IsReadOnly Property

states the rule engine is open for updates

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsReadOnly { get; }

Field Value

true if this instance is read only; otherwise, false.

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


Item Property

RulesCollection..::..Item Property

Will try to get and add or overwrite a rule, if null is assigned the rule is removed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<IFireWallRule> this[
    string name
] { get; set; }

Parameters

name
Type: String
The rule with a given name to get

Return Value

The requested rule

See Also

RulesCollection Class
Walter.Web.FireWall.RuleEngine Namespace


UrlValidatedResult Enumeration

Enum UrlValidatedResult returns what rule was violated by the rule engine executing blockedPatterns

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum UrlValidatedResult

Members

Member name | Description
OK | The result is OK using the current rule-set
NotSupportedPlatform | The not supported platform
NotUsedPlugin | The not used plug-in
NoPublicAccessToAdministration | The no public access to administration
NoSuchDirectoryExists | The no such directory exists
NoUserAuthenticationExists | The no user authentication exists
NoOnlinePaymentSystemExists | The no on-line payment system exists
NoPublicAccessToConfigurationAllowed | The no public access to configuration allowed
NoPublicAccessToBackupsAllowed | The no public access to backups allowed
NoPublicAccessToFileDirectoryAllowed | The no public access to file directory allowed
NoPublicAccessToApplicationCodeAllowed | The no public access to application code allowed
UrlFishingSuspected | The URL fishing suspected
ScriptInjectionNotAllowed | The script injection not allowed
OperatingSystemAccessProhibited | The operating system access prohibited
DatabasesAreNotPubliclyAccessible | The databases are not publicly accessible
RequestFromBlacklistedCountry | The request from blacklisted country
RequestPerSecondLooksLikeScrubbingOrDDOS | The request per second looks like scrubbing or DDOS
CrossSiteUrlDetected | The cross site URL detected
SaltFromCookieAndSaltProvidedDoNotMatch | The salt from cookie and salt provided do not match
SaltWasNotProvidedInHeaderOfUrl | The salt was not provided in header of URL
SaltExpired | The salt expired
NoAccessToPaymentSystem | The no access to payment system
RequestFromBlacklistedCountryOrAtBrowser | The request from blacklisted country or at browser
AddhockFileAccess | The add-hock file access
QueryParameterInjection | Semantic URL attack detected as an query string is presented in such a way that it does not match the url's signature as parameters are added
QueryParameterOmission | Semantic URL attack detected as an query string is presented in such a way that it does not match the url's signature as parameters are left out
QueryParameterManipulation | Semantic URL attack detected as an query string is presented in such a way that it does not match the url's signature as parameters not compatible with the data type expected

See Also

Walter.Web.FireWall.RuleEngine Namespace


Walter.Web.FireWall.RuleEngine.Rules Namespace

Classes

 | Class | Description
Public class | ActionModelNotValidRule | Class ActionModelNotValidRule. Implements the IFireWallRuleTrigger
Public class | EncryptionManipulationDetectedRule | Class EncryptionManipulationDetectedRule. Implements the IFireWallRuleTrigger
Public class | GeoBlockingRule | Class GeoBlockingRule. Implements the IFireWallRuleTrigger
Public class | OtherBlockingRule | Class OtherBlockingRule. Implements the ActionModelNotValidRule
Public class | PenetrationDetectedRule | Class PenetrationDetectedRule. Implements the IFireWallRuleTrigger
Public class | WrongUserTypeRule | Class WrongUserTypeRule. Implements the ActionModelNotValidRule

Interfaces

 | Interface | Description
Public interface | IRuntimeRules | Interface IRuntimeRules

Enumerations

 | Enumeration | Description
Public enumeration | UserBlockingRule | User Blocking Rule are rules triggered by consumers of a IPageRequest indicating that the page request was used in activity that the developer did not like


ActionModelNotValidRule Class

Class ActionModelNotValidRule. Implements the IFireWallRuleTrigger

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class ActionModelNotValidRule : IFireWallRuleTrigger

See Also

ActionModelNotValidRule Members
Walter.Web.FireWall.RuleEngine.Rules Namespace
Walter.Web.FireWall..::..IFireWallRuleTrigger


ActionModelNotValidRule Members

The ActionModelNotValidRule type exposes the following members.

Constructors

 | Name | Description
Public method | ActionModelNotValidRule | Initializes a new instance of the ActionModelNotValidRule class.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets or sets the user.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


ActionModelNotValidRule Constructor

Initializes a new instance of the ActionModelNotValidRule class.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public ActionModelNotValidRule(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page providing context to the violation.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


ActionModelNotValidRule Properties

The ActionModelNotValidRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets or sets the user.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Address Property

ActionModelNotValidRule..::..Address Property

Gets or sets the address.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress Address { get; set; }

Field Value

The address.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Context Property

ActionModelNotValidRule..::..Context Property

Gets or sets the context.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts Context { get; set; }

Field Value

The context.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Expires Property

ActionModelNotValidRule..::..Expires Property

the date the incident will expire and is no longer used for repeat violations count

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Expires { get; }

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageRequestId Property

ActionModelNotValidRule..::..PageRequestId Property

Gets the page group identifier.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

Field Value

The page group identifier.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageTraceId Property

ActionModelNotValidRule..::..PageTraceId Property

The page request trace identifier

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string PageTraceId { get; }

Field Value

The page trace identifier.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Reason Property

ActionModelNotValidRule..::..Reason Property

Gets or sets the reason.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


SessionId Property

ActionModelNotValidRule..::..SessionId Property

Gets the session identifier that the active when the incident was reported.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

Field Value

The session identifier.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


TriggeredOnUrl Property

ActionModelNotValidRule..::..TriggeredOnUrl Property

The URL that triggered the event

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri TriggeredOnUrl { get; }

Field Value

The triggered on URL.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


User Property

ActionModelNotValidRule..::..User Property

Gets or sets the user.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFirewallUser User { get; set; }

Field Value

The user.

See Also

ActionModelNotValidRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


EncryptionManipulationDetectedRule Class

Class EncryptionManipulationDetectedRule. Implements the IFireWallRuleTrigger

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class EncryptionManipulationDetectedRule : IFireWallRuleTrigger

See Also

EncryptionManipulationDetectedRule Members
Walter.Web.FireWall.RuleEngine.Rules Namespace
Walter.Web.FireWall..::..IFireWallRuleTrigger


EncryptionManipulationDetectedRule Members

The EncryptionManipulationDetectedRule type exposes the following members.

Constructors

 | Name | Description
Public method | EncryptionManipulationDetectedRule | Initializes a new instance of the EncryptionManipulationDetectedRule class.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets or sets the user.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


EncryptionManipulationDetectedRule Constructor

Initializes a new instance of the EncryptionManipulationDetectedRule class.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public EncryptionManipulationDetectedRule(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
Page that triggered the incident

Exceptions

Exception | Condition
[System.ArgumentNullException] | page

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


EncryptionManipulationDetectedRule Properties

The EncryptionManipulationDetectedRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets or sets the user.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Address Property

EncryptionManipulationDetectedRule..::..Address Property

Gets or sets the address.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress Address { get; set; }

Field Value

The address.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Context Property

EncryptionManipulationDetectedRule..::..Context Property

Gets or sets the context.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts Context { get; set; }

Field Value

The context.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Expires Property

EncryptionManipulationDetectedRule..::..Expires Property

the date the incident will expire and is no longer used for repeat violations count

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Expires { get; }

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageRequestId Property

EncryptionManipulationDetectedRule..::..PageRequestId Property

Gets the page group identifier.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

Field Value

The page group identifier.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageTraceId Property

EncryptionManipulationDetectedRule..::..PageTraceId Property

The page request trace identifier

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string PageTraceId { get; }

Field Value

The page trace identifier.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Reason Property

EncryptionManipulationDetectedRule..::..Reason Property

Gets or sets the reason.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


SessionId Property

EncryptionManipulationDetectedRule..::..SessionId Property

Gets the session identifier that the active when the incident was reported.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

Field Value

The session identifier.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


TriggeredOnUrl Property

EncryptionManipulationDetectedRule..::..TriggeredOnUrl Property

The URL that triggered the event

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri TriggeredOnUrl { get; }

Field Value

The triggered on URL.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


User Property

EncryptionManipulationDetectedRule..::..User Property

Gets or sets the user.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFirewallUser User { get; set; }

Field Value

The user.

See Also

EncryptionManipulationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


GeoBlockingRule Class

Class GeoBlockingRule. Implements the IFireWallRuleTrigger

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoBlockingRule : IFireWallRuleTrigger

See Also

GeoBlockingRule Members
Walter.Web.FireWall.RuleEngine.Rules Namespace
Walter.Web.FireWall..::..IFireWallRuleTrigger


GeoBlockingRule Members

The GeoBlockingRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets or sets the user.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


GeoBlockingRule Properties

The GeoBlockingRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page request trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | The URL that triggered the event
Public property | User | Gets or sets the user.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Address Property

GeoBlockingRule..::..Address Property

Gets or sets the address.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress Address { get; set; }

Field Value

The address.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Context Property

GeoBlockingRule..::..Context Property

Gets or sets the context.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts Context { get; set; }

Field Value

The context.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Expires Property

GeoBlockingRule..::..Expires Property

the date the incident will expire and is no longer used for repeat violations count

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Expires { get; }

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageRequestId Property

GeoBlockingRule..::..PageRequestId Property

Gets the page group identifier.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

Field Value

The page group identifier.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageTraceId Property

GeoBlockingRule..::..PageTraceId Property

The page request trace identifier

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string PageTraceId { get; }

Field Value

The page trace identifier.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Reason Property

GeoBlockingRule..::..Reason Property

Gets or sets the reason.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


SessionId Property

GeoBlockingRule..::..SessionId Property

Gets the session identifier that the active when the incident was reported.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

Field Value

The session identifier.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


TriggeredOnUrl Property

GeoBlockingRule..::..TriggeredOnUrl Property

The URL that triggered the event

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri TriggeredOnUrl { get; }

Field Value

The triggered on URL.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


User Property

GeoBlockingRule..::..User Property

Gets or sets the user.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFirewallUser User { get; set; }

Field Value

The user.

See Also

GeoBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


IRuntimeRules Interface

Interface IRuntimeRules

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IRuntimeRules

See Also

IRuntimeRules Members
Walter.Web.FireWall.RuleEngine.Rules Namespace


IRuntimeRules Members

The IRuntimeRules type exposes the following members.

Properties

 | Name | Description
Public property | Incident | Gets the incident.
Public property | TriggeredRule | Gets the triggered rule.
Public property | User | Gets the user that the rule applies to.

See Also

IRuntimeRules Interface
Walter.Web.FireWall.RuleEngine.Rules Namespace


IRuntimeRules Properties

The IRuntimeRules type exposes the following members.

Properties

 | Name | Description
Public property | Incident | Gets the incident.
Public property | TriggeredRule | Gets the triggered rule.
Public property | User | Gets the user that the rule applies to.

See Also

IRuntimeRules Interface
Walter.Web.FireWall.RuleEngine.Rules Namespace


Incident Property

IRuntimeRules..::..Incident Property

Gets the incident.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IIncident Incident { get; }

Field Value

The incident.

See Also

IRuntimeRules Interface
Walter.Web.FireWall.RuleEngine.Rules Namespace


TriggeredRule Property

IRuntimeRules..::..TriggeredRule Property

Gets the triggered rule.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallRuleTrigger TriggeredRule { get; }

Field Value

The triggered rule.

See Also

IRuntimeRules Interface
Walter.Web.FireWall.RuleEngine.Rules Namespace


User Property

IRuntimeRules..::..User Property

Gets the user that the rule applies to.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFirewallUser User { get; }

Field Value

The user.

See Also

IRuntimeRules Interface
Walter.Web.FireWall.RuleEngine.Rules Namespace


OtherBlockingRule Class

Class OtherBlockingRule. Implements the ActionModelNotValidRule

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class OtherBlockingRule : ActionModelNotValidRule

Inheritance Hierarchy

Walter.Web.FireWall.RuleEngine.Rules..::..ActionModelNotValidRule
Walter.Web.FireWall.RuleEngine.Rules..::..OtherBlockingRule

See Also

OtherBlockingRule Members
Walter.Web.FireWall.RuleEngine.Rules Namespace
Walter.Web.FireWall.RuleEngine.Rules..::..ActionModelNotValidRule


OtherBlockingRule Members

The OtherBlockingRule type exposes the following members.

Constructors

 | Name | Description
Public method | OtherBlockingRule | Initializes a new instance of the OtherBlockingRule class.

Properties

 | Name | Description
Public property | Address | Gets or sets the address. (Inherited from ActionModelNotValidRule.)
Public property | Context | Gets or sets the context. (Inherited from ActionModelNotValidRule.)
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count (Inherited from ActionModelNotValidRule.)
Public property | PageRequestId | Gets the page group identifier. (Inherited from ActionModelNotValidRule.)
Public property | PageTraceId | The page request trace identifier (Inherited from ActionModelNotValidRule.)
Public property | Reason | Gets or sets the reason. (Inherited from ActionModelNotValidRule.)
Public property | SessionId | Gets the session identifier that the active when the incident was reported. (Inherited from ActionModelNotValidRule.)
Public property | TriggeredOnUrl | The URL that triggered the event (Inherited from ActionModelNotValidRule.)
Public property | User | Gets or sets the user. (Inherited from ActionModelNotValidRule.)

See Also

OtherBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


OtherBlockingRule Constructor

Initializes a new instance of the OtherBlockingRule class.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public OtherBlockingRule(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page providing context to the violation.

See Also

OtherBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


OtherBlockingRule Properties

The OtherBlockingRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address. (Inherited from ActionModelNotValidRule.)
Public property | Context | Gets or sets the context. (Inherited from ActionModelNotValidRule.)
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count (Inherited from ActionModelNotValidRule.)
Public property | PageRequestId | Gets the page group identifier. (Inherited from ActionModelNotValidRule.)
Public property | PageTraceId | The page request trace identifier (Inherited from ActionModelNotValidRule.)
Public property | Reason | Gets or sets the reason. (Inherited from ActionModelNotValidRule.)
Public property | SessionId | Gets the session identifier that the active when the incident was reported. (Inherited from ActionModelNotValidRule.)
Public property | TriggeredOnUrl | The URL that triggered the event (Inherited from ActionModelNotValidRule.)
Public property | User | Gets or sets the user. (Inherited from ActionModelNotValidRule.)

See Also

OtherBlockingRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PenetrationDetectedRule Class

Class PenetrationDetectedRule. Implements the IFireWallRuleTrigger

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class PenetrationDetectedRule : IFireWallRuleTrigger

See Also

PenetrationDetectedRule Members
Walter.Web.FireWall.RuleEngine.Rules Namespace
Walter.Web.FireWall..::..IFireWallRuleTrigger


PenetrationDetectedRule Members

The PenetrationDetectedRule type exposes the following members.

Constructors

 | Name | Description
Public method | PenetrationDetectedRule | Manually register a penetration attempt with the firewall

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | the URL that triggered the penetration
Public property | User | Gets or sets the user.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PenetrationDetectedRule Constructor

Manually register a penetration attempt with the firewall

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PenetrationDetectedRule(
    IPageRequest page,
    FirewallBlockReasons reasons
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page that triggered the incident
reasons
Type: Walter.BOM..::..FirewallBlockReasons
The reasons you triggered the blockage.

Exceptions

Exception | Condition
[ System.ArgumentNullException] | Page may not be null

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PenetrationDetectedRule Properties

The PenetrationDetectedRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address.
Public property | Context | Gets or sets the context.
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count
Public property | PageRequestId | Gets the page group identifier.
Public property | PageTraceId | The page trace identifier
Public property | Reason | Gets or sets the reason.
Public property | SessionId | Gets the session identifier that the active when the incident was reported.
Public property | TriggeredOnUrl | the URL that triggered the penetration
Public property | User | Gets or sets the user.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Address Property

PenetrationDetectedRule..::..Address Property

Gets or sets the address.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IPAddress Address { get; set; }

Field Value

The address.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Context Property

PenetrationDetectedRule..::..Context Property

Gets or sets the context.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallContexts Context { get; set; }

Field Value

The context.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Expires Property

PenetrationDetectedRule..::..Expires Property

the date the incident will expire and is no longer used for repeat violations count

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> Expires { get; }

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageRequestId Property

PenetrationDetectedRule..::..PageRequestId Property

Gets the page group identifier.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestId { get; }

Field Value

The page group identifier.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


PageTraceId Property

PenetrationDetectedRule..::..PageTraceId Property

The page trace identifier

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string PageTraceId { get; }

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Reason Property

PenetrationDetectedRule..::..Reason Property

Gets or sets the reason.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallBlockReasons Reason { get; set; }

Field Value

The reason.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


SessionId Property

PenetrationDetectedRule..::..SessionId Property

Gets the session identifier that the active when the incident was reported.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; }

Field Value

The session identifier.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


TriggeredOnUrl Property

PenetrationDetectedRule..::..TriggeredOnUrl Property

the URL that triggered the penetration

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Uri TriggeredOnUrl { get; }

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


User Property

PenetrationDetectedRule..::..User Property

Gets or sets the user.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IFirewallUser User { get; set; }

Field Value

The user.

See Also

PenetrationDetectedRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


UserBlockingRule Enumeration

User Blocking Rule are rules triggered by consumers of a IPageRequest indicating that the page request was used in activity that the developer did not like

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public enum UserBlockingRule

Members

Member name | Description
Other | a reason specified in the description
ActionModelNotValid | The model provided to an action or page is not valid
EncryptionManipulation | encryption manipulation
WrongGeography | The geography
PenetrationDetected | A penetration detected
WrongUserType | The wrong user type was used to access a resource

See Also

Walter.Web.FireWall.RuleEngine.Rules Namespace


WrongUserTypeRule Class

Class WrongUserTypeRule. Implements the ActionModelNotValidRule

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class WrongUserTypeRule : ActionModelNotValidRule

Inheritance Hierarchy

Walter.Web.FireWall.RuleEngine.Rules..::..ActionModelNotValidRule
Walter.Web.FireWall.RuleEngine.Rules..::..WrongUserTypeRule

See Also

WrongUserTypeRule Members
Walter.Web.FireWall.RuleEngine.Rules Namespace
Walter.Web.FireWall.RuleEngine.Rules..::..ActionModelNotValidRule


WrongUserTypeRule Members

The WrongUserTypeRule type exposes the following members.

Constructors

 | Name | Description
Public method | WrongUserTypeRule | Initializes a new instance of the WrongUserTypeRule class.

Properties

 | Name | Description
Public property | Address | Gets or sets the address. (Inherited from ActionModelNotValidRule.)
Public property | Context | Gets or sets the context. (Inherited from ActionModelNotValidRule.)
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count (Inherited from ActionModelNotValidRule.)
Public property | PageRequestId | Gets the page group identifier. (Inherited from ActionModelNotValidRule.)
Public property | PageTraceId | The page request trace identifier (Inherited from ActionModelNotValidRule.)
Public property | Reason | Gets or sets the reason. (Inherited from ActionModelNotValidRule.)
Public property | SessionId | Gets the session identifier that the active when the incident was reported. (Inherited from ActionModelNotValidRule.)
Public property | TriggeredOnUrl | The URL that triggered the event (Inherited from ActionModelNotValidRule.)
Public property | User | Gets or sets the user. (Inherited from ActionModelNotValidRule.)

See Also

WrongUserTypeRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


WrongUserTypeRule Constructor

Initializes a new instance of the WrongUserTypeRule class.

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WrongUserTypeRule(
    IPageRequest page
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The page providing context to the violation.

See Also

WrongUserTypeRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


WrongUserTypeRule Properties

The WrongUserTypeRule type exposes the following members.

Properties

 | Name | Description
Public property | Address | Gets or sets the address. (Inherited from ActionModelNotValidRule.)
Public property | Context | Gets or sets the context. (Inherited from ActionModelNotValidRule.)
Public property | Expires | the date the incident will expire and is no longer used for repeat violations count (Inherited from ActionModelNotValidRule.)
Public property | PageRequestId | Gets the page group identifier. (Inherited from ActionModelNotValidRule.)
Public property | PageTraceId | The page request trace identifier (Inherited from ActionModelNotValidRule.)
Public property | Reason | Gets or sets the reason. (Inherited from ActionModelNotValidRule.)
Public property | SessionId | Gets the session identifier that the active when the incident was reported. (Inherited from ActionModelNotValidRule.)
Public property | TriggeredOnUrl | The URL that triggered the event (Inherited from ActionModelNotValidRule.)
Public property | User | Gets or sets the user. (Inherited from ActionModelNotValidRule.)

See Also

WrongUserTypeRule Class
Walter.Web.FireWall.RuleEngine.Rules Namespace


Walter.Web.FireWall.SearchEngines Namespace

Interfaces

 | Interface | Description
Public interface | ISearchEngineNetworkMapper | Network mapper mapping search engines to known IP address ranges
Public interface | ISearchEngineRepository | In memory repository for search engine data that are known on the time of compiling the code


ISearchEngineNetworkMapper Interface

Network mapper mapping search engines to known IP address ranges

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISearchEngineNetworkMapper

See Also

ISearchEngineNetworkMapper Members
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineNetworkMapper Members

The ISearchEngineNetworkMapper type exposes the following members.

Methods

 | Name | Description
Public method | IsMapped(IPAddress) | test a given IP address is mapped
Public method | IsMapped(ParallelLoopState, IPAddress) | test a given IP address is mapped

Properties

 | Name | Description
Public property | Repository | the repository indexed

See Also

ISearchEngineNetworkMapper Interface
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineNetworkMapper Methods

Methods

 | Name | Description
Public method | IsMapped(IPAddress) | test a given IP address is mapped
Public method | IsMapped(ParallelLoopState, IPAddress) | test a given IP address is mapped

See Also

ISearchEngineNetworkMapper Interface
Walter.Web.FireWall.SearchEngines Namespace


IsMapped Method

ISearchEngineNetworkMapper..::..IsMapped Method

Overload List

 | Name | Description
Public method | IsMapped(IPAddress) | test a given IP address is mapped
Public method | IsMapped(ParallelLoopState, IPAddress) | test a given IP address is mapped

See Also

ISearchEngineNetworkMapper Interface
ISearchEngineNetworkMapper Members
Walter.Web.FireWall.SearchEngines Namespace


IsMapped Method (IPAddress)

ISearchEngineNetworkMapper..::..IsMapped Method (IPAddress)

test a given IP address is mapped

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsMapped(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address to test

Return Value

true if mapped

See Also

ISearchEngineNetworkMapper Interface
IsMapped Overload
Walter.Web.FireWall.SearchEngines Namespace


IsMapped Method (ParallelLoopState, IPAddress)

ISearchEngineNetworkMapper..::..IsMapped Method (ParallelLoopState, IPAddress)

test a given IP address is mapped

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsMapped(
    ParallelLoopState state,
    IPAddress address
)

Parameters

state
Type: ParallelLoopState
the loop state informing if needed to stop
address
Type: IPAddress
the address to test

Return Value

true if mapped

Return Value

true if mapped

See Also

ISearchEngineNetworkMapper Interface
IsMapped Overload
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineNetworkMapper Properties

The ISearchEngineNetworkMapper type exposes the following members.

Properties

 | Name | Description
Public property | Repository | the repository indexed

See Also

ISearchEngineNetworkMapper Interface
Walter.Web.FireWall.SearchEngines Namespace


Repository Property

ISearchEngineNetworkMapper..::..Repository Property

the repository indexed

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
SearchEngine Repository { get; }

See Also

ISearchEngineNetworkMapper Interface
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineRepository Interface

In memory repository for search engine data that are known on the time of compiling the code

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface ISearchEngineRepository

Remarks

Allows discovery of search engines based on known IP addresses and are not updated by data subscription

See Also

ISearchEngineRepository Members
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineRepository Members

The ISearchEngineRepository type exposes the following members.

Methods

 | Name | Description
Public method | IsSearchEngine | Test and see if the ip address belongs to any of the supported indexing bot

Properties

 | Name | Description
Public property | Item | Access the search engine data
Public property | Loaded | Indicates that the data is loaded and access is not safe
Public property | TableNames | The table names that have been loaded

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineRepository Methods

The ISearchEngineRepository type exposes the following members.

Methods

 | Name | Description
Public method | IsSearchEngine | Test and see if the ip address belongs to any of the supported indexing bot

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace


IsSearchEngine Method

ISearchEngineRepository..::..IsSearchEngine Method

Test and see if the ip address belongs to any of the supported indexing bot

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool IsSearchEngine(
    IPAddress address,
    out SearchEngine result
)

Parameters

address
Type: IPAddress
the IP address
result
Type: Walter.BOM..::..SearchEngine %
the result

Return Value

true if the ip belongs to a known bot indexing the internet

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace


ISearchEngineRepository Properties

The ISearchEngineRepository type exposes the following members.

Properties

 | Name | Description
Public property | Item | Access the search engine data
Public property | Loaded | Indicates that the data is loaded and access is not safe
Public property | TableNames | The table names that have been loaded

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace


Item Property

ISearchEngineRepository..::..Item Property

Access the search engine data

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
ISearchEngineNetworkMapper this[
    SearchEngine table
] { get; }

Parameters

table
Type: Walter.BOM..::..SearchEngine
the search engine / bot table

Return Value

search engine table

Exceptions

Exception | Condition
[TimeoutException] | If access could not be gained in system wide configured timespan
[NotSupportedException] | If access to the tables is done using a table that is not supported by TableNames that you can access after Loaded is true

Remarks

Access is possible allowing for loading the data while the data is still being populated

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace
ISearchEngineRepository..::..TableNames


Loaded Property

ISearchEngineRepository..::..Loaded Property

Indicates that the data is loaded and access is not safe

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
bool Loaded { get; }

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace


TableNames Property

ISearchEngineRepository..::..TableNames Property

The table names that have been loaded

Namespace: Walter.Web.FireWall.SearchEngines
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<SearchEngine> TableNames { get; }

See Also

ISearchEngineRepository Interface
Walter.Web.FireWall.SearchEngines Namespace


Walter.Web.FireWall.Specialized Namespace

Classes

 | Class | Description
Public class | GeoFactory | This is a helper class that will be used to allow making use of the shared cashing source. All Geographically enabled modules that deal with IP resolving should inherit from this class
Public class | LookupProtectorBase | Class LookupProtectorBase.
Public class | LookupProtectorKeyRingBase | Thread safe implementation of a ILookupProtectorKeyRing interface that can be configured/ used in your application
Public class | PersonalDataProtectorBase | Class PersonalDataProtectorBase. Implements the [System.IDisposable]

Interfaces

 | Interface | Description
Public interface | IFireWallConfigurationBuilder | Firewall configuration builder allowing for detailed configuration options for the Firewall.


GeoFactory Class

This is a helper class that will be used to allow making use of the shared cashing source. All Geographically enabled modules that deal with IP resolving should inherit from this class

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class GeoFactory : IGeoFactory

See Also

GeoFactory Members
Walter.Web.FireWall.Specialized Namespace


GeoFactory Members

The GeoFactory type exposes the following members.

Constructors

 | Name | Description
Protected method | GeoFactory |

Methods

 | Name | Description
Protected method | AddToCache | Adds to cache.
Public method | IsBlocked | test to see if the geography is blocked
Public method | QueryLocation | queries ip address to retrieve country or region
Public method | QueryProxy | the geo location of the proxy (if enabled)
Public method | SetOptions | make sure the configuration options are set
Protected method | TryGetFromCach | Initializes a new instance of the GeoFactory class. get the location from cache
Public method | TryGetLocation | Tries to get the location of a given IP address.

Properties

 | Name | Description
Public property | Settings | The settings

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


GeoFactory Constructor

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected GeoFactory(
    IFireWallConfig config,
    Nullable<IMemoryCache> memoryCache,
    Nullable<ILoggerFactory> factory
)

Parameters

config
Type: Walter.Web.FireWall..::..IFireWallConfig
Firewall configuration
memoryCache
Type: Nullable <(Of <(<'IMemoryCache>)>)>
The memory cache.
factory
Type: Nullable <(Of <(<'ILoggerFactory>)>)>
log factory

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


GeoFactory Methods

The GeoFactory type exposes the following members.

Methods

 | Name | Description
Protected method | AddToCache | Adds to cache.
Public method | IsBlocked | test to see if the geography is blocked
Public method | QueryLocation | queries ip address to retrieve country or region
Public method | QueryProxy | the geo location of the proxy (if enabled)
Public method | SetOptions | make sure the configuration options are set
Protected method | TryGetFromCach | Initializes a new instance of the GeoFactory class. get the location from cache
Public method | TryGetLocation | Tries to get the location of a given IP address.

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


AddToCache Method

GeoFactory..::..AddToCache Method

Adds to cache.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected void AddToCache(
    GeoLocation result,
    IPAddress address
)

Parameters

result
Type: Walter.BOM.Geo..::..GeoLocation
The result.
address
Type: IPAddress
The address.

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


IsBlocked Method

GeoFactory..::..IsBlocked Method

test to see if the geography is blocked

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsBlocked(
    Nullable<GeoLocation> geo
)

Parameters

geo
Type: Nullable <(Of <(<' GeoLocation >)>)>
the geographical location to test

Return Value

true if blocked

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


QueryLocation Method

GeoFactory..::..QueryLocation Method

queries ip address to retrieve country or region

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation QueryLocation(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

the country

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


QueryProxy Method

GeoFactory..::..QueryProxy Method

the geo location of the proxy (if enabled)

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoLocation QueryProxy(
    IPAddress address
)

Parameters

address
Type: IPAddress
the address

Return Value

Unknown if not a proxy or not enables

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


SetOptions Method

GeoFactory..::..SetOptions Method

make sure the configuration options are set

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetOptions()

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


TryGetFromCach Method

GeoFactory..::..TryGetFromCach Method

Initializes a new instance of the GeoFactory class.
get the location from cache

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected bool TryGetFromCach(
    IPAddress address,
    out GeoLocation result
)

Parameters

address
Type: IPAddress
The address.
result
Type: Walter.BOM.Geo..::..GeoLocation %
The result.

Return Value

true if XXXX, false otherwise.

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


TryGetLocation Method

GeoFactory..::..TryGetLocation Method

Tries to get the location of a given IP address.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool TryGetLocation(
    IPAddress remoteAddress,
    out GeoLocation location
)

Parameters

remoteAddress
Type: IPAddress
The address.
location
Type: Walter.BOM.Geo..::..GeoLocation %
The location.

Return Value

true if XXXX, false otherwise.

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


GeoFactory Properties

The GeoFactory type exposes the following members.

Properties

 | Name | Description
Public property | Settings | The settings

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


Settings Property

GeoFactory..::..Settings Property

The settings

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoBlockingPolicy Settings { get; }

See Also

GeoFactory Class
Walter.Web.FireWall.Specialized Namespace


IFireWallConfigurationBuilder Interface

Firewall configuration builder allowing for detailed configuration options for the Firewall.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IFireWallConfigurationBuilder

Remarks

You can view the Getting started elements on https://support.asp-waf.com for as well as find links to the GitHub samples

See Also

IFireWallConfigurationBuilder Members
Walter.Web.FireWall.Specialized Namespace


IFireWallConfigurationBuilder Members

The IFireWallConfigurationBuilder type exposes the following members.

Methods

 | Name | Description
Public method | Add | Add or update the Geo blocking policy on the firewall.

Properties

 | Name | Description
Public property | FireWallConfig | The Firewall configuration, you can update any rules or settings here

See Also

IFireWallConfigurationBuilder Interface
Walter.Web.FireWall.Specialized Namespace


IFireWallConfigurationBuilder Methods

The IFireWallConfigurationBuilder type exposes the following members.

Methods

 | Name | Description
Public method | Add | Add or update the Geo blocking policy on the firewall.

See Also

IFireWallConfigurationBuilder Interface
Walter.Web.FireWall.Specialized Namespace


Add Method

IFireWallConfigurationBuilder..::..Add Method

Add or update the Geo blocking policy on the firewall.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
void Add(
    GeoBlockingPolicy geoBlockingPolicy
)

Parameters

geoBlockingPolicy
Type: Walter.Web.FireWall.Geo..::..GeoBlockingPolicy
The policy to use

Remarks

Please note that this will override all policies you may have defined on any other locations like services or application.json files

See Also

IFireWallConfigurationBuilder Interface
Walter.Web.FireWall.Specialized Namespace


IFireWallConfigurationBuilder Properties

The IFireWallConfigurationBuilder type exposes the following members.

Properties

 | Name | Description
Public property | FireWallConfig | The Firewall configuration, you can update any rules or settings here

See Also

IFireWallConfigurationBuilder Interface
Walter.Web.FireWall.Specialized Namespace


FireWallConfig Property

IFireWallConfigurationBuilder..::..FireWallConfig Property

The Firewall configuration, you can update any rules or settings here

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IFireWallConfig FireWallConfig { get; }

See Also

IFireWallConfigurationBuilder Interface
Walter.Web.FireWall.Specialized Namespace


LookupProtectorBase Class

Class LookupProtectorBase.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class LookupProtectorBase

See Also

LookupProtectorBase Members
Walter.Web.FireWall.Specialized Namespace


LookupProtectorBase Members

The LookupProtectorBase type exposes the following members.

Constructors

 | Name | Description
Public method | LookupProtectorBase | Initializes a new instance of the LookupProtectorBase class.

Methods

 | Name | Description
Public method | Protect | Protects the specified key identifier.
Public method | Unprotect | deciphers the specified key identifier.

See Also

LookupProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


LookupProtectorBase Constructor

Initializes a new instance of the LookupProtectorBase class.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LookupProtectorBase(
    LookupProtectorKeyRingBase ring
)

Parameters

ring
Type: Walter.Web.FireWall.Specialized..::..LookupProtectorKeyRingBase
The ring.

See Also

LookupProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


LookupProtectorBase Methods

The LookupProtectorBase type exposes the following members.

Methods

 | Name | Description
Public method | Protect | Protects the specified key identifier.
Public method | Unprotect | deciphers the specified key identifier.

See Also

LookupProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


Protect Method

LookupProtectorBase..::..Protect Method

Protects the specified key identifier.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual string Protect(
    string keyId,
    string data
)

Parameters

keyId
Type: String
The key identifier.
data
Type: String
The data.

Return Value

System.String.

See Also

LookupProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


Unprotect Method

LookupProtectorBase..::..Unprotect Method

deciphers the specified key identifier.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual string Unprotect(
    string keyId,
    string data
)

Parameters

keyId
Type: String
The key identifier.
data
Type: String
The data.

Return Value

System.String.

See Also

LookupProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Class

Thread safe implementation of a ILookupProtectorKeyRing interface that can be configured/ used in your application

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class LookupProtectorKeyRingBase

See Also

LookupProtectorKeyRingBase Members
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Members

The LookupProtectorKeyRingBase type exposes the following members.

Constructors

 | Name | Description
Public method | LookupProtectorKeyRingBase()()()() | Initializes a new instance of the LookupProtectorKeyRingBase class.
Public method | LookupProtectorKeyRingBase(IFireWall) | Initializes a new instance of the LookupProtectorKeyRingBase class.

Methods

 | Name | Description
Public method | AddKeyRing | Adds the key ring.
Protected method | Dispose(Boolean) | securely removes all keys form the buffer
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | GetAllKeyIds | Get all keys that are in the keyring

Properties

 | Name | Description
Public property | CurrentKeyId | access a current active key used for encryption
Public property | Item | access a key from protected memory

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Constructor

Overload List

 | Name | Description
Public method | LookupProtectorKeyRingBase()()()() | Initializes a new instance of the LookupProtectorKeyRingBase class.
Public method | LookupProtectorKeyRingBase(IFireWall) | Initializes a new instance of the LookupProtectorKeyRingBase class.

See Also

LookupProtectorKeyRingBase Class
LookupProtectorKeyRingBase Members
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Constructor

Initializes a new instance of the LookupProtectorKeyRingBase class.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LookupProtectorKeyRingBase()

See Also

LookupProtectorKeyRingBase Class
LookupProtectorKeyRingBase Overload
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Constructor (IFireWall)

Initializes a new instance of the LookupProtectorKeyRingBase class.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public LookupProtectorKeyRingBase(
    IFireWall firewall
)

Parameters

firewall
Type: Walter.Web.FireWall..::..IFireWall
The firewall.

Exceptions

Exception | Condition
[ArgumentNullException] | FileWall needs to be provided

See Also

LookupProtectorKeyRingBase Class
LookupProtectorKeyRingBase Overload
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Methods

The LookupProtectorKeyRingBase type exposes the following members.

Methods

 | Name | Description
Public method | AddKeyRing | Adds the key ring.
Protected method | Dispose(Boolean) | securely removes all keys form the buffer
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | GetAllKeyIds | Get all keys that are in the keyring

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


AddKeyRing Method

LookupProtectorKeyRingBase..::..AddKeyRing Method

Adds the key ring.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void AddKeyRing(
    string keyId,
    string key
)

Parameters

keyId
Type: String
The key identifier.
key
Type: String
The key.

Exceptions

Exception | Condition
[ArgumentException] | if keyId or Key is not provided

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


Dispose Method

LookupProtectorKeyRingBase..::..Dispose Method

Overload List

 | Name | Description
Protected method | Dispose(Boolean) | securely removes all keys form the buffer
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

See Also

LookupProtectorKeyRingBase Class
LookupProtectorKeyRingBase Members
Walter.Web.FireWall.Specialized Namespace


Dispose Method (Boolean)

LookupProtectorKeyRingBase..::..Dispose Method (Boolean)

securely removes all keys form the buffer

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true to remove keys from memory in this instance

See Also

LookupProtectorKeyRingBase Class
Dispose Overload
Walter.Web.FireWall.Specialized Namespace


Dispose Method

LookupProtectorKeyRingBase..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

See Also

LookupProtectorKeyRingBase Class
Dispose Overload
Walter.Web.FireWall.Specialized Namespace


GetAllKeyIds Method

LookupProtectorKeyRingBase..::..GetAllKeyIds Method

Get all keys that are in the keyring

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerable<string> GetAllKeyIds()

Return Value

key id's

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


LookupProtectorKeyRingBase Properties

The LookupProtectorKeyRingBase type exposes the following members.

Properties

 | Name | Description
Public property | CurrentKeyId | access a current active key used for encryption
Public property | Item | access a key from protected memory

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


CurrentKeyId Property

LookupProtectorKeyRingBase..::..CurrentKeyId Property

access a current active key used for encryption

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string CurrentKeyId { get; }

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


Item Property

LookupProtectorKeyRingBase..::..Item Property

access a key from protected memory

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string this[
    string keyId
] { get; }

Parameters

keyId
Type: String
the key to read

Return Value

the sensitive string

Exceptions

Exception | Condition
[EntryNotFoundException] | Will throw an error if the key does not exists

See Also

LookupProtectorKeyRingBase Class
Walter.Web.FireWall.Specialized Namespace


PersonalDataProtectorBase Class

Class PersonalDataProtectorBase. Implements the [System.IDisposable]

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public class PersonalDataProtectorBase

See Also

PersonalDataProtectorBase Members
Walter.Web.FireWall.Specialized Namespace
[System.IDisposable]


PersonalDataProtectorBase Members

The PersonalDataProtectorBase type exposes the following members.

Constructors

 | Name | Description
Public method | PersonalDataProtectorBase | Initializes a new instance of the PersonalDataProtectorBase class.

Methods

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Protect(String) | Protects the specified data.
Public method | Protect(String, String) | Protects the specified data.
Public method | SetPassword | Assign a secure string to use when a certificate is provided,
Public method | Unprotect(String, String) | Un-protects the specified data.
Public method | Unprotect(String) | Un-protects the specified data.

Properties

 | Name | Description
Public property | UseCertificate | The certificate on disk to use
Public property | UseCertificatePassword | the certificate's password as secure string.
Public property | UsesCertificateFromDisk | Indicates that the protector will use the embedded certificate or the one provided

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


PersonalDataProtectorBase Constructor

Initializes a new instance of the PersonalDataProtectorBase class.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public PersonalDataProtectorBase()

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


PersonalDataProtectorBase Methods

The PersonalDataProtectorBase type exposes the following members.

Methods

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Public method | Protect(String) | Protects the specified data.
Public method | Protect(String, String) | Protects the specified data.
Public method | SetPassword | Assign a secure string to use when a certificate is provided,
Public method | Unprotect(String, String) | Un-protects the specified data.
Public method | Unprotect(String) | Un-protects the specified data.

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


Dispose Method

PersonalDataProtectorBase..::..Dispose Method

Overload List

 | Name | Description
Protected method | Dispose(Boolean) | Releases unmanaged and - optionally - managed resources.
Public method | Dispose()()()() | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

See Also

PersonalDataProtectorBase Class
PersonalDataProtectorBase Members
Walter.Web.FireWall.Specialized Namespace


Dispose Method (Boolean)

PersonalDataProtectorBase..::..Dispose Method (Boolean)

Releases unmanaged and - optionally - managed resources.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean
true to release both managed and unmanaged resources; false to release only unmanaged resources.

See Also

PersonalDataProtectorBase Class
Dispose Overload
Walter.Web.FireWall.Specialized Namespace


Dispose Method

PersonalDataProtectorBase..::..Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Dispose()

See Also

PersonalDataProtectorBase Class
Dispose Overload
Walter.Web.FireWall.Specialized Namespace


Protect Method

PersonalDataProtectorBase..::..Protect Method

Overload List

 | Name | Description
Public method | Protect(String) | Protects the specified data.
Public method | Protect(String, String) | Protects the specified data.

See Also

PersonalDataProtectorBase Class
PersonalDataProtectorBase Members
Walter.Web.FireWall.Specialized Namespace


Protect Method (String)

PersonalDataProtectorBase..::..Protect Method (String)

Protects the specified data.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual string Protect(
    string data
)

Parameters

data
Type: String
The data.

Return Value

System.String.

See Also

PersonalDataProtectorBase Class
Protect Overload
Walter.Web.FireWall.Specialized Namespace


Protect Method (String, String)

PersonalDataProtectorBase..::..Protect Method (String, String)

Protects the specified data.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual string Protect(
    string data,
    string salt
)

Parameters

data
Type: String
The data.
salt
Type: String
The salt.

Return Value

System.String.

See Also

PersonalDataProtectorBase Class
Protect Overload
Walter.Web.FireWall.Specialized Namespace


SetPassword Method

PersonalDataProtectorBase..::..SetPassword Method

Assign a secure string to use when a certificate is provided,

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetPassword(
    string password
)

Parameters

password
Type: String
The password.

Exceptions

Exception | Condition
[ArgumentException] | If no password is provided

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


Unprotect Method

PersonalDataProtectorBase..::..Unprotect Method

Overload List

 | Name | Description
Public method | Unprotect(String, String) | Un-protects the specified data.
Public method | Unprotect(String) | Un-protects the specified data.

See Also

PersonalDataProtectorBase Class
PersonalDataProtectorBase Members
Walter.Web.FireWall.Specialized Namespace


Unprotect Method (String, String)

PersonalDataProtectorBase..::..Unprotect Method (String, String)

Un-protects the specified data.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual string Unprotect(
    string data,
    string salt
)

Parameters

data
Type: String
The data to decipher.
salt
Type: String
The salt to use.

Return Value

System.String.

See Also

PersonalDataProtectorBase Class
Unprotect Overload
Walter.Web.FireWall.Specialized Namespace


Unprotect Method (String)

PersonalDataProtectorBase..::..Unprotect Method (String)

Un-protects the specified data.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public virtual string Unprotect(
    string data
)

Parameters

data
Type: String
The data to decipher.

Return Value

System.String.

See Also

PersonalDataProtectorBase Class
Unprotect Overload
Walter.Web.FireWall.Specialized Namespace


PersonalDataProtectorBase Properties

The PersonalDataProtectorBase type exposes the following members.

Properties

 | Name | Description
Public property | UseCertificate | The certificate on disk to use
Public property | UseCertificatePassword | the certificate's password as secure string.
Public property | UsesCertificateFromDisk | Indicates that the protector will use the embedded certificate or the one provided

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


UseCertificate Property

PersonalDataProtectorBase..::..UseCertificate Property

The certificate on disk to use

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<FileInfo> UseCertificate { get; set; }

Field Value

The use certificate.

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


UseCertificatePassword Property

PersonalDataProtectorBase..::..UseCertificatePassword Property

the certificate's password as secure string.

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<SecureString> UseCertificatePassword { get; set; }

Field Value

The use certificate password.

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


UsesCertificateFromDisk Property

PersonalDataProtectorBase..::..UsesCertificateFromDisk Property

Indicates that the protector will use the embedded certificate or the one provided

Namespace: Walter.Web.FireWall.Specialized
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool UsesCertificateFromDisk { get; }

Field Value

true if [uses certificate from disk]; otherwise, false.

See Also

PersonalDataProtectorBase Class
Walter.Web.FireWall.Specialized Namespace


Walter.Web.FireWall.TagHelpers Namespace

Classes

 | Class | Description
Public class | BrowserIntentionsTagHelper | Class Browser IntentionsTagHelper allows you to make HTML elements visible, or hide them based on the type of user agent that is requesting to render the razor page. Implements the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]
Public class | FirewallUserValidationScript | Injects the user discovery script in the page, a url to a script name needs to be provided if the value is not configured in UserEndpointJavaScript
Public class | GeoTagHelper | Class GeoTagHelper is a helper that allows you to make quite a few HTML tags geographically aware. You do not only have the option to show a page or partial page, you can also configure how Implements the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]
Public class | RolesTagHelper | Allows or suppresses the content of a HTML tag output based on the users role. This helper does not need a active firewall
Public class | UserTypeRenderTagHelper | Class UserType Renderer TagHelper allows you to make HTML elements visible, or hide them based on the type of consumer that is using the razor page. Implements the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]


BrowserIntentionsTagHelper Class

Class Browser IntentionsTagHelper allows you to make HTML elements visible, or hide them based on the type of user agent that is requesting to render the razor page. Implements the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class BrowserIntentionsTagHelper

Examples

You can set the type to reject or accept via the boolean value or as the allowed type flags
create an UL only if the user-agent matches the type
<ul>
       <li firewall-userTypes-allowed="IsHuman | IsSearchEngine"
           firewall-userTypes-is-NotDiscovered="true"
           firewall-userTypes-is-bot="false" firewall-userTypes-is-Malicious="false">
           <a asp-action="Login" asp-controller="Account">login to view the movie</a>
       </li>
       <li firewall-userTypes-is-bot="true"
           firewall-userTypes-is-Malicious="true">
           <a asp-action="Login" asp-controller="honeypot">login to view the movie</a>
       </li>
   </ul>

See Also

BrowserIntentionsTagHelper Members
Walter.Web.FireWall.TagHelpers Namespace
[Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]


BrowserIntentionsTagHelper Members

The BrowserIntentionsTagHelper type exposes the following members.

Constructors

 | Name | Description
Public method | BrowserIntentionsTagHelper | Initializes a new instance of the GeoTagHelper class.

Properties

 | Name | Description
Public property | Allowed | Set the type of user that is allowed
Public property | Assigned | If set to true then only manually confirmed values are evaluated
Public property | Blocked | Set the type of intentions that should not be rendered.
Public property | BrandProtection | Shortcut for allowed value, set this to true equals setting allowed=BrandProtection
Public property | DataMining | Shortcut for allowed value, set this to true equals setting allowed=DataMining
Public property | FileGrabber | Shortcut for allowed value, set this to true equals setting allowed=FileGrabber
Public property | IndexingAgent | Shortcut for allowed value, set this to true equals setting allowed=IndexingAgent
Public property | ViewPage | Visible when the browser type is a known browser used by humans based on detected interactions

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


BrowserIntentionsTagHelper Constructor

Initializes a new instance of the GeoTagHelper class.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public BrowserIntentionsTagHelper(
    IPageRequest request,
    Nullable<ILogger<UserTypeRenderTagHelper>> logger
)

Parameters

request
Type: Walter.Web.FireWall..::..IPageRequest
The page being processed
logger
Type: Nullable <(Of <(<'ILogger<(Of <(<' UserTypeRenderTagHelper >)>)>>)>)>
The logger.

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


BrowserIntentionsTagHelper Properties

The BrowserIntentionsTagHelper type exposes the following members.

Properties

 | Name | Description
Public property | Allowed | Set the type of user that is allowed
Public property | Assigned | If set to true then only manually confirmed values are evaluated
Public property | Blocked | Set the type of intentions that should not be rendered.
Public property | BrandProtection | Shortcut for allowed value, set this to true equals setting allowed=BrandProtection
Public property | DataMining | Shortcut for allowed value, set this to true equals setting allowed=DataMining
Public property | FileGrabber | Shortcut for allowed value, set this to true equals setting allowed=FileGrabber
Public property | IndexingAgent | Shortcut for allowed value, set this to true equals setting allowed=IndexingAgent
Public property | ViewPage | Visible when the browser type is a known browser used by humans based on detected interactions

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


Allowed Property

BrowserIntentionsTagHelper..::..Allowed Property

Set the type of user that is allowed

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Allowed { get; set; }

Field Value

The allowed.

Remarks

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


Assigned Property

BrowserIntentionsTagHelper..::..Assigned Property

If set to true then only manually confirmed values are evaluated

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> Assigned { get; set; }

Remarks

To set the value you will need to assign the value in code your self or use the administration module for the firewall and set the value using administration configuration

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


Blocked Property

BrowserIntentionsTagHelper..::..Blocked Property

Set the type of intentions that should not be rendered.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Blocked { get; set; }

Field Value

The blocked intentions.

Remarks

you can combine all values of KnownIntentions and separate them with a | character, sample "BrandProtection | FileGrabber"

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace
Walter.BOM..::..KnownIntentions


BrandProtection Property

BrowserIntentionsTagHelper..::..BrandProtection Property

Shortcut for allowed value, set this to true equals setting allowed=BrandProtection

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> BrandProtection { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types.

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


DataMining Property

BrowserIntentionsTagHelper..::..DataMining Property

Shortcut for allowed value, set this to true equals setting allowed=DataMining

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> DataMining { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


FileGrabber Property

BrowserIntentionsTagHelper..::..FileGrabber Property

Shortcut for allowed value, set this to true equals setting allowed=FileGrabber

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> FileGrabber { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types.

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


IndexingAgent Property

BrowserIntentionsTagHelper..::..IndexingAgent Property

Shortcut for allowed value, set this to true equals setting allowed=IndexingAgent

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> IndexingAgent { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types.

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


ViewPage Property

BrowserIntentionsTagHelper..::..ViewPage Property

Visible when the browser type is a known browser used by humans based on detected interactions

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> ViewPage { get; set; }

See Also

BrowserIntentionsTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


FirewallUserValidationScript Class

Injects the user discovery script in the page, a url to a script name needs to be provided if the value is not configured in UserEndpointJavaScript

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FirewallUserValidationScript

Remarks

Element can be added to a body or script tag, please note that the script requires jquery

Examples

configure the firewall to use the default script for user detection
use the default script
<body firewall-detect>
   <!-- your content-->

   <body/>

See Also

FirewallUserValidationScript Members
Walter.Web.FireWall.TagHelpers Namespace


FirewallUserValidationScript Members

The FirewallUserValidationScript type exposes the following members.

Constructors

 | Name | Description
Public method | FirewallUserValidationScript | Initializes a new instance of the FirewallUserValidationScript class.

Methods

 | Name | Description
Public method | Process | Synchronously executes the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper] with the given context and output.

Properties

 | Name | Description
Public property | Order | Gets the order of execution.
Public property | UserDetectionUrl | URL to use for user detection will override the value specified in UserEndpointJavaScript, leave blank if the configured value is to be used

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


FirewallUserValidationScript Constructor

Initializes a new instance of the FirewallUserValidationScript class.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FirewallUserValidationScript(
    IPageRequest pageRequest
)

Parameters

pageRequest
Type: Walter.Web.FireWall..::..IPageRequest
The page.

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


FirewallUserValidationScript Methods

The FirewallUserValidationScript type exposes the following members.

Methods

 | Name | Description
Public method | Process | Synchronously executes the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper] with the given context and output.

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


Process Method

FirewallUserValidationScript..::..Process Method

Synchronously executes the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper] with the given context and output.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void Process(
    TagHelperContext context,
    TagHelperOutput output
)

Parameters

context
Type: TagHelperContext
Contains information associated with the current HTML tag.
output
Type: TagHelperOutput
A state-full HTML element used to generate an HTML tag.

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


FirewallUserValidationScript Properties

The FirewallUserValidationScript type exposes the following members.

Properties

 | Name | Description
Public property | Order | Gets the order of execution.
Public property | UserDetectionUrl | URL to use for user detection will override the value specified in UserEndpointJavaScript, leave blank if the configured value is to be used

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


Order Property

FirewallUserValidationScript..::..Order Property

Gets the order of execution.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Order { get; }

Field Value

The order.

Remarks

Default order is 1.

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


UserDetectionUrl Property

FirewallUserValidationScript..::..UserDetectionUrl Property

URL to use for user detection will override the value specified in UserEndpointJavaScript, leave blank if the configured value is to be used

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> UserDetectionUrl { get; set; }

See Also

FirewallUserValidationScript Class
Walter.Web.FireWall.TagHelpers Namespace


GeoTagHelper Class

Class GeoTagHelper is a helper that allows you to make quite a few HTML tags geographically aware. You do not only have the option to show a page or partial page, you can also configure how Implements the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class GeoTagHelper

See Also

GeoTagHelper Members
Walter.Web.FireWall.TagHelpers Namespace
[Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]


GeoTagHelper Members

The GeoTagHelper type exposes the following members.

Constructors

 | Name | Description
Public method | GeoTagHelper | Initializes a new instance of the GeoTagHelper class.

Methods

 | Name | Description
Public method | ProcessAsync | Override the Processing of a request,

See Also

GeoTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


GeoTagHelper Constructor

Initializes a new instance of the GeoTagHelper class.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public GeoTagHelper(
    IHttpContextAccessor context,
    IPageRequest page,
    Nullable<ILogger<RolesTagHelper>> logger
)

Parameters

context
Type: IHttpContextAccessor
The context.
page
Type: Walter.Web.FireWall..::..IPageRequest
The page being processed
logger
Type: Nullable <(Of <(<'ILogger<(Of <(<' RolesTagHelper >)>)>>)>)>
The logger.

Exceptions

Exception | Condition
[System.ArgumentNullException] | any parameter but logger is null

See Also

GeoTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


GeoTagHelper Methods

The GeoTagHelper type exposes the following members.

Methods

 | Name | Description
Public method | ProcessAsync | Override the Processing of a request,

See Also

GeoTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


ProcessAsync Method

GeoTagHelper..::..ProcessAsync Method

Override the Processing of a request,

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task ProcessAsync(
    TagHelperContext context,
    TagHelperOutput output
)

Parameters

context
Type: TagHelperContext
Contains information associated with the current HTML tag.
output
Type: TagHelperOutput
A state-full HTML element used to generate an HTML tag.

Return Value

A [System.Threading.Tasks.Task] that on completion updates the output.

Remarks

By default this calls into [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput)].

See Also

GeoTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


RolesTagHelper Class

Allows or suppresses the content of a HTML tag output based on the users role. This helper does not need a active firewall

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class RolesTagHelper

See Also

RolesTagHelper Members
Walter.Web.FireWall.TagHelpers Namespace


RolesTagHelper Members

The RolesTagHelper type exposes the following members.

Constructors

 | Name | Description
Public method | RolesTagHelper | Initializes a new instance of the RolesTagHelper class.

Methods

 | Name | Description
Public method | ProcessAsync | process as an asynchronous operation.

Properties

 | Name | Description
Public property | AppRole | Gets or sets the application role that you have in your role management.

See Also

RolesTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


RolesTagHelper Constructor

Initializes a new instance of the RolesTagHelper class.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public RolesTagHelper(
    IPageRequest page,
    Nullable<ILogger<RolesTagHelper>> logger
)

Parameters

page
Type: Walter.Web.FireWall..::..IPageRequest
The context of this request.
logger
Type: Nullable <(Of <(<'ILogger<(Of <(<' RolesTagHelper >)>)>>)>)>
The logger.

See Also

RolesTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


RolesTagHelper Methods

The RolesTagHelper type exposes the following members.

Methods

 | Name | Description
Public method | ProcessAsync | process as an asynchronous operation.

See Also

RolesTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


ProcessAsync Method

RolesTagHelper..::..ProcessAsync Method

process as an asynchronous operation.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Task ProcessAsync(
    TagHelperContext context,
    TagHelperOutput output
)

Parameters

context
Type: TagHelperContext
Contains information associated with the current HTML tag.
output
Type: TagHelperOutput
A state full HTML element used to generate an HTML tag.

Return Value

A [System.Threading.Tasks.Task] that on completion updates the output.

Exceptions

Exception | Condition
[ArgumentException] | AppRole was not provided, the Tag helper needs this parameter to be set
[System.ArgumentException] | AppRole was not provided, the Tag helper needs this parameter to be set

See Also

RolesTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


RolesTagHelper Properties

The RolesTagHelper type exposes the following members.

Properties

 | Name | Description
Public property | AppRole | Gets or sets the application role that you have in your role management.

See Also

RolesTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


AppRole Property

RolesTagHelper..::..AppRole Property

Gets or sets the application role that you have in your role management.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string AppRole { get; set; }

Field Value

The application role.

See Also

RolesTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


UserTypeRenderTagHelper Class

Class UserType Renderer TagHelper allows you to make HTML elements visible, or hide them based on the type of consumer that is using the razor page. Implements the [Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class UserTypeRenderTagHelper

Examples

You can set the type to reject or accept via the boolean value or as the allowed type flags
create an UL only if the user matches the type
<ul>
       <li firewall-userTypes-allowed="IsHuman | IsSearchEngine"
           firewall-userTypes-is-NotDiscovered="true"
           firewall-userTypes-is-bot="false" firewall-userTypes-is-Malicious="false">
           <a asp-action="Login" asp-controller="Account">login to view the movie</a>
       </li>
       <li firewall-userTypes-is-bot="true"
           firewall-userTypes-is-Malicious="true">
           <a asp-action="Login" asp-controller="honeypot">login to view the movie</a>
       </li>
   </ul>

See Also

UserTypeRenderTagHelper Members
Walter.Web.FireWall.TagHelpers Namespace
[Microsoft.AspNetCore.Razor.TagHelpers.TagHelper]


UserTypeRenderTagHelper Members

The UserTypeRenderTagHelper type exposes the following members.

Constructors

 | Name | Description
Public method | UserTypeRenderTagHelper | Initializes a new instance of the GeoTagHelper class.

Properties

 | Name | Description
Public property | Allowed | Set the type of user that is allowed
Public property | Blocked | Set the type of user that is blocked
Public property | IsBot | Shortcut for allowed value, set this to true equals setting allowed=IsBot
Public property | IsHuman | Shortcut for allowed value, set this to true equals setting allowed=IsHuman
Public property | IsMalicious | Shortcut for allowed value, set this to true equals setting allowed=IsSearchEngine
Public property | IsNotDiscovered | Visible when the user type has not been discovered
Public property | IsSearchEngine | Shortcut for allowed value, set this to true equals setting allowed=IsSearchEngine

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


UserTypeRenderTagHelper Constructor

Initializes a new instance of the GeoTagHelper class.

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public UserTypeRenderTagHelper(
    IPageRequest request,
    Nullable<ILogger<UserTypeRenderTagHelper>> logger
)

Parameters

request
Type: Walter.Web.FireWall..::..IPageRequest
The page being processed
logger
Type: Nullable <(Of <(<'ILogger<(Of <(<' UserTypeRenderTagHelper >)>)>>)>)>
The logger.

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


UserTypeRenderTagHelper Properties

The UserTypeRenderTagHelper type exposes the following members.

Properties

 | Name | Description
Public property | Allowed | Set the type of user that is allowed
Public property | Blocked | Set the type of user that is blocked
Public property | IsBot | Shortcut for allowed value, set this to true equals setting allowed=IsBot
Public property | IsHuman | Shortcut for allowed value, set this to true equals setting allowed=IsHuman
Public property | IsMalicious | Shortcut for allowed value, set this to true equals setting allowed=IsSearchEngine
Public property | IsNotDiscovered | Visible when the user type has not been discovered
Public property | IsSearchEngine | Shortcut for allowed value, set this to true equals setting allowed=IsSearchEngine

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


Allowed Property

UserTypeRenderTagHelper..::..Allowed Property

Set the type of user that is allowed

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Allowed { get; set; }

Field Value

The allowed.

Remarks

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


Blocked Property

UserTypeRenderTagHelper..::..Blocked Property

Set the type of user that is blocked

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Blocked { get; set; }

Field Value

The allowed.

Remarks

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


IsBot Property

UserTypeRenderTagHelper..::..IsBot Property

Shortcut for allowed value, set this to true equals setting allowed=IsBot

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> IsBot { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types.

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


IsHuman Property

UserTypeRenderTagHelper..::..IsHuman Property

Shortcut for allowed value, set this to true equals setting allowed=IsHuman

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> IsHuman { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


IsMalicious Property

UserTypeRenderTagHelper..::..IsMalicious Property

Shortcut for allowed value, set this to true equals setting allowed=IsSearchEngine

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> IsMalicious { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types.

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


IsNotDiscovered Property

UserTypeRenderTagHelper..::..IsNotDiscovered Property

Visible when the user type has not been discovered

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> IsNotDiscovered { get; set; }

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


IsSearchEngine Property

UserTypeRenderTagHelper..::..IsSearchEngine Property

Shortcut for allowed value, set this to true equals setting allowed=IsSearchEngine

Namespace: Walter.Web.FireWall.TagHelpers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<bool> IsSearchEngine { get; set; }

Remarks

Use this property if you are not sure of the spelling or would like to combine user types.

See Also

UserTypeRenderTagHelper Class
Walter.Web.FireWall.TagHelpers Namespace


Walter.Web.FireWall.UserAgent.UsersStack Namespace

Classes

 | Class | Description
Public class | UserStackBuilderExtensions |
Public class | UserStackSettings |

Interfaces

 | Interface | Description
Public interface | IBrowser | Returns the name and the of the browser
Public interface | ICrawler | Returns the detected crawler as well as the category meta data.
Public interface | IDevice | The brand and type of device detected by UserStack
Public interface | IOperatingSystem | The operating system that hosts the browser in the device
Public interface | IUserstackUserAgent | typed instance reflecting the data provided by userstack.com

Enumerations

 | Enumeration | Description
Public enumeration | CrawlerType | Enumerable Crawler Type
Public enumeration | DeviceType | Enumerable of DeviceType maintained by userstack.com
Public enumeration | UserStackEntryTypes | enumerable UserStackEntryTypes reflect the type of browser as defined by userstack.com


CrawlerType Enumeration

Enumerable Crawler Type

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public enum CrawlerType

Members

Member name | Description
unknown | The type is unknown
SearchEngine | The crawler is a search engine
Monitoring | The crawler is monitoring service
ScreenshotService | The crawler is a screen-shot service
Scraper | The crawler scraper/ data miner
SecurityScanner | The crawler is a security scanner
NotDefined | the User agent type was provided only was not supported by this extension method, use raw CategoryName as fall back

See Also

Walter.Web.FireWall.UserAgent.UsersStack Namespace


DeviceType Enumeration

Enumerable of DeviceType maintained by userstack.com

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public enum DeviceType

Members

Member name | Description
Unknown | The device type is unknown
Desktop | The desktop type computer
Tablet | The device is a tablet
SmartPhone | The device is a smart phone
Console | The device is a console
SmartTv | The smart TV
Wearable | The some type of wearable device
NotDefined | the device type was provided only was not supported by this extension method, use raw device type name as fall back

See Also

Walter.Web.FireWall.UserAgent.UsersStack Namespace


IBrowser Interface

Returns the name and the of the browser

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public interface IBrowser

See Also

IBrowser Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IBrowser Members

The IBrowser type exposes the following members.

Properties

 | Name | Description
Public property | Engine | Returns the name of the engine the resulting browser is running.
Public property | Name | Returns the name of the resulting browser.
Public property | Version | Returns the version of the resulting browser.
Public property | VersionMajor | Returns the major version of the resulting browser.

See Also

IBrowser Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IBrowser Properties

The IBrowser type exposes the following members.

Properties

 | Name | Description
Public property | Engine | Returns the name of the engine the resulting browser is running.
Public property | Name | Returns the name of the resulting browser.
Public property | Version | Returns the version of the resulting browser.
Public property | VersionMajor | Returns the major version of the resulting browser.

See Also

IBrowser Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Engine Property

IBrowser..::..Engine Property

Returns the name of the engine the resulting browser is running.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Engine { get; set; }

See Also

IBrowser Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Name Property

IBrowser..::..Name Property

Returns the name of the resulting browser.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Name { get; set; }

See Also

IBrowser Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Version Property

IBrowser..::..Version Property

Returns the version of the resulting browser.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Version { get; set; }

See Also

IBrowser Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


VersionMajor Property

IBrowser..::..VersionMajor Property

Returns the major version of the resulting browser.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string VersionMajor { get; set; }

See Also

IBrowser Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


ICrawler Interface

Returns the detected crawler as well as the category meta data.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public interface ICrawler

See Also

ICrawler Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


ICrawler Members

The ICrawler type exposes the following members.

Properties

 | Name | Description
Public property | Category | Returns the detected crawler category.
Public property | CategoryName | Returns the detected crawler category.
Public property | DetectedCrawler | Returns true or false depending on whether or not a crawler has been detected.
Public property | LastSeen | Returns information about when this particular crawler was last seen by UserStock.

See Also

ICrawler Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


ICrawler Properties

The ICrawler type exposes the following members.

Properties

 | Name | Description
Public property | Category | Returns the detected crawler category.
Public property | CategoryName | Returns the detected crawler category.
Public property | DetectedCrawler | Returns true or false depending on whether or not a crawler has been detected.
Public property | LastSeen | Returns information about when this particular crawler was last seen by UserStock.

See Also

ICrawler Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Category Property

ICrawler..::..Category Property

Returns the detected crawler category.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
CrawlerType Category { get; }

See Also

ICrawler Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


CategoryName Property

ICrawler..::..CategoryName Property

Returns the detected crawler category.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string CategoryName { get; set; }

See Also

ICrawler Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


DetectedCrawler Property

ICrawler..::..DetectedCrawler Property

Returns true or false depending on whether or not a crawler has been detected.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
bool DetectedCrawler { get; set; }

See Also

ICrawler Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


LastSeen Property

ICrawler..::..LastSeen Property

Returns information about when this particular crawler was last seen by UserStock.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
DateTime LastSeen { get; set; }

See Also

ICrawler Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IDevice Interface

The brand and type of device detected by UserStack

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public interface IDevice

See Also

IDevice Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IDevice Members

The IDevice type exposes the following members.

Properties

 | Name | Description
Public property | Brand | Brand name
Public property | BrandCode | Brand code
Public property | BrandUrl | The URL that links to the device home page
Public property | DeviceTypeName | The device type name
Public property | IsMobileDevice |
Public property | Name |
Public property | TypeName | The device type name

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IDevice Properties

The IDevice type exposes the following members.

Properties

 | Name | Description
Public property | Brand | Brand name
Public property | BrandCode | Brand code
Public property | BrandUrl | The URL that links to the device home page
Public property | DeviceTypeName | The device type name
Public property | IsMobileDevice |
Public property | Name |
Public property | TypeName | The device type name

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Brand Property

IDevice..::..Brand Property

Brand name

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Brand { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


BrandCode Property

IDevice..::..BrandCode Property

Brand code

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string BrandCode { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


BrandUrl Property

IDevice..::..BrandUrl Property

The URL that links to the device home page

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string BrandUrl { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


DeviceTypeName Property

IDevice..::..DeviceTypeName Property

The device type name

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string DeviceTypeName { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace
Walter.Web.FireWall.UserAgent.UsersStack..::..DeviceType


IsMobileDevice Property

IDevice..::..IsMobileDevice Property

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
bool IsMobileDevice { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Name Property

IDevice..::..Name Property

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Name { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


TypeName Property

IDevice..::..TypeName Property

The device type name

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
DeviceType TypeName { get; }

See Also

IDevice Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IOperatingSystem Interface

The operating system that hosts the browser in the device

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public interface IOperatingSystem

See Also

IOperatingSystem Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IOperatingSystem Members

The IOperatingSystem type exposes the following members.

Properties

 | Name | Description
Public property | Code | Returns the code name of the resulting OS.
Public property | Family | Returns the product family the resulting OS is associated with.
Public property | FamilyCode | Returns the product family code the resulting OS is associated with.
Public property | FamilyVendor | Returns the vendor the resulting OS is associated with.
Public property | Icon | Returns a URL leading to a 16x16px icon associated with the resulting OS.
Public property | IconLarge | Returns a URL leading to a 128x128px icon associated with the resulting OS.
Public property | Name | Returns the name of the resulting OS.
Public property | Url | Returns the URL the resulting OS is associated with.

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IOperatingSystem Properties

The IOperatingSystem type exposes the following members.

Properties

 | Name | Description
Public property | Code | Returns the code name of the resulting OS.
Public property | Family | Returns the product family the resulting OS is associated with.
Public property | FamilyCode | Returns the product family code the resulting OS is associated with.
Public property | FamilyVendor | Returns the vendor the resulting OS is associated with.
Public property | Icon | Returns a URL leading to a 16x16px icon associated with the resulting OS.
Public property | IconLarge | Returns a URL leading to a 128x128px icon associated with the resulting OS.
Public property | Name | Returns the name of the resulting OS.
Public property | Url | Returns the URL the resulting OS is associated with.

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Code Property

IOperatingSystem..::..Code Property

Returns the code name of the resulting OS.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Code { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Family Property

IOperatingSystem..::..Family Property

Returns the product family the resulting OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Family { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


FamilyCode Property

IOperatingSystem..::..FamilyCode Property

Returns the product family code the resulting OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string FamilyCode { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


FamilyVendor Property

IOperatingSystem..::..FamilyVendor Property

Returns the vendor the resulting OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string FamilyVendor { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Icon Property

IOperatingSystem..::..Icon Property

Returns a URL leading to a 16x16px icon associated with the resulting OS.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Icon { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IconLarge Property

IOperatingSystem..::..IconLarge Property

Returns a URL leading to a 128x128px icon associated with the resulting OS.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string IconLarge { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Name Property

IOperatingSystem..::..Name Property

Returns the name of the resulting OS.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Name { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Url Property

IOperatingSystem..::..Url Property

Returns the URL the resulting OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Url { get; set; }

See Also

IOperatingSystem Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IUserstackUserAgent Interface

typed instance reflecting the data provided by userstack.com

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public interface IUserstackUserAgent

See Also

IUserstackUserAgent Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IUserstackUserAgent Members

The IUserstackUserAgent type exposes the following members.

Properties

 | Name | Description
Public property | AgentType | Returns entity type the requested User-Agent string is associated with.
Public property | Brand | Returns the brand the resulting device, browser or OS is associated with.
Public property | Browser | Returns the resulting browser.
Public property | Crawler | The category of crawler behind the browser, if any
Public property | Device | The type and brand of device
Public property | Name | Returns the name the resulting device, browser or OS is associated with.
Public property | OperatingSystem | The operating system that hosts the browser in the device
Public property | Success | indicates if the data was retrieved successful, if not look at the error instance for details
Public property | TypeName | Returns entity type the requested User-Agent string is associated with.
Public property | Url | Returns the URL the resulting device, browser or OS is associated with.
Public property | UserAgent | Returns requested User-Agent string.

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


IUserstackUserAgent Properties

The IUserstackUserAgent type exposes the following members.

Properties

 | Name | Description
Public property | AgentType | Returns entity type the requested User-Agent string is associated with.
Public property | Brand | Returns the brand the resulting device, browser or OS is associated with.
Public property | Browser | Returns the resulting browser.
Public property | Crawler | The category of crawler behind the browser, if any
Public property | Device | The type and brand of device
Public property | Name | Returns the name the resulting device, browser or OS is associated with.
Public property | OperatingSystem | The operating system that hosts the browser in the device
Public property | Success | indicates if the data was retrieved successful, if not look at the error instance for details
Public property | TypeName | Returns entity type the requested User-Agent string is associated with.
Public property | Url | Returns the URL the resulting device, browser or OS is associated with.
Public property | UserAgent | Returns requested User-Agent string.

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


AgentType Property

IUserstackUserAgent..::..AgentType Property

Returns entity type the requested User-Agent string is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
UserStackEntryTypes AgentType { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Brand Property

IUserstackUserAgent..::..Brand Property

Returns the brand the resulting device, browser or OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Brand { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Browser Property

IUserstackUserAgent..::..Browser Property

Returns the resulting browser.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
IBrowser Browser { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Crawler Property

IUserstackUserAgent..::..Crawler Property

The category of crawler behind the browser, if any

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
ICrawler Crawler { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Device Property

IUserstackUserAgent..::..Device Property

The type and brand of device

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
IDevice Device { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Name Property

IUserstackUserAgent..::..Name Property

Returns the name the resulting device, browser or OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Name { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


OperatingSystem Property

IUserstackUserAgent..::..OperatingSystem Property

The operating system that hosts the browser in the device

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
IOperatingSystem OperatingSystem { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Success Property

IUserstackUserAgent..::..Success Property

indicates if the data was retrieved successful, if not look at the error instance for details

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
bool Success { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


TypeName Property

IUserstackUserAgent..::..TypeName Property

Returns entity type the requested User-Agent string is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string TypeName { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace
IUserstackUserAgent..::..AgentType


Url Property

IUserstackUserAgent..::..Url Property

Returns the URL the resulting device, browser or OS is associated with.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string Url { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserAgent Property

IUserstackUserAgent..::..UserAgent Property

Returns requested User-Agent string.

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
string UserAgent { get; }

See Also

IUserstackUserAgent Interface
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackBuilderExtensions Class

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static class UserStackBuilderExtensions

See Also

UserStackBuilderExtensions Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackBuilderExtensions Members

The UserStackBuilderExtensions type exposes the following members.

Methods

Name | Description
AsUserStack | Converts the firewall Native [IUAUserAgent] to the full data provided by userstack.com
TryAsUserStack | Converts the firewall Native [IUAUserAgent] to the full data provided by userstack.com

See Also

UserStackBuilderExtensions Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackBuilderExtensions Methods

The UserStackBuilderExtensions type exposes the following members.

Methods

Name | Description
AsUserStack | Converts the firewall Native [IUAUserAgent] to the full data provided by userstack.com
TryAsUserStack | Converts the firewall Native [IUAUserAgent] to the full data provided by userstack.com

See Also

UserStackBuilderExtensions Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


AsUserStack Method

UserStackBuilderExtensions..::..AsUserStack Method

Converts the firewall Native [IUAUserAgent] to the full data provided by userstack.com

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static IUserstackUserAgent AsUserStack(
    IUAUserAgent sender
)

Parameters

sender
Type: IUAUserAgent
The user agent

Return Value

IUserstackUserAgent, the Success indicates if any issues occurred using the population

Remarks

If the item is not sourced from user tack the cast will not work

See Also

UserStackBuilderExtensions Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


TryAsUserStack Method

UserStackBuilderExtensions..::..TryAsUserStack Method

Converts the firewall Native [IUAUserAgent] to the full data provided by userstack.com

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public static bool TryAsUserStack(
    IUAUserAgent sender,
    out Nullable<IUserstackUserAgent> userAgent
)

Parameters

sender
Type: IUAUserAgent
The user agent
userAgent
Type: Nullable <(Of <(<' IUserstackUserAgent >)>)>%

Return Value

IUserstackUserAgent

Remarks

If the item is not sourced from user tack the cast will not work

See Also

UserStackBuilderExtensions Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackEntryTypes Enumeration

enumerable UserStackEntryTypes reflect the type of browser as defined by userstack.com

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public enum UserStackEntryTypes

Members

Member name | Description
Unknown | The unknown
Browser | The browser
MobileBrowser | The mobile browser
EmailClient | The email client
Application | The application
FeedReader | The feed reader
Crawler | The crawler
OfflineBrowser | The offline browser
NotDefined | the User agent type was provided only was not supported by this extension method, use raw TypeName as fall back

See Also

Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackSettings Class

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public class UserStackSettings

See Also

UserStackSettings Members
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackSettings Members

The UserStackSettings type exposes the following members.

Constructors

 | Name | Description
Public method | UserStackSettings()()()() |

Properties

 | Name | Description
Public property | ApiKey |
Public property | Https |

See Also

UserStackSettings Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackSettings Constructor

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public UserStackSettings()

See Also

UserStackSettings Class
#ctor Overload
Walter.Web.FireWall.UserAgent.UsersStack Namespace


UserStackSettings Properties

The UserStackSettings type exposes the following members.

Properties

 | Name | Description
Public property | ApiKey |
Public property | Https |

See Also

UserStackSettings Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


ApiKey Property

UserStackSettings..::..ApiKey Property

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public string ApiKey { get; set; }

See Also

UserStackSettings Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Https Property

UserStackSettings..::..Https Property

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public bool Https { get; set; }

See Also

UserStackSettings Class
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Walter.Web.FireWall.ViewModels Namespace

Classes

 | Class | Description
Public class | AbuseReportMetaData | Class AbuseReportMetaData. This class cannot be inherited.
Public class | FireWallDiskViolation | Contains the discovered disk violations
Public class | JavaData | Class JavaData is used to interact with javascript.
Public class | Talking | A view model containing the firewall's communications snapshot as well as access to the communications database

Interfaces

 | Interface | Description
Public interface | IUserIncidentStats | The view model user incident statistics show how often we have seen a user trigger an incident on a given URL
Public interface | IUserVisitStats | visitation statistics for a given user


AbuseReportMetaData Class

Class AbuseReportMetaData. This class cannot be inherited.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class AbuseReportMetaData

See Also

AbuseReportMetaData Members
Walter.Web.FireWall.ViewModels Namespace


AbuseReportMetaData Members

The AbuseReportMetaData type exposes the following members.

Constructors

 | Name | Description
Public method | AbuseReportMetaData()()()() | Initializes a new instance of the AbuseReportMetaData class.

Methods

 | Name | Description
Public method | HasTxtReport | indicates a text file abuse report exists

Properties

 | Name | Description
Public property | AbuseWorkflowStep | Gets or sets the abuse work-flow step.
Public property | Content | Gets or sets the content in the pdf.
Public property | From | Gets or sets from date of the report.
Public property | HasActivityDiagram | Gets a value indicating whether this instance has activity diagram.
Public property | HasCover | Gets a value indicating whether this instance has cover.
Public property | HasCoverLetter | Gets a value indicating whether this instance has cover letter.
Public property | HasDetails | Gets a value indicating whether this instance has details.
Public property | HasGlossary | Gets a value indicating whether this instance has glossary.
Public property | HasIndex | Gets a value indicating whether this instance has index.
Public property | HasManagementAbstract | Gets a value indicating whether this instance has management abstract.
Public property | HasOverview | Gets a value indicating whether this instance has overview.
Public property | HasTimeline | Gets a value indicating whether this instance has time-line.
Public property | IPAddresses | Gets or sets the count of IP Addresses.
Public property | Pages | Gets or sets the number of pages in the report.
Public property | Pdf | Gets or sets the link to the PDF.
Public property | RangeId | Gets or sets the range identifier.
Public property | Reference | Gets or sets the reference.
Public property | ReportType | Gets or sets the type of the report.
Public property | Till | Gets or sets the till date in the report.
Public property | Txt | Gets or sets the link to the text file.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


AbuseReportMetaData Constructor

Initializes a new instance of the AbuseReportMetaData class.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AbuseReportMetaData()

See Also

AbuseReportMetaData Class
#ctor Overload
Walter.Web.FireWall.ViewModels Namespace


AbuseReportMetaData Methods

The AbuseReportMetaData type exposes the following members.

Methods

 | Name | Description
Public method | HasTxtReport | indicates a text file abuse report exists

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasTxtReport Method

AbuseReportMetaData..::..HasTxtReport Method

indicates a text file abuse report exists

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasTxtReport()

Return Value

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


AbuseReportMetaData Properties

The AbuseReportMetaData type exposes the following members.

Properties

 | Name | Description
Public property | AbuseWorkflowStep | Gets or sets the abuse work-flow step.
Public property | Content | Gets or sets the content in the pdf.
Public property | From | Gets or sets from date of the report.
Public property | HasActivityDiagram | Gets a value indicating whether this instance has activity diagram.
Public property | HasCover | Gets a value indicating whether this instance has cover.
Public property | HasCoverLetter | Gets a value indicating whether this instance has cover letter.
Public property | HasDetails | Gets a value indicating whether this instance has details.
Public property | HasGlossary | Gets a value indicating whether this instance has glossary.
Public property | HasIndex | Gets a value indicating whether this instance has index.
Public property | HasManagementAbstract | Gets a value indicating whether this instance has management abstract.
Public property | HasOverview | Gets a value indicating whether this instance has overview.
Public property | HasTimeline | Gets a value indicating whether this instance has time-line.
Public property | IPAddresses | Gets or sets the count of IP Addresses.
Public property | Pages | Gets or sets the number of pages in the report.
Public property | Pdf | Gets or sets the link to the PDF.
Public property | RangeId | Gets or sets the range identifier.
Public property | Reference | Gets or sets the reference.
Public property | ReportType | Gets or sets the type of the report.
Public property | Till | Gets or sets the till date in the report.
Public property | Txt | Gets or sets the link to the text file.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


AbuseWorkflowStep Property

AbuseReportMetaData..::..AbuseWorkflowStep Property

Gets or sets the abuse work-flow step.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public AbuseWorkflows AbuseWorkflowStep { get; set; }

Field Value

The abuse work-flow step.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


Content Property

AbuseReportMetaData..::..Content Property

Gets or sets the content in the pdf.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallReportContentFeatures Content { get; set; }

Field Value

The content.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


From Property

AbuseReportMetaData..::..From Property

Gets or sets from date of the report.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime From { get; set; }

Field Value

From.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasActivityDiagram Property

AbuseReportMetaData..::..HasActivityDiagram Property

Gets a value indicating whether this instance has activity diagram.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasActivityDiagram { get; }

Field Value

true if this instance has activity diagram; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasCover Property

AbuseReportMetaData..::..HasCover Property

Gets a value indicating whether this instance has cover.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasCover { get; }

Field Value

true if this instance has cover; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasCoverLetter Property

AbuseReportMetaData..::..HasCoverLetter Property

Gets a value indicating whether this instance has cover letter.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasCoverLetter { get; }

Field Value

true if this instance has cover letter; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasDetails Property

AbuseReportMetaData..::..HasDetails Property

Gets a value indicating whether this instance has details.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasDetails { get; }

Field Value

true if this instance has details; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasGlossary Property

AbuseReportMetaData..::..HasGlossary Property

Gets a value indicating whether this instance has glossary.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasGlossary { get; }

Field Value

true if this instance has glossary; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasIndex Property

AbuseReportMetaData..::..HasIndex Property

Gets a value indicating whether this instance has index.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasIndex { get; }

Field Value

true if this instance has index; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasManagementAbstract Property

AbuseReportMetaData..::..HasManagementAbstract Property

Gets a value indicating whether this instance has management abstract.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasManagementAbstract { get; }

Field Value

true if this instance has management abstract; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasOverview Property

AbuseReportMetaData..::..HasOverview Property

Gets a value indicating whether this instance has overview.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasOverview { get; }

Field Value

true if this instance has overview; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


HasTimeline Property

AbuseReportMetaData..::..HasTimeline Property

Gets a value indicating whether this instance has time-line.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool HasTimeline { get; }

Field Value

true if this instance has time-line; otherwise, false.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


IPAddresses Property

AbuseReportMetaData..::..IPAddresses Property

Gets or sets the count of IP Addresses.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int IPAddresses { get; set; }

Field Value

The count.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


Pages Property

AbuseReportMetaData..::..Pages Property

Gets or sets the number of pages in the report.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Pages { get; set; }

Field Value

The pages.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


Pdf Property

AbuseReportMetaData..::..Pdf Property

Gets or sets the link to the PDF.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Pdf { get; set; }

Field Value

The PDF.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


RangeId Property

AbuseReportMetaData..::..RangeId Property

Gets or sets the range identifier.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long RangeId { get; set; }

Field Value

The range identifier.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


Reference Property

AbuseReportMetaData..::..Reference Property

Gets or sets the reference.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Reference { get; set; }

Field Value

The reference.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


ReportType Property

AbuseReportMetaData..::..ReportType Property

Gets or sets the type of the report.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public FireWallReportType ReportType { get; set; }

Field Value

The type of the report.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


Till Property

AbuseReportMetaData..::..Till Property

Gets or sets the till date in the report.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime Till { get; set; }

Field Value

The till.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


Txt Property

AbuseReportMetaData..::..Txt Property

Gets or sets the link to the text file.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string Txt { get; set; }

Field Value

The PDF.

See Also

AbuseReportMetaData Class
Walter.Web.FireWall.ViewModels Namespace


FireWallDiskViolation Class

Contains the discovered disk violations

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class FireWallDiskViolation

See Also

FireWallDiskViolation Members
Walter.Web.FireWall.ViewModels Namespace


FireWallDiskViolation Members

The FireWallDiskViolation type exposes the following members.

Methods

 | Name | Description
 | Parse | Parses the specified json.
Public method | SetValues | Sets the specified values array.
Public method | ToString |

Properties

 | Name | Description
Public property | ActiveOnCapture | Gets a value indicating whether [active on capture].
Public property | ChangeType | Gets the type of the change.
Public property | ExecutingBinary | Gets the path to the binary that the file was changed by.
Public property | ExitCode | Gets the exit code.
Public property | ExitTime | Gets the exit time if process had exited on capturing.
Public property | File | Gets the file that was changed outside of the context of the firewall.
Public property | IsSuspicious | Gets or sets a value indicating whether this file change is suspicious.
Public property | MachineName | Gets the name of the machine.
Public property | Processes | Processes that have had access to the File at the time the event was captured
Public property | ProcessId | Gets the process identifier as it was at the time of capture.
Public property | ProcessName | Gets the name of the process.
Public property | RecordedUtc | Gets the date the change was recorded in UTC.
Public property | Talking | Gets the talking.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


FireWallDiskViolation Methods

The FireWallDiskViolation type exposes the following members.

Methods

 | Name | Description
 | Parse | Parses the specified json.
Public method | SetValues | Sets the specified values array.
Public method | ToString |

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


Parse Method

FireWallDiskViolation..::..Parse Method

Parses the specified json.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public static FireWallDiskViolation Parse(
    string json
)

Parameters

json
Type: String
The json.

Return Value

FireWallDiskViolation.

Exceptions

Exception | Condition
[ArgumentException] | json cannot be null or empty - json

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


SetValues Method

FireWallDiskViolation..::..SetValues Method

Sets the specified values array.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public void SetValues(
    params Object[] values
)

Parameters

values
Type: array< Object >[]()[][]
The values to process.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ToString Method

FireWallDiskViolation..::..ToString Method

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string ToString()

Return Value

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


FireWallDiskViolation Properties

The FireWallDiskViolation type exposes the following members.

Properties

 | Name | Description
Public property | ActiveOnCapture | Gets a value indicating whether [active on capture].
Public property | ChangeType | Gets the type of the change.
Public property | ExecutingBinary | Gets the path to the binary that the file was changed by.
Public property | ExitCode | Gets the exit code.
Public property | ExitTime | Gets the exit time if process had exited on capturing.
Public property | File | Gets the file that was changed outside of the context of the firewall.
Public property | IsSuspicious | Gets or sets a value indicating whether this file change is suspicious.
Public property | MachineName | Gets the name of the machine.
Public property | Processes | Processes that have had access to the File at the time the event was captured
Public property | ProcessId | Gets the process identifier as it was at the time of capture.
Public property | ProcessName | Gets the name of the process.
Public property | RecordedUtc | Gets the date the change was recorded in UTC.
Public property | Talking | Gets the talking.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ActiveOnCapture Property

FireWallDiskViolation..::..ActiveOnCapture Property

Gets a value indicating whether [active on capture].

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool ActiveOnCapture { get; }

Field Value

true if [active on capture]; otherwise, false.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ChangeType Property

FireWallDiskViolation..::..ChangeType Property

Gets the type of the change.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public WatcherChangeTypes ChangeType { get; }

Field Value

The type of the change.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ExecutingBinary Property

FireWallDiskViolation..::..ExecutingBinary Property

Gets the path to the binary that the file was changed by.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ExecutingBinary { get; }

Field Value

The changed by.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ExitCode Property

FireWallDiskViolation..::..ExitCode Property

Gets the exit code.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> ExitCode { get; }

Field Value

The exit code.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ExitTime Property

FireWallDiskViolation..::..ExitTime Property

Gets the exit time if process had exited on capturing.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<DateTime> ExitTime { get; }

Field Value

The exit time.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


File Property

FireWallDiskViolation..::..File Property

Gets the file that was changed outside of the context of the firewall.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string File { get; }

Field Value

The file.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


IsSuspicious Property

FireWallDiskViolation..::..IsSuspicious Property

Gets or sets a value indicating whether this file change is suspicious.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsSuspicious { get; set; }

Field Value

true if this instance is suspicious; otherwise, false.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


MachineName Property

FireWallDiskViolation..::..MachineName Property

Gets the name of the machine.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> MachineName { get; }

Field Value

The name of the machine.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


Processes Property

FireWallDiskViolation..::..Processes Property

Processes that have had access to the File at the time the event was captured

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<ProcessImage> Processes { get; }

Field Value

The processes.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace
IDiskChanges..::..File


ProcessId Property

FireWallDiskViolation..::..ProcessId Property

Gets the process identifier as it was at the time of capture.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<int> ProcessId { get; }

Field Value

The process identifier.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


ProcessName Property

FireWallDiskViolation..::..ProcessName Property

Gets the name of the process.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> ProcessName { get; }

Field Value

The name of the process.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


RecordedUtc Property

FireWallDiskViolation..::..RecordedUtc Property

Gets the date the change was recorded in UTC.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public DateTime RecordedUtc { get; }

Field Value

The recorded change date.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


Talking Property

FireWallDiskViolation..::..Talking Property

Gets the talking.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessRecord> Talking { get; }

Field Value

The talking.

See Also

FireWallDiskViolation Class
Walter.Web.FireWall.ViewModels Namespace


IUserIncidentStats Interface

The view model user incident statistics show how often we have seen a user trigger an incident on a given URL

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserIncidentStats : IUserVisitStats

See Also

IUserIncidentStats Members
Walter.Web.FireWall.ViewModels Namespace


IUserIncidentStats Members

The IUserIncidentStats type exposes the following members.

Methods

 | Name | Description
Public method | GetIncidents | Gets the total incidents violated for the user in a given time span.

Properties

 | Name | Description
Public property | AllIncidents | Gets the incidents for this user.

See Also

IUserIncidentStats Interface
Walter.Web.FireWall.ViewModels Namespace


IUserIncidentStats Methods

The IUserIncidentStats type exposes the following members.

Methods

 | Name | Description
Public method | GetIncidents | Gets the total incidents violated for the user in a given time span.

See Also

IUserIncidentStats Interface
Walter.Web.FireWall.ViewModels Namespace


GetIncidents Method

IUserIncidentStats..::..GetIncidents Method

Gets the total incidents violated for the user in a given time span.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
int GetIncidents(
    TimeSpan timeSpan
)

Parameters

timeSpan
Type: TimeSpan
The time span.

Return Value

The sum of triggered incidents, not the count as the same incident can have be triggered several times

See Also

IUserIncidentStats Interface
Walter.Web.FireWall.ViewModels Namespace


IUserIncidentStats Properties

The IUserIncidentStats type exposes the following members.

Properties

 | Name | Description
Public property | AllIncidents | Gets the incidents for this user.

See Also

IUserIncidentStats Interface
Walter.Web.FireWall.ViewModels Namespace


AllIncidents Property

IUserIncidentStats..::..AllIncidents Property

Gets the incidents for this user.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IEnumerable<IIncident> AllIncidents { get; }

Field Value

The incidents.

See Also

IUserIncidentStats Interface
Walter.Web.FireWall.ViewModels Namespace


IUserVisitStats Interface

visitation statistics for a given user

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public interface IUserVisitStats

See Also

IUserVisitStats Members
Walter.Web.FireWall.ViewModels Namespace


IUserVisitStats Members

The IUserVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | Url | Gets the URL the stats are for (not including parameters).
Public property | UserType | Gets the type of user defining how the user is known to the system
Public property | Visits | Gets the visits to this URL including the query string

See Also

IUserVisitStats Interface
Walter.Web.FireWall.ViewModels Namespace


IUserVisitStats Properties

The IUserVisitStats type exposes the following members.

Properties

 | Name | Description
Public property | Url | Gets the URL the stats are for (not including parameters).
Public property | UserType | Gets the type of user defining how the user is known to the system
Public property | Visits | Gets the visits to this URL including the query string

See Also

IUserVisitStats Interface
Walter.Web.FireWall.ViewModels Namespace


Url Property

IUserVisitStats..::..Url Property

Gets the URL the stats are for (not including parameters).

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
Uri Url { get; }

Field Value

The URL.

See Also

IUserVisitStats Interface
Walter.Web.FireWall.ViewModels Namespace


UserType Property

IUserVisitStats..::..UserType Property

Gets the type of user defining how the user is known to the system

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
UserTypes UserType { get; }

Field Value

The type of the user.

See Also

IUserVisitStats Interface
Walter.Web.FireWall.ViewModels Namespace


Visits Property

IUserVisitStats..::..Visits Property

Gets the visits to this URL including the query string

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
IReadOnlyList<IVisitStats> Visits { get; }

Field Value

The visits.

See Also

IUserVisitStats Interface
Walter.Web.FireWall.ViewModels Namespace


JavaData Class

Class JavaData is used to interact with javascript.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract class JavaData

See Also

JavaData Members
Walter.Web.FireWall.ViewModels Namespace


JavaData Members

The JavaData type exposes the following members.

Properties

 | Name | Description
Public property | PageRequestGroupId | Gets or sets the page request group identifier.
Public property | SessionId | session Id assigned by ASP.net to the users session
Public property | TraceIdentifier | Gets or sets the trace identifier for the page.

See Also

JavaData Class
Walter.Web.FireWall.ViewModels Namespace


JavaData Properties

The JavaData type exposes the following members.

Properties

 | Name | Description
Public property | PageRequestGroupId | Gets or sets the page request group identifier.
Public property | SessionId | session Id assigned by ASP.net to the users session
Public property | TraceIdentifier | Gets or sets the trace identifier for the page.

See Also

JavaData Class
Walter.Web.FireWall.ViewModels Namespace


PageRequestGroupId Property

JavaData..::..PageRequestGroupId Property

Gets or sets the page request group identifier.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long PageRequestGroupId { get; set; }

Field Value

The page request group identifier.

See Also

JavaData Class
Walter.Web.FireWall.ViewModels Namespace


SessionId Property

JavaData..::..SessionId Property

session Id assigned by ASP.net to the users session

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string SessionId { get; set; }

Field Value

The session identifier.

See Also

JavaData Class
Walter.Web.FireWall.ViewModels Namespace


TraceIdentifier Property

JavaData..::..TraceIdentifier Property

Gets or sets the trace identifier for the page.

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<string> TraceIdentifier { get; set; }

Field Value

The trace identifier.

See Also

JavaData Class
Walter.Web.FireWall.ViewModels Namespace


Talking Class

A view model containing the firewall's communications snapshot as well as access to the communications database

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public sealed class Talking

Remarks

The view model allows access to communications that have been discovered at regular intervals during the time the application was active.

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also

Talking Members
Walter.Web.FireWall.ViewModels Namespace


Talking Members

The Talking type exposes the following members.

Properties

 | Name | Description
Public property | AppActivity | The activity of the web application recorded in the current session of the firewall
Public property | Database | Access the WhoisTalking database to query communication history between this server and WAN resources, requires that you use NuGet Package Walter.Net.LookWhoisTalking
Public property | ExternalActivity | Get the external activity recorded in the current session of the firewall
Public property | InAppActivity | Contains all communications recorded in the current session by the web application that was not serving a client requests
Public property | LocalPorts | The local port that are communicating with a computer or service on WAN

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace


Talking Properties

The Talking type exposes the following members.

Properties

 | Name | Description
Public property | AppActivity | The activity of the web application recorded in the current session of the firewall
Public property | Database | Access the WhoisTalking database to query communication history between this server and WAN resources, requires that you use NuGet Package Walter.Net.LookWhoisTalking
Public property | ExternalActivity | Get the external activity recorded in the current session of the firewall
Public property | InAppActivity | Contains all communications recorded in the current session by the web application that was not serving a client requests
Public property | LocalPorts | The local port that are communicating with a computer or service on WAN

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace


AppActivity Property

Talking..::..AppActivity Property

The activity of the web application recorded in the current session of the firewall

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessRecord> AppActivity { get; }

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace
[TcpProcessHistoricRecord]


Database Property

Talking..::..Database Property

Access the WhoisTalking database to query communication history between this server and WAN resources, requires that you use NuGet Package Walter.Net.LookWhoisTalking

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public Nullable<ITalkingProcessesRepository> Database { get; }

Remarks

This database us used for forensic analysis to investigate communications that have taken place between this server and outside resources

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace


ExternalActivity Property

Talking..::..ExternalActivity Property

Get the external activity recorded in the current session of the firewall

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessHistoricRecord> ExternalActivity { get; }

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace
[TcpProcessHistoricRecord]


InAppActivity Property

Talking..::..InAppActivity Property

Contains all communications recorded in the current session by the web application that was not serving a client requests

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IReadOnlyList<TcpProcessRecord> InAppActivity { get; }

Remarks

This will contain all communications by the binaries that are logging your application with or without your knowledge

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace


LocalPorts Property

Talking..::..LocalPorts Property

The local port that are communicating with a computer or service on WAN

Namespace: Walter.Web.FireWall.ViewModels
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public IEnumerable<int> LocalPorts { get; }

Remarks

These are ports discovered by the firewall in the current session

See Also

Talking Class
Walter.Web.FireWall.ViewModels Namespace


Walter.Web.FireWall.WindowsEventLog Namespace

Classes

 | Class | Description
Public class | EventID | EventID contains the constants used for event logging in windows event log
Public class | EventLogReportingSettings | Class EventLogReporingSettings.

Enumerations

 | Enumeration | Description
Public enumeration | EventLogState | Controls the state that the EventLog storage has with the windows EventLog


EventID Class

EventID contains the constants used for event logging in windows event log

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public class EventID

See Also

EventID Members
Walter.Web.FireWall.WindowsEventLog Namespace


EventID Members

The EventID type exposes the following members.

Fields

Name | Description
ACTIVE | access was restored
BLOCKING | Violation that contained a blocking incident, or a blocking incident that was removed (3)
CONTENT_SECURITY_POLICY | Data contains CSP violations (1)
DISK_ACCESS | Disk access reported (4)
FIREWALL_VIOLATIONS | Data contains a firewall violation (2)
IN_ACTIVE | Access was prevented
INCIDENT_RESET | Incident item(s) revoked in Firewall (5)
REPORT_ONLY | report only that an event occured

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


EventID Fields

The EventID type exposes the following members.

Fields

Name | Description
ACTIVE | access was restored
BLOCKING | Violation that contained a blocking incident, or a blocking incident that was removed (3)
CONTENT_SECURITY_POLICY | Data contains CSP violations (1)
DISK_ACCESS | Disk access reported (4)
FIREWALL_VIOLATIONS | Data contains a firewall violation (2)
IN_ACTIVE | Access was prevented
INCIDENT_RESET | Incident item(s) revoked in Firewall (5)
REPORT_ONLY | report only that an event occured

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


ACTIVE Field

EventID..::..ACTIVE Field

access was restored

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const short ACTIVE

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


BLOCKING Field

EventID..::..BLOCKING Field

Violation that contained a blocking incident, or a blocking incident that was removed (3)

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const int BLOCKING

Remarks

Has an integer value of 3, and will have a ACTIVE or IN-ACTIVE value stating if a given IP address was blocked or unblocked

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


CONTENT_SECURITY_POLICY Field

EventID..::..CONTENT_SECURITY_POLICY Field

Data contains CSP violations (1)

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const int CONTENT_SECURITY_POLICY

Remarks

Has an integer value of 1

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


DISK_ACCESS Field

EventID..::..DISK_ACCESS Field

Disk access reported (4)

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const int DISK_ACCESS

Remarks

Has an integer value of 4, can be ACTIVE meaning it blocked/ undid the change, or report_only meaning it only informs that a change happened

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


FIREWALL_VIOLATIONS Field

EventID..::..FIREWALL_VIOLATIONS Field

Data contains a firewall violation (2)

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const int FIREWALL_VIOLATIONS

Remarks

Has an integer value of 2

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


IN_ACTIVE Field

EventID..::..IN_ACTIVE Field

Access was prevented

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const short IN_ACTIVE

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


INCIDENT_RESET Field

EventID..::..INCIDENT_RESET Field

Incident item(s) revoked in Firewall (5)

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const int INCIDENT_RESET

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


REPORT_ONLY Field

EventID..::..REPORT_ONLY Field

report only that an event occured

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const short REPORT_ONLY

See Also

EventID Class
Walter.Web.FireWall.WindowsEventLog Namespace


EventLogReportingSettings Class

Class EventLogReporingSettings.

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public class EventLogReportingSettings

See Also

EventLogReportingSettings Members
Walter.Web.FireWall.WindowsEventLog Namespace


EventLogReportingSettings Members

The EventLogReportingSettings type exposes the following members.

Properties

 | Name | Description
Public property | LogName | Gets or sets the name of the log.
Public property | MachineName | Gets or sets the name of the machine, to use local machine use "."
Public property | SourceName | Gets or sets the name of the source.

See Also

EventLogReportingSettings Class
Walter.Web.FireWall.WindowsEventLog Namespace


EventLogReportingSettings Properties

The EventLogReportingSettings type exposes the following members.

Properties

 | Name | Description
Public property | LogName | Gets or sets the name of the log.
Public property | MachineName | Gets or sets the name of the machine, to use local machine use "."
Public property | SourceName | Gets or sets the name of the source.

See Also

EventLogReportingSettings Class
Walter.Web.FireWall.WindowsEventLog Namespace


LogName Property

EventLogReportingSettings..::..LogName Property

Gets or sets the name of the log.

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public string LogName { get; set; }

Field Value

The name of the log.

See Also

EventLogReportingSettings Class
Walter.Web.FireWall.WindowsEventLog Namespace


MachineName Property

EventLogReportingSettings..::..MachineName Property

Gets or sets the name of the machine, to use local machine use "."

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public string MachineName { get; set; }

Field Value

The name of the machine.

See Also

EventLogReportingSettings Class
Walter.Web.FireWall.WindowsEventLog Namespace


SourceName Property

EventLogReportingSettings..::..SourceName Property

Gets or sets the name of the source.

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public string SourceName { get; set; }

Field Value

The name of the source.

See Also

EventLogReportingSettings Class
Walter.Web.FireWall.WindowsEventLog Namespace


EventLogState Enumeration

Controls the state that the EventLog storage has with the windows EventLog

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public enum EventLogState

Members

Member name | Description
UnKnown | State unknown indicates no connection was made
OnLine | On-line means the connection to the event log was made and interaction is possible
OffLine | OFF-line means the connection to the event log was made and interaction is not possible, usually happens if the process is missing user rights

See Also

Walter.Web.FireWall.WindowsEventLog Namespace


Generic topic title

Namespace:
Assembly: (in .exe)

Syntax

C#


SMTPLoggerExtensionMethods Members

The SMTPLoggerExtensionMethods type exposes the following members.

Methods

Name | Description
SendEmail | Send an email to all users defined in the email configuration of the IFireWall using a non-blocking method

See Also

SMTPLoggerExtensionMethods Class
Walter.Web.FireWall Namespace


ALL Field

DataPayloads..::..ALL Field

All data objects

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..DataPayloads ALL

See Also

AbuseReportCommand..::..DataPayloads Enumeration
Walter.BOM Namespace


BreadCrumbs Field

DataPayloads..::..BreadCrumbs Field

The bread crumbs

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..DataPayloads BreadCrumbs

See Also

AbuseReportCommand..::..DataPayloads Enumeration
Walter.BOM Namespace


None Field

DataPayloads..::..None Field

The none

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..DataPayloads None

See Also

AbuseReportCommand..::..DataPayloads Enumeration
Walter.BOM Namespace


PortBasedAttacks Field

DataPayloads..::..PortBasedAttacks Field

The port based attacks

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..DataPayloads PortBasedAttacks

See Also

AbuseReportCommand..::..DataPayloads Enumeration
Walter.BOM Namespace


Talking Field

DataPayloads..::..Talking Field

The talking violations

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..DataPayloads Talking

See Also

AbuseReportCommand..::..DataPayloads Enumeration
Walter.BOM Namespace


WebRequests Field

DataPayloads..::..WebRequests Field

The web requests

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..DataPayloads WebRequests

See Also

AbuseReportCommand..::..DataPayloads Enumeration
Walter.BOM Namespace


FireWallUser Field

Filter..::..FireWallUser Field

The fire wall user

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..Filter FireWallUser

See Also

AbuseReportCommand..::..Filter Enumeration
Walter.BOM Namespace


IPAddress Field

Filter..::..IPAddress Field

The ip address

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..Filter IPAddress

See Also

AbuseReportCommand..::..Filter Enumeration
Walter.BOM Namespace


ISP_CIDR Field

Filter..::..ISP_CIDR Field

The isp cidr

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..Filter ISP_CIDR

See Also

AbuseReportCommand..::..Filter Enumeration
Walter.BOM Namespace


ISPRangeId Field

Filter..::..ISPRangeId Field

The isp range identifier

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseReportCommand..::..Filter ISPRangeId

See Also

AbuseReportCommand..::..Filter Enumeration
Walter.BOM Namespace


Generated Field

AbuseWorkflows..::..Generated Field

The generated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseWorkflows Generated

See Also

AbuseWorkflows Enumeration
Walter.BOM Namespace


InformedAuthorities Field

AbuseWorkflows..::..InformedAuthorities Field

The informed authorities

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseWorkflows InformedAuthorities

See Also

AbuseWorkflows Enumeration
Walter.BOM Namespace


InformedLegal Field

AbuseWorkflows..::..InformedLegal Field

The informed legal

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseWorkflows InformedLegal

See Also

AbuseWorkflows Enumeration
Walter.BOM Namespace


None Field

AbuseWorkflows..::..None Field

The none

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseWorkflows None

See Also

AbuseWorkflows Enumeration
Walter.BOM Namespace


Replied Field

AbuseWorkflows..::..Replied Field

The replied

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseWorkflows Replied

See Also

AbuseWorkflows Enumeration
Walter.BOM Namespace


Send Field

AbuseWorkflows..::..Send Field

The send

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const AbuseWorkflows Send

See Also

AbuseWorkflows Enumeration
Walter.BOM Namespace


FireWallUser Field

BlacklistLevelHoneyPotPortAccessLevel..::..FireWallUser Field

The fire wall user will be blocked

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlacklistLevelHoneyPotPortAccessLevel FireWallUser

See Also

BlacklistLevelHoneyPotPortAccessLevel Enumeration
Walter.BOM Namespace


InterNetServiceProvider Field

BlacklistLevelHoneyPotPortAccessLevel..::..InterNetServiceProvider Field

The inter net service provider will be blocked

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlacklistLevelHoneyPotPortAccessLevel InterNetServiceProvider

See Also

BlacklistLevelHoneyPotPortAccessLevel Enumeration
Walter.BOM Namespace


IPAddress Field

BlacklistLevelHoneyPotPortAccessLevel..::..IPAddress Field

The IP address will be blocked

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlacklistLevelHoneyPotPortAccessLevel IPAddress

See Also

BlacklistLevelHoneyPotPortAccessLevel Enumeration
Walter.BOM Namespace


None Field

BlacklistLevelHoneyPotPortAccessLevel..::..None Field

The none

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlacklistLevelHoneyPotPortAccessLevel None

See Also

BlacklistLevelHoneyPotPortAccessLevel Enumeration
Walter.BOM Namespace


FireWallRule Field

BlaklistSource..::..FireWallRule Field

The fire wall rule

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlaklistSource FireWallRule

See Also

BlaklistSource Enumeration
Walter.BOM Namespace


HoneyPot Field

BlaklistSource..::..HoneyPot Field

The honey pot

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlaklistSource HoneyPot

See Also

BlaklistSource Enumeration
Walter.BOM Namespace


ManagementDashboard Field

BlaklistSource..::..ManagementDashboard Field

The management dashboard

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlaklistSource ManagementDashboard

See Also

BlaklistSource Enumeration
Walter.BOM Namespace


NetApi Field

BlaklistSource..::..NetApi Field

The net API

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlaklistSource NetApi

See Also

BlaklistSource Enumeration
Walter.BOM Namespace


None Field

BlaklistSource..::..None Field

Not set

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const BlaklistSource None

See Also

BlaklistSource Enumeration
Walter.BOM Namespace


ActionResult Field

ContentTypes..::..ActionResult Field

Generic action result

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes ActionResult

See Also

ContentTypes Enumeration
Walter.BOM Namespace


application Field

ContentTypes..::..application Field

application

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes application

See Also

ContentTypes Enumeration
Walter.BOM Namespace


audio Field

ContentTypes..::..audio Field

audio

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes audio

See Also

ContentTypes Enumeration
Walter.BOM Namespace


css Field

ContentTypes..::..css Field

css rules

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes css

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Excel Field

ContentTypes..::..Excel Field

Microsoft application file in excel format

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Excel

See Also

ContentTypes Enumeration
Walter.BOM Namespace


font Field

ContentTypes..::..font Field

the content contains a font

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes font

See Also

ContentTypes Enumeration
Walter.BOM Namespace


gif Field

ContentTypes..::..gif Field

content is a gif image

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes gif

See Also

ContentTypes Enumeration
Walter.BOM Namespace


gzip Field

ContentTypes..::..gzip Field

gzip

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes gzip

See Also

ContentTypes Enumeration
Walter.BOM Namespace


html Field

ContentTypes..::..html Field

the content is html formated text

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes html

See Also

ContentTypes Enumeration
Walter.BOM Namespace


icon Field

ContentTypes..::..icon Field

content is an icon image

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes icon

See Also

ContentTypes Enumeration
Walter.BOM Namespace


image Field

ContentTypes..::..image Field

the content is an image

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes image

See Also

ContentTypes Enumeration
Walter.BOM Namespace


javascript Field

ContentTypes..::..javascript Field

the content is javascript

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes javascript

See Also

ContentTypes Enumeration
Walter.BOM Namespace


jpg Field

ContentTypes..::..jpg Field

the image is of type jpeg

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes jpg

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Json Field

ContentTypes..::..Json Field

The page contains json structure of some kind as a method returned IEnumerable<T> or a JsonResult

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Json

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Model Field

ContentTypes..::..Model Field

Model mime type

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Model

See Also

ContentTypes Enumeration
Walter.BOM Namespace


mp3 Field

ContentTypes..::..mp3 Field

mp3

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes mp3

See Also

ContentTypes Enumeration
Walter.BOM Namespace


MP4 Field

ContentTypes..::..MP4 Field

video format is mp4

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes MP4

See Also

ContentTypes Enumeration
Walter.BOM Namespace


msword Field

ContentTypes..::..msword Field

Microsoft word

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes msword

See Also

ContentTypes Enumeration
Walter.BOM Namespace


None Field

ContentTypes..::..None Field

un known or not specified

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes None

See Also

ContentTypes Enumeration
Walter.BOM Namespace


octetstream Field

ContentTypes..::..octetstream Field

octet stream /gzip, zip,

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes octetstream

See Also

ContentTypes Enumeration
Walter.BOM Namespace


ogg Field

ContentTypes..::..ogg Field

ogg video or audio

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes ogg

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Page Field

ContentTypes..::..Page Field

The item is a page, normally a root entry unless it is in a IFrame

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Page

See Also

ContentTypes Enumeration
Walter.BOM Namespace


pdf Field

ContentTypes..::..pdf Field

pdf format

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes pdf

See Also

ContentTypes Enumeration
Walter.BOM Namespace


png Field

ContentTypes..::..png Field

the image is of type png

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes png

See Also

ContentTypes Enumeration
Walter.BOM Namespace


powerpoint Field

ContentTypes..::..powerpoint Field

power point

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes powerpoint

See Also

ContentTypes Enumeration
Walter.BOM Namespace


ReactJs Field

ContentTypes..::..ReactJs Field

The page contains React script

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes ReactJs

See Also

ContentTypes Enumeration
Walter.BOM Namespace


spreadsheet Field

ContentTypes..::..spreadsheet Field

spread sheet

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes spreadsheet

See Also

ContentTypes Enumeration
Walter.BOM Namespace


StatusCodeResult Field

ContentTypes..::..StatusCodeResult Field

HTTP status code result

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes StatusCodeResult

See Also

ContentTypes Enumeration
Walter.BOM Namespace


svg Field

ContentTypes..::..svg Field

The SVG image

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes svg

See Also

ContentTypes Enumeration
Walter.BOM Namespace


text Field

ContentTypes..::..text Field

the content is text

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes text

See Also

ContentTypes Enumeration
Walter.BOM Namespace


video Field

ContentTypes..::..video Field

the content is a video

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes video

See Also

ContentTypes Enumeration
Walter.BOM Namespace


vnd Field

ContentTypes..::..vnd Field

vendor specific

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes vnd

See Also

ContentTypes Enumeration
Walter.BOM Namespace


WebM Field

ContentTypes..::..WebM Field

web media format

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes WebM

See Also

ContentTypes Enumeration
Walter.BOM Namespace


WinZip Field

ContentTypes..::..WinZip Field

zip type

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes WinZip

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Word Field

ContentTypes..::..Word Field

Microsoft application file in word format

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Word

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Xml Field

ContentTypes..::..Xml Field

XML data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Xml

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Zip Field

ContentTypes..::..Zip Field

Zip compatible stream

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ContentTypes Zip

See Also

ContentTypes Enumeration
Walter.BOM Namespace


Antiforgery Field

CookieName..::..Antiforgery Field

application anti forgery cookie name used in forms

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName Antiforgery

See Also

CookieName Enumeration
Walter.BOM Namespace


BlockedUser Field

CookieName..::..BlockedUser Field

cookie used for blocked users

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName BlockedUser

See Also

CookieName Enumeration
Walter.BOM Namespace


ConsentCookie Field

CookieName..::..ConsentCookie Field

consent cookie name

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName ConsentCookie

See Also

CookieName Enumeration
Walter.BOM Namespace


FireWallUser Field

CookieName..::..FireWallUser Field

The fire wall user cookie name

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName FireWallUser

See Also

CookieName Enumeration
Walter.BOM Namespace


InMemoryUserTracking Field

CookieName..::..InMemoryUserTracking Field

contains key for in memory user tracking

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName InMemoryUserTracking

See Also

CookieName Enumeration
Walter.BOM Namespace


SessionTracking Field

CookieName..::..SessionTracking Field

manages tracking for sessions

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName SessionTracking

See Also

CookieName Enumeration
Walter.BOM Namespace


UserEcryptionSalt Field

CookieName..::..UserEcryptionSalt Field

cookie used for storing a specific user hashes avoids session high-jacking

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName UserEcryptionSalt

See Also

CookieName Enumeration
Walter.BOM Namespace


UserTracking Field

CookieName..::..UserTracking Field

cookie name used by the firewall to track users if user tracking is enabled

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const CookieName UserTracking

See Also

CookieName Enumeration
Walter.BOM Namespace


AdminEmailNotConfigured Field

ConfigurationErrors..::..AdminEmailNotConfigured Field

No email configured for mail logging

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors AdminEmailNotConfigured

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


BadDefaultRoute Field

ConfigurationErrors..::..BadDefaultRoute Field

Default route format is not supported

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors BadDefaultRoute

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


BCP_Import_Failed Field

ConfigurationErrors..::..BCP_Import_Failed Field

The BCP import failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors BCP_Import_Failed

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


BlockingDetected Field

ConfigurationErrors..::..BlockingDetected Field

A block was triggered as an issue was detected

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors BlockingDetected

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Connection_String_Wrong Field

ConfigurationErrors..::..Connection_String_Wrong Field

The connection string is wrong

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors Connection_String_Wrong

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Create_Default_Table_If_Missing Field

ConfigurationErrors..::..Create_Default_Table_If_Missing Field

The create default table if missing

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors Create_Default_Table_If_Missing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


DatabasePluginMissing Field

ConfigurationErrors..::..DatabasePluginMissing Field

You are missing a database plug-in

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors DatabasePluginMissing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Disk_Access Field

ConfigurationErrors..::..Disk_Access Field

The disk access was denied

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors Disk_Access

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


EmailTemplate Field

ConfigurationErrors..::..EmailTemplate Field

Email template is configured but not provided

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors EmailTemplate

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


EventLogPermissions Field

ConfigurationErrors..::..EventLogPermissions Field

You are missing permissions for the user running the web application to interact with the event log.

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors EventLogPermissions

Remarks

Update the server running the web application's to allow the user or user group to manage and audit security log settings.

View the article for how to set the policy this article

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


GeoPluginMissing Field

ConfigurationErrors..::..GeoPluginMissing Field

The GEO plug-in missing

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors GeoPluginMissing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


IP2LocationDatabase_Get_Country Field

ConfigurationErrors..::..IP2LocationDatabase_Get_Country Field

IP2 location database could not retrieve country

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors IP2LocationDatabase_Get_Country

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


IP2LocationDatabase_Get_Proxy Field

ConfigurationErrors..::..IP2LocationDatabase_Get_Proxy Field

ip 2 location could not get proxy

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors IP2LocationDatabase_Get_Proxy

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


License_Expiring Field

ConfigurationErrors..::..License_Expiring Field

The license will be expiring soon

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors License_Expiring

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


License_Missing_or_Expired Field

ConfigurationErrors..::..License_Missing_or_Expired Field

The license missing or has expired

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors License_Missing_or_Expired

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


License_UpgradeRequired Field

ConfigurationErrors..::..License_UpgradeRequired Field

license update is needed for the feature to work

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors License_UpgradeRequired

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


MaxMind_Api_Key_missing Field

ConfigurationErrors..::..MaxMind_Api_Key_missing Field

The maximum mind API key is missing

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors MaxMind_Api_Key_missing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


NoApplicationPasswordUsed Field

ConfigurationErrors..::..NoApplicationPasswordUsed Field

Application password is not set

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors NoApplicationPasswordUsed

Remarks

Passwords should be protected in configuration files, use NuGet package Walter.Cypher.Configurations or the .Decrypt(); extension method of previous protected strings

Examples

Set application password and never change it.
C#
services.AddFireWall("Your license key", "Your domain key", domainName: new Uri("https://www.test.com", UriKind.Absolute), options =>
      {
          options.Cypher.ApplicationPassword = options.Cypher.ApplicationPassword = Configuration["SitePW"].Decrypt();
          ...
      });

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


None Field

ConfigurationErrors..::..None Field

generic misconfiguration

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors None

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


RegisterLinksApiRouteMissing Field

ConfigurationErrors..::..RegisterLinksApiRouteMissing Field

You did not configure an route on an endpoint to store your user discovery links

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors RegisterLinksApiRouteMissing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


RegisterLinksApiUrlMissing Field

ConfigurationErrors..::..RegisterLinksApiUrlMissing Field

You did not configure the endpoint to store your user discovery links

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors RegisterLinksApiUrlMissing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Rules Field

ConfigurationErrors..::..Rules Field

Rules have not been setup properly

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors Rules

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


SessionUsedButNotConfigured Field

ConfigurationErrors..::..SessionUsedButNotConfigured Field

The session used but not configured in startup.cs

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors SessionUsedButNotConfigured

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


SQL Field

ConfigurationErrors..::..SQL Field

Indicates that the database is not compatible with the applications TSQL statements

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors SQL

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


UserApiPathMissing Field

ConfigurationErrors..::..UserApiPathMissing Field

You did not configure the endpoint to store your user discovery data

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors UserApiPathMissing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


UserApiRouteMissing Field

ConfigurationErrors..::..UserApiRouteMissing Field

You did not configure an route on an endpoint to store your user discovery data

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors UserApiRouteMissing

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


UserDiscoveryNotCalled Field

ConfigurationErrors..::..UserDiscoveryNotCalled Field

User discovery script was not used in the application but the models where submitted

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationErrors UserDiscoveryNotCalled

See Also

ConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Configure_Location_Provider Field

ConfigurationTasks..::..Configure_Location_Provider Field

you need to configure location provider

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks Configure_Location_Provider

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


ConnectionStringIsNotSet Field

ConfigurationTasks..::..ConnectionStringIsNotSet Field

A connection string is not provided however needed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks ConnectionStringIsNotSet

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


None Field

ConfigurationTasks..::..None Field

The none specific, generic task

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks None

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


ObtainLicense Field

ConfigurationTasks..::..ObtainLicense Field

Indicates that you should visit www.asp-waf.com and update the license status for the firewall

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks ObtainLicense

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


Populate_Empty_Table Field

ConfigurationTasks..::..Populate_Empty_Table Field

populate empty tables before functionality can be used

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks Populate_Empty_Table

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


Setup Field

ConfigurationTasks..::..Setup Field

Setup is not configured properly

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks Setup

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


UpdateBlockingPatternsToAllowUrl Field

ConfigurationTasks..::..UpdateBlockingPatternsToAllowUrl Field

update the blocking patterns in IFireWall.Configuration.Rules.BlockedPatterns to allow for a endpoint or change the route

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks UpdateBlockingPatternsToAllowUrl

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


UpdateLicense Field

ConfigurationTasks..::..UpdateLicense Field

Indicates that you should visit www.asp-waf.com and update the license status for the firewall

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks UpdateLicense

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


UrlNotValid Field

ConfigurationTasks..::..UrlNotValid Field

The provided URL is not valid

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ConfigurationTasks UrlNotValid

See Also

ConfigurationTasks Enumeration
Walter.BOM.ErrorCodes Namespace


Generic Field

RuntimeConfigurationErrors..::..Generic Field

generic misconfiguration

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RuntimeConfigurationErrors Generic

See Also

RuntimeConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


SiteContainsBadLink Field

RuntimeConfigurationErrors..::..SiteContainsBadLink Field

the site contains a broken link

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RuntimeConfigurationErrors SiteContainsBadLink

See Also

RuntimeConfigurationErrors Enumeration
Walter.BOM.ErrorCodes Namespace


ArgumentNullException Field

RunTimeErrors..::..ArgumentNullException Field

An argument null exception was generated

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors ArgumentNullException

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


DataStorage Field

RunTimeErrors..::..DataStorage Field

Data storage related exception was generated, can user rights etc

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors DataStorage

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


FileMonitor Field

RunTimeErrors..::..FileMonitor Field

A file was manipulated outside of the scope of the firewall.

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors FileMonitor

Remarks

Use IFireWall.Delete, IFireWall.CreateFile etc for file activity

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


GeographyRequestFailed Field

RunTimeErrors..::..GeographyRequestFailed Field

The geography request failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors GeographyRequestFailed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


GuardAction_IsAuthorized_Failed Field

RunTimeErrors..::..GuardAction_IsAuthorized_Failed Field

The guard action is authorized failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors GuardAction_IsAuthorized_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


IncompatibleFireWallState Field

RunTimeErrors..::..IncompatibleFireWallState Field

the firewall state does not allow for the activity to execute

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors IncompatibleFireWallState

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


License_Server_Generic_Error Field

RunTimeErrors..::..License_Server_Generic_Error Field

license related error

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors License_Server_Generic_Error

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


License_Server_Profile_error Field

RunTimeErrors..::..License_Server_Profile_error Field

profile error

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors License_Server_Profile_error

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


License_Server_Tempering_detected Field

RunTimeErrors..::..License_Server_Tempering_detected Field

license tampering expected

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors License_Server_Tempering_detected

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Maximum_Violations_Reached_Failed Field

RunTimeErrors..::..Maximum_Violations_Reached_Failed Field

The maximum violations reached failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Maximum_Violations_Reached_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


MiddleWareFailed Field

RunTimeErrors..::..MiddleWareFailed Field

The middle ware failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors MiddleWareFailed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


None Field

RunTimeErrors..::..None Field

The none specific, a generic error

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors None

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


None_ASP_NET Field

RunTimeErrors..::..None_ASP_NET Field

The none ASP net

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors None_ASP_NET

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


ReadCookie Field

RunTimeErrors..::..ReadCookie Field

The read a particular cookie failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors ReadCookie

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


ReadOrWriteJson Field

RunTimeErrors..::..ReadOrWriteJson Field

Json serialization error

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors ReadOrWriteJson

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


ReadSession Field

RunTimeErrors..::..ReadSession Field

The read from session, or a particular session item

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors ReadSession

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Reject_DDOS_Failed Field

RunTimeErrors..::..Reject_DDOS_Failed Field

The reject ddos failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Reject_DDOS_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Reject_Known_BadBoys Field

RunTimeErrors..::..Reject_Known_BadBoys Field

The reject known bad boys

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Reject_Known_BadBoys

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Reject_Known_BadBoys_Failed Field

RunTimeErrors..::..Reject_Known_BadBoys_Failed Field

The middle ware failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Reject_Known_BadBoys_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Reject_Penetration_Attempts_Failed Field

RunTimeErrors..::..Reject_Penetration_Attempts_Failed Field

The reject penetration attempts failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Reject_Penetration_Attempts_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Reject_Repeat_Violations_Failed Field

RunTimeErrors..::..Reject_Repeat_Violations_Failed Field

The reject repeat violations failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Reject_Repeat_Violations_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Reject_Wrong_UserType_Failed Field

RunTimeErrors..::..Reject_Wrong_UserType_Failed Field

The reject wrong user type failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Reject_Wrong_UserType_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


SqlSetup Field

RunTimeErrors..::..SqlSetup Field

SQL server setup is not compatible with database

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors SqlSetup

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


TemplateFailed Field

RunTimeErrors..::..TemplateFailed Field

Rendering razor template failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors TemplateFailed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


Url_Validation_Failed Field

RunTimeErrors..::..Url_Validation_Failed Field

The URL validation failed/

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors Url_Validation_Failed

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


User_Code Field

RunTimeErrors..::..User_Code Field

Some code in the user's code base caused an exception

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors User_Code

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


WebRequest Field

RunTimeErrors..::..WebRequest Field

The web request has failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors WebRequest

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


WriteToCookie Field

RunTimeErrors..::..WriteToCookie Field

The write to a cookie failed

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors WriteToCookie

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


WriteToSession Field

RunTimeErrors..::..WriteToSession Field

The write to a particular session item session

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RunTimeErrors WriteToSession

See Also

RunTimeErrors Enumeration
Walter.BOM.ErrorCodes Namespace


AllowIP Field

SecurityCode..::..AllowIP Field

an allowed IP

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SecurityCode AllowIP

See Also

SecurityCode Enumeration
Walter.BOM.ErrorCodes Namespace


BlockIP Field

SecurityCode..::..BlockIP Field

a blocked IP

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SecurityCode BlockIP

See Also

SecurityCode Enumeration
Walter.BOM.ErrorCodes Namespace


ContentSecurityPolicyViolation Field

SecurityCode..::..ContentSecurityPolicyViolation Field

Content Security Policy - CSP violation raised by the browser

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SecurityCode ContentSecurityPolicyViolation

Remarks

CSP is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement to distribution of malware.

To be able to use this use must enable headers in the firewall in startup.cs

Examples

there are 2 ways you can enable header protection
enable headers in firewall always on
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
   {
   //enable firewall always-on and include headers
   app.UseFireWall()
       .UseSecurityHeadersMiddleware();
  }
enable only header protection
app.UseSecurityHeadersMiddleware();

See Also

SecurityCode Enumeration
Walter.BOM.ErrorCodes Namespace


Info Field

SecurityCode..::..Info Field

Information only message

Namespace: Walter.BOM.ErrorCodes
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SecurityCode Info

See Also

SecurityCode Enumeration
Walter.BOM.ErrorCodes Namespace


CookieFactory Field

FeaturesDataSource..::..CookieFactory Field

The cookie factory service used by web-based plugins

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource CookieFactory

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


FireWall Field

FeaturesDataSource..::..FireWall Field

The fire wall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource FireWall

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


FireWallDataSubscription Field

FeaturesDataSource..::..FireWallDataSubscription Field

The fire wall data subscription

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource FireWallDataSubscription

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


HoneyPot Field

FeaturesDataSource..::..HoneyPot Field

Honey pot data detection service

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource HoneyPot

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


None Field

FeaturesDataSource..::..None Field

The none

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource None

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


UserAgent Field

FeaturesDataSource..::..UserAgent Field

The user agent

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource UserAgent

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


WhoisISP Field

FeaturesDataSource..::..WhoisISP Field

The ISP Who-is Internet Service Provider storage

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource WhoisISP

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


WhoisServer Field

FeaturesDataSource..::..WhoisServer Field

The who-is server

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource WhoisServer

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


WhoisTalkingService Field

FeaturesDataSource..::..WhoisTalkingService Field

The who-is talking service

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource WhoisTalkingService

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


WorkFlows Field

FeaturesDataSource..::..WorkFlows Field

The work flows

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FeaturesDataSource WorkFlows

See Also

FeaturesDataSource Enumeration
Walter.BOM Namespace


BlockingTimeOut Field

FirewallAllowReasons..::..BlockingTimeOut Field

The blocking timed-out

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallAllowReasons BlockingTimeOut

See Also

FirewallAllowReasons Enumeration
Walter.BOM Namespace


FireWallManagement Field

FirewallAllowReasons..::..FireWallManagement Field

The firewall management API discovered that the blocked user is to be released

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallAllowReasons FireWallManagement

See Also

FirewallAllowReasons Enumeration
Walter.BOM Namespace


ManualReleaseByAdmin Field

FirewallAllowReasons..::..ManualReleaseByAdmin Field

The manual release by administrator

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallAllowReasons ManualReleaseByAdmin

See Also

FirewallAllowReasons Enumeration
Walter.BOM Namespace


None Field

FirewallAllowReasons..::..None Field

no reason provided

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallAllowReasons None

See Also

FirewallAllowReasons Enumeration
Walter.BOM Namespace


AddhockFileAccessDetected Field

FirewallBlockReasons..::..AddhockFileAccessDetected Field

The add-hock file would be access (access a resource without a page)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons AddhockFileAccessDetected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


AgentsConsideredMalicious Field

FirewallBlockReasons..::..AgentsConsideredMalicious Field

The Bot or user is flagged malicious

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons AgentsConsideredMalicious

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


ALL Field

FirewallBlockReasons..::..ALL Field

All flags turned on

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons ALL

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


AttemptOnPluginConfiguration Field

FirewallBlockReasons..::..AttemptOnPluginConfiguration Field

The attempt on the plug-in configuration

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons AttemptOnPluginConfiguration

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


AttemptToAccessSiteBackup Field

FirewallBlockReasons..::..AttemptToAccessSiteBackup Field

The attempt to access site backup

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons AttemptToAccessSiteBackup

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


AttemptToAccessSiteUsingTheTechnologyStack Field

FirewallBlockReasons..::..AttemptToAccessSiteUsingTheTechnologyStack Field

The attempt to access user wrong technology stack

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons AttemptToAccessSiteUsingTheTechnologyStack

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


AttemptToAccessSystemFiles Field

FirewallBlockReasons..::..AttemptToAccessSystemFiles Field

The attempt to access system files

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons AttemptToAccessSystemFiles

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


BlockedUserGroup Field

FirewallBlockReasons..::..BlockedUserGroup Field

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons BlockedUserGroup

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


CommonVulnerabilitiesExposuresExploitDetected Field

FirewallBlockReasons..::..CommonVulnerabilitiesExposuresExploitDetected Field

A Common Vulnerabilities Exposures exploit was detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons CommonVulnerabilitiesExposuresExploitDetected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


CookieManipulations Field

FirewallBlockReasons..::..CookieManipulations Field

The cookie names used or the content of the cookie is wrong

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons CookieManipulations

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


CrossSiteRequestRejected Field

FirewallBlockReasons..::..CrossSiteRequestRejected Field

Request from external domain

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons CrossSiteRequestRejected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


DataSubscription Field

FirewallBlockReasons..::..DataSubscription Field

data subscription

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons DataSubscription

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


DataValidationError Field

FirewallBlockReasons..::..DataValidationError Field

The data validation error when reading or writing data from an untrusted source

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons DataValidationError

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


DeliberateManipulation Field

FirewallBlockReasons..::..DeliberateManipulation Field

The deliberate manipulation on the data. Indicates that the data is system provided and was not valid, ideal for used in cypher, hashes, ID's

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons DeliberateManipulation

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


DenailOfService Field

FirewallBlockReasons..::..DenailOfService Field

An attempt was made to take the site down

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons DenailOfService

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


DenySystemAccess Field

FirewallBlockReasons..::..DenySystemAccess Field

The deny system access

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons DenySystemAccess

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


DeveloperTools Field

FirewallBlockReasons..::..DeveloperTools Field

The user uses developer tools

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons DeveloperTools

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


GeographyRejected Field

FirewallBlockReasons..::..GeographyRejected Field

wrong geographical location

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons GeographyRejected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


HeaderManipulations Field

FirewallBlockReasons..::..HeaderManipulations Field

Indicates that the headers are not correct either in name or in content

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons HeaderManipulations

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


HoneyPotSocketDetected Field

FirewallBlockReasons..::..HoneyPotSocketDetected Field

A honey-pot socket attack was detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons HoneyPotSocketDetected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


HoneyPotTrap Field

FirewallBlockReasons..::..HoneyPotTrap Field

The honey-pot trap are those items that a normal user would not try to access

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons HoneyPotTrap

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


MaliciousUser Field

FirewallBlockReasons..::..MaliciousUser Field

The user is malicious

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons MaliciousUser

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


MaximumViolationsDetected Field

FirewallBlockReasons..::..MaximumViolationsDetected Field

Maximum violations allowed have already been detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons MaximumViolationsDetected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


NoAccessFromRegion Field

FirewallBlockReasons..::..NoAccessFromRegion Field

The no access from region of connection

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons NoAccessFromRegion

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


NoAccessOutsideofRenderedLinks Field

FirewallBlockReasons..::..NoAccessOutsideofRenderedLinks Field

Access rejected based on rendered link on page , session or history

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons NoAccessOutsideofRenderedLinks

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


None Field

FirewallBlockReasons..::..None Field

No reason specified

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons None

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


PageRereshFishing Field

FirewallBlockReasons..::..PageRereshFishing Field

The page request is refreshed to try and obtain a different outcome provided does not match the one on the page

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons PageRereshFishing

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


PenetrationAttempt Field

FirewallBlockReasons..::..PenetrationAttempt Field

The penetration attempt detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons PenetrationAttempt

Remarks

During development events are triggered regardless of license status, use the OnIncident event of the firewall to detect any blocking rules

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


PhishyRequest Field

FirewallBlockReasons..::..PhishyRequest Field

The request is a phishing request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons PhishyRequest

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


PortScan Field

FirewallBlockReasons..::..PortScan Field

A port scan was detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons PortScan

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


ProxyUser Field

FirewallBlockReasons..::..ProxyUser Field

a proxy user detected and was not allowed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons ProxyUser

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


RepeatedBlockedRequest Field

FirewallBlockReasons..::..RepeatedBlockedRequest Field

The repeated blocked request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons RepeatedBlockedRequest

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


RequestPoisoningDetected Field

FirewallBlockReasons..::..RequestPoisoningDetected Field

The request poisoning detected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons RequestPoisoningDetected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


ResetAttack Field

FirewallBlockReasons..::..ResetAttack Field

The reset attack

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons ResetAttack

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


ScrubbingDetected Field

FirewallBlockReasons..::..ScrubbingDetected Field

The user is considered to be scrubbing

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons ScrubbingDetected

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


SimulatedDevice Field

FirewallBlockReasons..::..SimulatedDevice Field

The user is using a simulated device

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons SimulatedDevice

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


UserEncryptionManipulations Field

FirewallBlockReasons..::..UserEncryptionManipulations Field

Indicates that the user encryption was wrong

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons UserEncryptionManipulations

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


UserGeneratedRejection Field

FirewallBlockReasons..::..UserGeneratedRejection Field

Ad-hock reason end user generated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons UserGeneratedRejection

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


UserIdFaulty Field

FirewallBlockReasons..::..UserIdFaulty Field

The user identifier is faulty, could not be matched or was not created by the firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons UserIdFaulty

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


UserSessionManipulations Field

FirewallBlockReasons..::..UserSessionManipulations Field

Indicates that the user session keys are out of sink or manipulated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons UserSessionManipulations

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


WrongUserGroup Field

FirewallBlockReasons..::..WrongUserGroup Field

The user belongs to the wrong user group and is not allowed to access a given resource

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons WrongUserGroup

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


WrongUserId Field

FirewallBlockReasons..::..WrongUserId Field

The wrong user identifier was provided for a page request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FirewallBlockReasons WrongUserId

See Also

FirewallBlockReasons Enumeration
Walter.BOM Namespace


BadModel Field

FireWallContexts..::..BadModel Field

a controller executed a bad data model

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts BadModel

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


BadRequest Field

FireWallContexts..::..BadRequest Field

the user makes a request that makes no sense

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts BadRequest

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


CommonVulnerabilitiesExposuresExploits Field

FireWallContexts..::..CommonVulnerabilitiesExposuresExploits Field

A Common Vulnerabilities Exposures exploits

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts CommonVulnerabilitiesExposuresExploits

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


CSPViolation Field

FireWallContexts..::..CSPViolation Field

The browser triggered a CSP violation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts CSPViolation

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


Geography Field

FireWallContexts..::..Geography Field

A geography violation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts Geography

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


Manual Field

FireWallContexts..::..Manual Field

Was my a user defined rule outside of the firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts Manual

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


None Field

FireWallContexts..::..None Field

No context specified

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts None

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


Physical Field

FireWallContexts..::..Physical Field

The physical access to data violations

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts Physical

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


Refferer Field

FireWallContexts..::..Refferer Field

The referrer does not fit the list of possible accessible locations

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts Refferer

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


RequiredDataMissing Field

FireWallContexts..::..RequiredDataMissing Field

Required data is missing

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts RequiredDataMissing

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


SensitiveData Field

FireWallContexts..::..SensitiveData Field

Sensitive data was manipulated or unauthorized access was attempted

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts SensitiveData

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


UserProvidedData Field

FireWallContexts..::..UserProvidedData Field

The user provided data to a model that did not validate, can be user error or data injection/manipulation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts UserProvidedData

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


UserProvidedOverFittedData Field

FireWallContexts..::..UserProvidedOverFittedData Field

The user over fitted the model with more data values than expected

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallContexts UserProvidedOverFittedData

See Also

FireWallContexts Enumeration
Walter.BOM Namespace


ActivityDiagram Field

FireWallReportContentFeatures..::..ActivityDiagram Field

The report contains a activity diagram

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures ActivityDiagram

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


Cover Field

FireWallReportContentFeatures..::..Cover Field

The report contains a cover

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures Cover

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


CoverLetter Field

FireWallReportContentFeatures..::..CoverLetter Field

The report contains a cover letter

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures CoverLetter

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


Details Field

FireWallReportContentFeatures..::..Details Field

The report contains details

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures Details

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


Glossary Field

FireWallReportContentFeatures..::..Glossary Field

The report contains a glossary

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures Glossary

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


Index Field

FireWallReportContentFeatures..::..Index Field

The report contains a index

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures Index

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


ManagementAbstract Field

FireWallReportContentFeatures..::..ManagementAbstract Field

The report contains a management abstract

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures ManagementAbstract

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


None Field

FireWallReportContentFeatures..::..None Field

No settings communicated

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures None

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


Overview Field

FireWallReportContentFeatures..::..Overview Field

The report contains overview

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures Overview

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


Timeline Field

FireWallReportContentFeatures..::..Timeline Field

The report contains a Time-Line

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportContentFeatures Timeline

See Also

FireWallReportContentFeatures Enumeration
Walter.BOM Namespace


AbuseReport Field

FireWallReportType..::..AbuseReport Field

The report is a ISP abuse report

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType AbuseReport

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


Country Field

FireWallReportType..::..Country Field

The report context is country

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType Country

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


ENISA Field

FireWallReportType..::..ENISA Field

The report is ENISA related

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType ENISA

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


Generic Field

FireWallReportType..::..Generic Field

The report is a generic report

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType Generic

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


InternetServiceProvider Field

FireWallReportType..::..InternetServiceProvider Field

The report context internet service provider

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType InternetServiceProvider

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


IPAddress Field

FireWallReportType..::..IPAddress Field

The report context is an IP address

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType IPAddress

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


ISO27000 Field

FireWallReportType..::..ISO27000 Field

The report is ISO-27000 related

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType ISO27000

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


None Field

FireWallReportType..::..None Field

The type was not set

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType None

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


SOC Field

FireWallReportType..::..SOC Field

The report is SOC related

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType SOC

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


UserActivity Field

FireWallReportType..::..UserActivity Field

The report context is about a user's activity

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const FireWallReportType UserActivity

See Also

FireWallReportType Enumeration
Walter.BOM Namespace


Afghanistan Field

GeoLocation..::..Afghanistan Field

Afghanistan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Afghanistan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


AFRICA Field

GeoLocation..::..AFRICA Field

Africa covers WESTER_AFRICA | SOUTH_AFRICA | NORTH_AFRICA | MIDDLE_AFRICA

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation AFRICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


AlandIslands Field

GeoLocation..::..AlandIslands Field

Aland islands (Åland islands, is an autonomous region of Finland Comprising around 6,700 islands)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation AlandIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Albania Field

GeoLocation..::..Albania Field

The Republic of Albania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Albania

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Algeria Field

GeoLocation..::..Algeria Field

The People's Democratic Republic of Algeria

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Algeria

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


ALL Field

GeoLocation..::..ALL Field

All

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation ALL

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


AmericanSamoa Field

GeoLocation..::..AmericanSamoa Field

The Territory of American Samoa

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation AmericanSamoa

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Andorra Field

GeoLocation..::..Andorra Field

The Principality of Andorra

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Andorra

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Angola Field

GeoLocation..::..Angola Field

The Republic of Angola

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Angola

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Anguilla Field

GeoLocation..::..Anguilla Field

Anguilla

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Anguilla

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Antarctica Field

GeoLocation..::..Antarctica Field

Antarctica

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Antarctica

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


AntiguaAndBarbuda Field

GeoLocation..::..AntiguaAndBarbuda Field

Antigua and Barbuda

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation AntiguaAndBarbuda

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Argentina Field

GeoLocation..::..Argentina Field

The Argentine Republic

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Argentina

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Armenia Field

GeoLocation..::..Armenia Field

The Republic of Armenia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Armenia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Aruba Field

GeoLocation..::..Aruba Field

Aruba

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Aruba

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


ASIA Field

GeoLocation..::..ASIA Field

Asia covers Afghanistan | Armenia | Azerbaijan | Bangladesh | Bhutan | Brunei | Cambodia | China | Georgia | HongKong | India | Indonesia | Japan | Kazakhstan | NorthKorea | SouthKorea | Kyrgyzstan | Lao | Macao | Malaysia | Maldives | Mongolia | Myanmar | Nepal | Pakistan | Philippines | Singapore | SriLanka | Taiwan | Tajikistan | Thailand | TimorLeste | Turkmenistan | Uzbekistan | VietNam

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation ASIA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Australia Field

GeoLocation..::..Australia Field

Australia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Australia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Austria Field

GeoLocation..::..Austria Field

Austria

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Austria

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Azerbaijan Field

GeoLocation..::..Azerbaijan Field

Azerbaijan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Azerbaijan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bahamas Field

GeoLocation..::..Bahamas Field

The Bahamas

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bahamas

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bahrain Field

GeoLocation..::..Bahrain Field

Bahrain

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bahrain

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


BALTIC_STATES Field

GeoLocation..::..BALTIC_STATES Field

The Baltic states covers Estonia | Latvia | Lithuania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation BALTIC_STATES

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bangladesh Field

GeoLocation..::..Bangladesh Field

Bangladesh

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bangladesh

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Barbados Field

GeoLocation..::..Barbados Field

Barbados

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Barbados

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Belarus Field

GeoLocation..::..Belarus Field

Belarus

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Belarus

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Belgium Field

GeoLocation..::..Belgium Field

Belgium

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Belgium

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Belize Field

GeoLocation..::..Belize Field

Belize

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Belize

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Benin Field

GeoLocation..::..Benin Field

Benin

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Benin

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bermuda Field

GeoLocation..::..Bermuda Field

Bermuda

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bermuda

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bhutan Field

GeoLocation..::..Bhutan Field

Bhutan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bhutan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bolivia Field

GeoLocation..::..Bolivia Field

Bolivia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bolivia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bonaire Field

GeoLocation..::..Bonaire Field

Bonaire

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bonaire

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


BosniaHerzegovina Field

GeoLocation..::..BosniaHerzegovina Field

Bosnia Herzegovina

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation BosniaHerzegovina

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Botswana Field

GeoLocation..::..Botswana Field

Botswana

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Botswana

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


BouvetIsland Field

GeoLocation..::..BouvetIsland Field

Bouvetøya (norway)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation BouvetIsland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Brazil Field

GeoLocation..::..Brazil Field

Brazil

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Brazil

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


BRITISH_INDIAN_OCEAN_TERRITORY Field

GeoLocation..::..BRITISH_INDIAN_OCEAN_TERRITORY Field

The British Indian Ocean Territory

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation BRITISH_INDIAN_OCEAN_TERRITORY

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Brunei Field

GeoLocation..::..Brunei Field

Brunei

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Brunei

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Bulgaria Field

GeoLocation..::..Bulgaria Field

Bulgaria

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Bulgaria

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


BurkinaFaso Field

GeoLocation..::..BurkinaFaso Field

Burkina Faso

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation BurkinaFaso

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Burundi Field

GeoLocation..::..Burundi Field

Burundi

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Burundi

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CaboVerde Field

GeoLocation..::..CaboVerde Field

Cabo Verde

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CaboVerde

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Cambodia Field

GeoLocation..::..Cambodia Field

Cambodia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Cambodia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Cameroon Field

GeoLocation..::..Cameroon Field

Cameroon

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Cameroon

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Canada Field

GeoLocation..::..Canada Field

Canada

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Canada

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CARIBBEAN Field

GeoLocation..::..CARIBBEAN Field

The Caribbean covers Anguilla | AntiguaAndBarbuda | Aruba | Bahamas | Barbados | Bonaire | VirginIslandsBritish | CaymanIslands | Cuba | Curacao | Dominica | Dominican Republic | Grenada | Guadeloupe | Haiti | Jamaica | Martinique | Montserrat | Puerto Rico | Saint Barthelemy | Saint Kitts and Nevis | SaintLucia | Saint Martin | Trinidad And Tobago | Turks and Caicos | US Virgin Islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CARIBBEAN

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CaymanIslands Field

GeoLocation..::..CaymanIslands Field

Cayman Islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CaymanIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CENTRAL_AMERICA Field

GeoLocation..::..CENTRAL_AMERICA Field

Central America covers Belize | CostaRica | ElSalvador | Guatemala | Honduras | Nicaragua | Panama

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CENTRAL_AMERICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CENTRAL_EUROPE Field

GeoLocation..::..CENTRAL_EUROPE Field

The central Europe covers Austria | CzechRepublic | Croatia | Hungary | Poland | Serbia | Slovakia | Slovenia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CENTRAL_EUROPE

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CentralAfricanRepublic Field

GeoLocation..::..CentralAfricanRepublic Field

The Central African Republic

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CentralAfricanRepublic

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Chad Field

GeoLocation..::..Chad Field

The Chad

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Chad

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Chile Field

GeoLocation..::..Chile Field

The Chile

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Chile

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


China Field

GeoLocation..::..China Field

The china

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation China

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


ChristmasIsland Field

GeoLocation..::..ChristmasIsland Field

Christmas Island/Christmas (l'Île)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation ChristmasIsland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CocosIsland Field

GeoLocation..::..CocosIsland Field

Cocos (Keeling) Islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CocosIsland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Colombia Field

GeoLocation..::..Colombia Field

The Colombia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Colombia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Comoros Field

GeoLocation..::..Comoros Field

The Comoros

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Comoros

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Congo Field

GeoLocation..::..Congo Field

Democratic republic of the Congo

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Congo

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CookIslands Field

GeoLocation..::..CookIslands Field

The cook islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CookIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CostaRica Field

GeoLocation..::..CostaRica Field

The Costa Rica

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CostaRica

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CoteDivoire Field

GeoLocation..::..CoteDivoire Field

Cote D'Ivoire (ivory coast)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CoteDivoire

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Croatia Field

GeoLocation..::..Croatia Field

Croatia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Croatia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Cuba Field

GeoLocation..::..Cuba Field

Cuba

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Cuba

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Curacao Field

GeoLocation..::..Curacao Field

Curacao

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Curacao

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Cyprus Field

GeoLocation..::..Cyprus Field

Cyprus

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Cyprus

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


CzechRepublic Field

GeoLocation..::..CzechRepublic Field

Czech republic

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation CzechRepublic

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Denmark Field

GeoLocation..::..Denmark Field

Denmark

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Denmark

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Djibouti Field

GeoLocation..::..Djibouti Field

Djibouti

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Djibouti

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Dominica Field

GeoLocation..::..Dominica Field

Dominica

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Dominica

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


DominicanRepublic Field

GeoLocation..::..DominicanRepublic Field

Dominican republic

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation DominicanRepublic

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


EASTERN_AFRICA Field

GeoLocation..::..EASTERN_AFRICA Field

Eastern Africa covers Brunei | Comoros | Djibouti | Eritrea | Ethiopia | Kenya | Madagascar | Malawi | Mauritius | Mayotte | Mozambique | Reunion | Rwanda | Seychelles | Somalia | Tanzania | Uganda | Zambia | Zimbabwe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation EASTERN_AFRICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


EASTERN_EUROPE Field

GeoLocation..::..EASTERN_EUROPE Field

The eastern Europe covers Belarus | Ukraine | RussianFederation | Romania | Georgia | Moldova | Armenia | Azerbaijan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation EASTERN_EUROPE

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Ecuador Field

GeoLocation..::..Ecuador Field

Ecuador

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Ecuador

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Egypt Field

GeoLocation..::..Egypt Field

Egypt

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Egypt

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


ElSalvador Field

GeoLocation..::..ElSalvador Field

El Salvador

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation ElSalvador

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


EquatorialGuinea Field

GeoLocation..::..EquatorialGuinea Field

Equatorial guinea

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation EquatorialGuinea

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Eritrea Field

GeoLocation..::..Eritrea Field

Eritrea

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Eritrea

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Estonia Field

GeoLocation..::..Estonia Field

Estonia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Estonia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Eswatini Field

GeoLocation..::..Eswatini Field

Eswatini

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Eswatini

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Ethiopia Field

GeoLocation..::..Ethiopia Field

Ethiopia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Ethiopia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


EUROPE Field

GeoLocation..::..EUROPE Field

Europe covers EUROPEAN_UNION | Albania | Andorra | Belarus | BosniaHerzegovina | Croatia | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Moldova | Monaco | Montenegro | Norway | RussianFederation | SanMarino | Serbia | Switzerland | Turkey | Ukraine

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation EUROPE

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


EUROPEAN_UNION Field

GeoLocation..::..EUROPEAN_UNION Field

The European union covers Austria| Aland Islands | Belgium | Bulgaria | Cyprus | CzechRepublic | Denmark | Estonia | Finland | France | Germany | Greece | Hungary | Ireland | Italy | Latvia | Lithuania | Luxembourg | Malta | Netherlands | Poland | Portugal | Romania | Slovakia | Slovenia | Spain | Sweden

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation EUROPEAN_UNION

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


FalklandIslands Field

GeoLocation..::..FalklandIslands Field

Falkland islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation FalklandIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


FaroeIslands Field

GeoLocation..::..FaroeIslands Field

Faroe islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation FaroeIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Fiji Field

GeoLocation..::..Fiji Field

Fiji

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Fiji

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Finland Field

GeoLocation..::..Finland Field

Finland

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Finland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace
GeoLocation..::..AlandIslands


France Field

GeoLocation..::..France Field

France

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation France

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


FrenchGuiana Field

GeoLocation..::..FrenchGuiana Field

French Guiana

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation FrenchGuiana

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


FrenchPolynesia Field

GeoLocation..::..FrenchPolynesia Field

French Polynesia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation FrenchPolynesia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Gabon Field

GeoLocation..::..Gabon Field

Gabon

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Gabon

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Gambia Field

GeoLocation..::..Gambia Field

Gambia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Gambia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Georgia Field

GeoLocation..::..Georgia Field

Georgia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Georgia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Germany Field

GeoLocation..::..Germany Field

Germany

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Germany

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Ghana Field

GeoLocation..::..Ghana Field

Ghana

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Ghana

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Gibraltar Field

GeoLocation..::..Gibraltar Field

Gibraltar

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Gibraltar

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Greece Field

GeoLocation..::..Greece Field

Greece

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Greece

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Greenland Field

GeoLocation..::..Greenland Field

Greenland

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Greenland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Grenada Field

GeoLocation..::..Grenada Field

Grenada

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Grenada

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Guadeloupe Field

GeoLocation..::..Guadeloupe Field

Guadeloupe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Guadeloupe

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Guam Field

GeoLocation..::..Guam Field

Guam

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Guam

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Guatemala Field

GeoLocation..::..Guatemala Field

Guatemala

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Guatemala

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Guernsey Field

GeoLocation..::..Guernsey Field

Guernsey

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Guernsey

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Guinea Field

GeoLocation..::..Guinea Field

Guinea

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Guinea

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


GuineaBissau Field

GeoLocation..::..GuineaBissau Field

Guinea Bissau

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation GuineaBissau

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Guyana Field

GeoLocation..::..Guyana Field

Guyana

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Guyana

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Haiti Field

GeoLocation..::..Haiti Field

Haiti

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Haiti

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


HolySee Field

GeoLocation..::..HolySee Field

Holy see (Vatican)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation HolySee

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Honduras Field

GeoLocation..::..Honduras Field

Honduras

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Honduras

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


HongKong Field

GeoLocation..::..HongKong Field

Hong Kong

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation HongKong

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Hungary Field

GeoLocation..::..Hungary Field

Hungary

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Hungary

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Iceland Field

GeoLocation..::..Iceland Field

Iceland

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Iceland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


India Field

GeoLocation..::..India Field

India

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation India

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Indonesia Field

GeoLocation..::..Indonesia Field

Indonesia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Indonesia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Iran Field

GeoLocation..::..Iran Field

Iran

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Iran

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Iraq Field

GeoLocation..::..Iraq Field

Iraq

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Iraq

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Ireland Field

GeoLocation..::..Ireland Field

Ireland

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Ireland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


IsleofMan Field

GeoLocation..::..IsleofMan Field

Isle of Aan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation IsleofMan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Israel Field

GeoLocation..::..Israel Field

Israel

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Israel

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Italy Field

GeoLocation..::..Italy Field

Italy

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Italy

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Jamaica Field

GeoLocation..::..Jamaica Field

Jamaica

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Jamaica

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Japan Field

GeoLocation..::..Japan Field

Japan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Japan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Jersey Field

GeoLocation..::..Jersey Field

Jersey

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Jersey

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Jordan Field

GeoLocation..::..Jordan Field

Jordan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Jordan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Kazakhstan Field

GeoLocation..::..Kazakhstan Field

Kazakhstan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Kazakhstan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Kenya Field

GeoLocation..::..Kenya Field

Kenya

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Kenya

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Kiribati Field

GeoLocation..::..Kiribati Field

Kiribati

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Kiribati

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Kuwait Field

GeoLocation..::..Kuwait Field

Kuwait

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Kuwait

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Kyrgyzstan Field

GeoLocation..::..Kyrgyzstan Field

Kyrgyzstan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Kyrgyzstan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Lao Field

GeoLocation..::..Lao Field

Lao

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Lao

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


LATIN_AMERICA Field

GeoLocation..::..LATIN_AMERICA Field

Latin America covers SOUTH_AMERICA | CENTRAL_AMERICA

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation LATIN_AMERICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Latvia Field

GeoLocation..::..Latvia Field

Latvia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Latvia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Lebanon Field

GeoLocation..::..Lebanon Field

Lebanon

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Lebanon

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Lesotho Field

GeoLocation..::..Lesotho Field

Lesotho

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Lesotho

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Liberia Field

GeoLocation..::..Liberia Field

Liberia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Liberia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Libya Field

GeoLocation..::..Libya Field

Libya

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Libya

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Liechtenstein Field

GeoLocation..::..Liechtenstein Field

Liechtenstein

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Liechtenstein

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Lithuania Field

GeoLocation..::..Lithuania Field

Lithuania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Lithuania

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Luxembourg Field

GeoLocation..::..Luxembourg Field

Luxembourg

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Luxembourg

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Macao Field

GeoLocation..::..Macao Field

Macao

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Macao

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Madagascar Field

GeoLocation..::..Madagascar Field

Madagascar

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Madagascar

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Malawi Field

GeoLocation..::..Malawi Field

Malawi

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Malawi

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Malaysia Field

GeoLocation..::..Malaysia Field

Malaysia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Malaysia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Maldives Field

GeoLocation..::..Maldives Field

Maldives

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Maldives

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mali Field

GeoLocation..::..Mali Field

Mali

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mali

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Malta Field

GeoLocation..::..Malta Field

Malta

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Malta

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


MarshallIslands Field

GeoLocation..::..MarshallIslands Field

Marshall islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation MarshallIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Martinique Field

GeoLocation..::..Martinique Field

Martinique

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Martinique

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mauritania Field

GeoLocation..::..Mauritania Field

Mauritania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mauritania

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mauritius Field

GeoLocation..::..Mauritius Field

Mauritius

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mauritius

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mayotte Field

GeoLocation..::..Mayotte Field

Mayotte

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mayotte

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mexico Field

GeoLocation..::..Mexico Field

Mexico

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mexico

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Micronesia Field

GeoLocation..::..Micronesia Field

Micronesia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Micronesia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


MIDDLE_AFRICA Field

GeoLocation..::..MIDDLE_AFRICA Field

Middle Africa covers Angola | Cameroon | Central African Republic | Chad | Congo | Equatorial Guinea | Gabon | São Tomé and Príncipe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation MIDDLE_AFRICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


MIDDLE_EAST Field

GeoLocation..::..MIDDLE_EAST Field

The middle east definition covers = Bahrain | Iraq | Iraq | Israel | Jordan | Kuwait | Lebanon | Oman | Palestine | Qatar | SaudiArabia | Syrian | Yemen

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation MIDDLE_EAST

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Moldova Field

GeoLocation..::..Moldova Field

Moldova

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Moldova

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Monaco Field

GeoLocation..::..Monaco Field

Monaco

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Monaco

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mongolia Field

GeoLocation..::..Mongolia Field

Mongolia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mongolia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Montenegro Field

GeoLocation..::..Montenegro Field

Montenegro

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Montenegro

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Montserrat Field

GeoLocation..::..Montserrat Field

Montserrat

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Montserrat

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Morocco Field

GeoLocation..::..Morocco Field

Morocco

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Morocco

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Mozambique Field

GeoLocation..::..Mozambique Field

Mozambique

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Mozambique

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Myanmar Field

GeoLocation..::..Myanmar Field

Myanmar

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Myanmar

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Namibia Field

GeoLocation..::..Namibia Field

Namibia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Namibia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Nauru Field

GeoLocation..::..Nauru Field

Nauru

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Nauru

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Nepal Field

GeoLocation..::..Nepal Field

Nepal

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Nepal

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Netherlands Field

GeoLocation..::..Netherlands Field

Netherlands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Netherlands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NewCaledonia Field

GeoLocation..::..NewCaledonia Field

Caledonia.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NewCaledonia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NewZealand Field

GeoLocation..::..NewZealand Field

New Zealand.

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NewZealand

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Nicaragua Field

GeoLocation..::..Nicaragua Field

Nicaragua

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Nicaragua

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Niger Field

GeoLocation..::..Niger Field

Niger

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Niger

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Nigeria Field

GeoLocation..::..Nigeria Field

Nigeria

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Nigeria

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Niue Field

GeoLocation..::..Niue Field

Niue

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Niue

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NorfolkIsland Field

GeoLocation..::..NorfolkIsland Field

Norfolk island

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NorfolkIsland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NORTH_AFRICA Field

GeoLocation..::..NORTH_AFRICA Field

North Africa covers Algeria | Egypt | Libya | Morocco | SouthSudan | Sudan | Tunisia | Mauritania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NORTH_AFRICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NORTH_AMERICA Field

GeoLocation..::..NORTH_AMERICA Field

North America covers Bermuda | Canada | Greenland | Saint Pierre and Miquelon | United States

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NORTH_AMERICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NorthernMarianaIslands Field

GeoLocation..::..NorthernMarianaIslands Field

Northern Mariana islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NorthernMarianaIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NorthKorea Field

GeoLocation..::..NorthKorea Field

North Korea

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NorthKorea

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


NorthMacedonia Field

GeoLocation..::..NorthMacedonia Field

North Macedonia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation NorthMacedonia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Norway Field

GeoLocation..::..Norway Field

Norway

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Norway

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


OCEANIA Field

GeoLocation..::..OCEANIA Field

The Oceania definition covers Australia | Fiji | FrenchPolynesia | Guam | Kiribati | MarshallIslands | Micronesia | NewCaledonia | NewZealand | PapuaNewGuinea | Samoa | SolomonIslands | Tonga | Vanuatu

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation OCEANIA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Oman Field

GeoLocation..::..Oman Field

Oman

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Oman

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Pakistan Field

GeoLocation..::..Pakistan Field

Pakistan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Pakistan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Palau Field

GeoLocation..::..Palau Field

Palau

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Palau

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Palestine Field

GeoLocation..::..Palestine Field

Palestine

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Palestine

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Panama Field

GeoLocation..::..Panama Field

Panama

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Panama

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


PapuaNewGuinea Field

GeoLocation..::..PapuaNewGuinea Field

Papua new guinea

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation PapuaNewGuinea

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Paraguay Field

GeoLocation..::..Paraguay Field

Paraguay

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Paraguay

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Peru Field

GeoLocation..::..Peru Field

Peru

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Peru

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Philippines Field

GeoLocation..::..Philippines Field

Philippines

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Philippines

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Poland Field

GeoLocation..::..Poland Field

Poland

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Poland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Portugal Field

GeoLocation..::..Portugal Field

Portugal

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Portugal

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


PuertoRico Field

GeoLocation..::..PuertoRico Field

Puerto Rico

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation PuertoRico

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Qatar Field

GeoLocation..::..Qatar Field

Qatar

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Qatar

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


RepCongo Field

GeoLocation..::..RepCongo Field

the Republic of the Congo

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation RepCongo

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Reunion Field

GeoLocation..::..Reunion Field

Reunion

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Reunion

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Romania Field

GeoLocation..::..Romania Field

Romania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Romania

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


RussianFederation Field

GeoLocation..::..RussianFederation Field

Russian federation

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation RussianFederation

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Rwanda Field

GeoLocation..::..Rwanda Field

Rwanda

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Rwanda

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaintBarthelemy Field

GeoLocation..::..SaintBarthelemy Field

Saint Barthélemy

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaintBarthelemy

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaintKittsAndNevis Field

GeoLocation..::..SaintKittsAndNevis Field

Saint Kitts and Nevis

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaintKittsAndNevis

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaintLucia Field

GeoLocation..::..SaintLucia Field

Saint Lucia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaintLucia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaintMartin Field

GeoLocation..::..SaintMartin Field

Saint Martin

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaintMartin

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaintPierreAndMiquelon Field

GeoLocation..::..SaintPierreAndMiquelon Field

Saint Pierre and miquelon

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaintPierreAndMiquelon

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaintVincentandTheGrenadines Field

GeoLocation..::..SaintVincentandTheGrenadines Field

Saint Vincent and the Grenadines

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaintVincentandTheGrenadines

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Samoa Field

GeoLocation..::..Samoa Field

Samoa

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Samoa

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SanMarino Field

GeoLocation..::..SanMarino Field

San Marino

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SanMarino

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaoTomeAndPrincipe Field

GeoLocation..::..SaoTomeAndPrincipe Field

Sao Tome and Principe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaoTomeAndPrincipe

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SaudiArabia Field

GeoLocation..::..SaudiArabia Field

Saudi Arabia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SaudiArabia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Senegal Field

GeoLocation..::..Senegal Field

Senegal

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Senegal

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Serbia Field

GeoLocation..::..Serbia Field

Serbia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Serbia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Seychelles Field

GeoLocation..::..Seychelles Field

The Seychelles

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Seychelles

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SierraLeone Field

GeoLocation..::..SierraLeone Field

The Sierra Leone

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SierraLeone

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Singapore Field

GeoLocation..::..Singapore Field

Singapore

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Singapore

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SintMaarten Field

GeoLocation..::..SintMaarten Field

Sint Maarten

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SintMaarten

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Slovakia Field

GeoLocation..::..Slovakia Field

Slovakia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Slovakia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Slovenia Field

GeoLocation..::..Slovenia Field

Slovenia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Slovenia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SolomonIslands Field

GeoLocation..::..SolomonIslands Field

Solomon islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SolomonIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Somalia Field

GeoLocation..::..Somalia Field

Somalia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Somalia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SOUTH_AFRICA Field

GeoLocation..::..SOUTH_AFRICA Field

South Africa covers Botswana | Eswatini | Lesotho | Namibia | South Africa

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SOUTH_AFRICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SOUTH_AMERICA Field

GeoLocation..::..SOUTH_AMERICA Field

South America contains Argentina | Bolivia | Brazil | Chile | Colombia | Ecuador | Falkland Islands | French Guiana | Paraguay | Peru | Suriname | Uruguay | Venezuela

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SOUTH_AMERICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SouthAfrica Field

GeoLocation..::..SouthAfrica Field

South Africa

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SouthAfrica

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SouthKorea Field

GeoLocation..::..SouthKorea Field

South Korea

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SouthKorea

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SouthSudan Field

GeoLocation..::..SouthSudan Field

South Sudan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SouthSudan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Spain Field

GeoLocation..::..Spain Field

Spain

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Spain

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


SriLanka Field

GeoLocation..::..SriLanka Field

Sri Lanka

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation SriLanka

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Sudan Field

GeoLocation..::..Sudan Field

Sudan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Sudan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Suriname Field

GeoLocation..::..Suriname Field

Suriname

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Suriname

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Sweden Field

GeoLocation..::..Sweden Field

Sweden

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Sweden

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Switzerland Field

GeoLocation..::..Switzerland Field

Switzerland

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Switzerland

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Syrian Field

GeoLocation..::..Syrian Field

Syrian

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Syrian

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Taiwan Field

GeoLocation..::..Taiwan Field

Taiwan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Taiwan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Tajikistan Field

GeoLocation..::..Tajikistan Field

Tajikistan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Tajikistan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Tanzania Field

GeoLocation..::..Tanzania Field

Tanzania

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Tanzania

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Thailand Field

GeoLocation..::..Thailand Field

Thailand

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Thailand

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


THE_AMERICAS Field

GeoLocation..::..THE_AMERICAS Field

The Americas covers NORTH_AMERICA | LATIN_AMERICA | CARIBEAN

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation THE_AMERICAS

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


TimorLeste Field

GeoLocation..::..TimorLeste Field

Timor Leste (East Timor)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation TimorLeste

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Togo Field

GeoLocation..::..Togo Field

Togo

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Togo

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Tokelau Field

GeoLocation..::..Tokelau Field

Tokelau

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Tokelau

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Tonga Field

GeoLocation..::..Tonga Field

Tonga

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Tonga

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


TrinidadAndTobago Field

GeoLocation..::..TrinidadAndTobago Field

Trinidad and Tobago

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation TrinidadAndTobago

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Tunisia Field

GeoLocation..::..Tunisia Field

Tunisia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Tunisia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Turkey Field

GeoLocation..::..Turkey Field

Turkey

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Turkey

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Turkmenistan Field

GeoLocation..::..Turkmenistan Field

Turkmenistan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Turkmenistan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


TurksAndCaicos Field

GeoLocation..::..TurksAndCaicos Field

Turks and Caicos

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation TurksAndCaicos

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Tuvalu Field

GeoLocation..::..Tuvalu Field

Tuvalu

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Tuvalu

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Uganda Field

GeoLocation..::..Uganda Field

Uganda

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Uganda

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Ukraine Field

GeoLocation..::..Ukraine Field

Ukraine

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Ukraine

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


UnitedArabEmirates Field

GeoLocation..::..UnitedArabEmirates Field

The United Arab Emirates (UAE)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation UnitedArabEmirates

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


UnitedKingdom Field

GeoLocation..::..UnitedKingdom Field

The United Kingdom

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation UnitedKingdom

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


UnitedStates Field

GeoLocation..::..UnitedStates Field

The United States

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation UnitedStates

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


UnitedStatesOutlyingIslands Field

GeoLocation..::..UnitedStatesOutlyingIslands Field

The United states outlying islands (Baker Island, Howland Island, Jarvis Island, Johnston Atoll, Kingman Reef, Midway Atoll, Palmyra Atoll, and Wake Island, Navassa Island.)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation UnitedStatesOutlyingIslands

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


UnKnown Field

GeoLocation..::..UnKnown Field

Unknown region or not supported by provider

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation UnKnown

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Uruguay Field

GeoLocation..::..Uruguay Field

Uruguay

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Uruguay

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Uzbekistan Field

GeoLocation..::..Uzbekistan Field

Uzbekistan

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Uzbekistan

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Vanuatu Field

GeoLocation..::..Vanuatu Field

Vanuatu

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Vanuatu

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Venezuela Field

GeoLocation..::..Venezuela Field

Venezuela

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Venezuela

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


VietNam Field

GeoLocation..::..VietNam Field

Viet Nam

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation VietNam

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


VirginIslandsBritish Field

GeoLocation..::..VirginIslandsBritish Field

British Virgin Islands

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation VirginIslandsBritish

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


VirginIslandsUS Field

GeoLocation..::..VirginIslandsUS Field

The virgin islands (United States)

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation VirginIslandsUS

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


WallisAndFutuna Field

GeoLocation..::..WallisAndFutuna Field

Wallis and Futuna

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation WallisAndFutuna

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


WESTER_AFRICA Field

GeoLocation..::..WESTER_AFRICA Field

Wester Africa covers Benin | BurkinaFaso | CaboVerde | CoteDivoire | Gambia | Ghana | Guinea | GuineaBissau | Liberia | Mali | Mauritania | Niger | Senegal | SierraLeone | Togo

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation WESTER_AFRICA

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


WESTERN_EUROPE Field

GeoLocation..::..WESTERN_EUROPE Field

Western Europe covers EUROPEAN_UNION | Andorra | FaroeIslands | Gibraltar | Guernsey | Iceland | Jersey | Liechtenstein | Monaco | Norway | Switzerland, United Kingdom

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation WESTERN_EUROPE

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Yemen Field

GeoLocation..::..Yemen Field

Yemen

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Yemen

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Zambia Field

GeoLocation..::..Zambia Field

Zambia

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Zambia

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


Zimbabwe Field

GeoLocation..::..Zimbabwe Field

Zimbabwe

Namespace: Walter.BOM.Geo
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GeoLocation Zimbabwe

See Also

GeoLocation Enumeration
Walter.BOM.Geo Namespace


EscalatedTracking Field

GuardResponse..::..EscalatedTracking Field

escalated tracking for user and IP address as the user generated incidents just did not reach a "maximum allowed incident" combination

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse EscalatedTracking

See Also

GuardResponse Enumeration
Walter.BOM Namespace


HttpErrorCode Field

GuardResponse..::..HttpErrorCode Field

Module will generate a HTTP error state

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse HttpErrorCode

See Also

GuardResponse Enumeration
Walter.BOM Namespace


None Field

GuardResponse..::..None Field

No Guard response was needed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse None

See Also

GuardResponse Enumeration
Walter.BOM Namespace


NoResponse Field

GuardResponse..::..NoResponse Field

The module will give no response to the user not even a error state

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse NoResponse

See Also

GuardResponse Enumeration
Walter.BOM Namespace


RedirectHttpToWarningsPage Field

GuardResponse..::..RedirectHttpToWarningsPage Field

The firewall may redirects the user to a warn page or a off-site

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse RedirectHttpToWarningsPage

See Also

GuardResponse Enumeration
Walter.BOM Namespace


ReplyWithLegalNotice Field

GuardResponse..::..ReplyWithLegalNotice Field

The module will reply with legal notice

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse ReplyWithLegalNotice

See Also

GuardResponse Enumeration
Walter.BOM Namespace


ReplyWithPayload Field

GuardResponse..::..ReplyWithPayload Field

The model will reply with a payload (offensive response)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const GuardResponse ReplyWithPayload

See Also

GuardResponse Enumeration
Walter.BOM Namespace


Antiforgery Field

HeaderName..::..Antiforgery Field

The anti forgery header name

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const HeaderName Antiforgery

See Also

HeaderName Enumeration
Walter.BOM Namespace


PageRequestGroup Field

HeaderName..::..PageRequestGroup Field

The page request group

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const HeaderName PageRequestGroup

See Also

HeaderName Enumeration
Walter.BOM Namespace


Salt Field

HeaderName..::..Salt Field

The salt entry (not the user)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const HeaderName Salt

See Also

HeaderName Enumeration
Walter.BOM Namespace


SessionTrackingId Field

HeaderName..::..SessionTrackingId Field

The session tracking identifier

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const HeaderName SessionTrackingId

See Also

HeaderName Enumeration
Walter.BOM Namespace


UserEncryptionSalt Field

HeaderName..::..UserEncryptionSalt Field

The user encryption salt

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const HeaderName UserEncryptionSalt

See Also

HeaderName Enumeration
Walter.BOM Namespace


UserTracking Field

HeaderName..::..UserTracking Field

The user tracking header name

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const HeaderName UserTracking

See Also

HeaderName Enumeration
Walter.BOM Namespace


AddHockRequests Field

IncidentAssertType..::..AddHockRequests Field

Request to resource from outside of the domain like links to documents images etc

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType AddHockRequests

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


AgentsConsideredMalicious Field

IncidentAssertType..::..AgentsConsideredMalicious Field

Bad user agent

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType AgentsConsideredMalicious

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


Blacklisted Field

IncidentAssertType..::..Blacklisted Field

The user, IP address, or ISP was blacklisted

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType Blacklisted

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


BlockDurationExpires Field

IncidentAssertType..::..BlockDurationExpires Field

The blocking duration expires on provided date

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType BlockDurationExpires

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


DDOSPageLoads Field

IncidentAssertType..::..DDOSPageLoads Field

Requests vs allowed requests

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType DDOSPageLoads

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


DDOSTimeSpan Field

IncidentAssertType..::..DDOSTimeSpan Field

Timespan of measuring request counts

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType DDOSTimeSpan

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


EffectiveCSPDirective Field

IncidentAssertType..::..EffectiveCSPDirective Field

the effective CSP directive on the page

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType EffectiveCSPDirective

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


HidRatePageLoads Field

IncidentAssertType..::..HidRatePageLoads Field

Page load vs allowed loads

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType HidRatePageLoads

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


HitRateTimeSpan Field

IncidentAssertType..::..HitRateTimeSpan Field

Timespan of measuring page load counts

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType HitRateTimeSpan

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


HoneyPotPortUsers Field

IncidentAssertType..::..HoneyPotPortUsers Field

Detected User using HoneyPot

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType HoneyPotPortUsers

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


InternetServiceProviderBlocksUserAgent Field

IncidentAssertType..::..InternetServiceProviderBlocksUserAgent Field

The Internet service provider is blocked

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType InternetServiceProviderBlocksUserAgent

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


Location Field

IncidentAssertType..::..Location Field

the location where the pattern was found to be in violation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType Location

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


MaximumViolations Field

IncidentAssertType..::..MaximumViolations Field

Maximum violations reached

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType MaximumViolations

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


Model Field

IncidentAssertType..::..Model Field

The endpoint expected a model but none where provided

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType Model

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


NotSet Field

IncidentAssertType..::..NotSet Field

The type was not set

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType NotSet

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


PageState Field

IncidentAssertType..::..PageState Field

Page/ request status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType PageState

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


Pattern Field

IncidentAssertType..::..Pattern Field

the pattern discovered to be in violation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType Pattern

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


PenetrationAttempt Field

IncidentAssertType..::..PenetrationAttempt Field

The url contains a SQL or script injection

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType PenetrationAttempt

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


PoisonedCookies Field

IncidentAssertType..::..PoisonedCookies Field

Incident created due to cookie poisoning

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType PoisonedCookies

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


PortScann Field

IncidentAssertType..::..PortScann Field

The indecent is of type port scan indicating that the user tried to access a non-intended port

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType PortScann

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


Referrer Field

IncidentAssertType..::..Referrer Field

The referrer value provided

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType Referrer

Remarks

Referrer is the link uses to get to this location, this method depends on HTTPS and the firewall user tracking, if both are off then this will generate false positives

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


RefreshRatePageLoads Field

IncidentAssertType..::..RefreshRatePageLoads Field

The page was refreshed more often than allowed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType RefreshRatePageLoads

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


RepeatViolator Field

IncidentAssertType..::..RepeatViolator Field

the requester is doing repeated violations

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType RepeatViolator

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


Report Field

IncidentAssertType..::..Report Field

special type showing the whole incident report of the users session

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType Report

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


RequestersAssociations Field

IncidentAssertType..::..RequestersAssociations Field

The request is not associated in the right way with the user validated via the PageRequestId

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType RequestersAssociations

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


RuleNr Field

IncidentAssertType..::..RuleNr Field

an optional rule number detailing the reason

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType RuleNr

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


ScrubbingPageLoads Field

IncidentAssertType..::..ScrubbingPageLoads Field

data load vs allowed loads

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType ScrubbingPageLoads

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


ScrubbingTimeSpan Field

IncidentAssertType..::..ScrubbingTimeSpan Field

Timespan of measuring data load counts

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType ScrubbingTimeSpan

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


SessionTrackingCookie Field

IncidentAssertType..::..SessionTrackingCookie Field

FireWall Session in Cookie

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType SessionTrackingCookie

Remarks

The firewall assigns a session ID to each firewall user session keeping track of user activity during a visit and validates user plausibility for interaction

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


SessionTrackingCookieSet Field

IncidentAssertType..::..SessionTrackingCookieSet Field

indicate if optional cookie was used when tracking session cookie values

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType SessionTrackingCookieSet

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


SessionTrackingHeader Field

IncidentAssertType..::..SessionTrackingHeader Field

FireWall Session ID in header

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType SessionTrackingHeader

Remarks

The firewall assigns a session ID to each firewall user session keeping track of user activity during a visit and validates user plausibility for interaction

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


SiteMapStatus Field

IncidentAssertType..::..SiteMapStatus Field

SiteMap status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType SiteMapStatus

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


TCPResetAttack Field

IncidentAssertType..::..TCPResetAttack Field

The source used a ResetAttack to block the application

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType TCPResetAttack

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


UserCookieSalt Field

IncidentAssertType..::..UserCookieSalt Field

Salt cookie value

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType UserCookieSalt

Remarks

User salt get injected in the page header and can be used in JavaScript to send as a identification for user in Ajax post backs. Salt is the key used when encrypting or decrypting symmetric cypher data

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


UserCookieSaltSet Field

IncidentAssertType..::..UserCookieSaltSet Field

indicate if optional cookie was used when tracking user salt cookie values

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType UserCookieSaltSet

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


UserGenerated Field

IncidentAssertType..::..UserGenerated Field

User generated incident type and will contain the rule supplied by the user code

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType UserGenerated

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


UserHeaderSalt Field

IncidentAssertType..::..UserHeaderSalt Field

Salt header value

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType UserHeaderSalt

Remarks

User salt get injected in the page header and can be used in JavaScript to send as a identification for user in Ajax post backs. Salt is the key used when encrypting or decrypting symmetric cypher data

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


ViolatedCSPDirective Field

IncidentAssertType..::..ViolatedCSPDirective Field

The violated directive in the report

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType ViolatedCSPDirective

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


WrongAccessLocation Field

IncidentAssertType..::..WrongAccessLocation Field

the geographical location from where the resource was requested is not supposed to access the resource

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType WrongAccessLocation

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


WrongAccessMethod Field

IncidentAssertType..::..WrongAccessMethod Field

Wrong way of accessing an endpoint, can be that a HttpGet was used on a HttpPost endpoint

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType WrongAccessMethod

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


WrongUserType Field

IncidentAssertType..::..WrongUserType Field

The user accessing the resource is not associated with the correct group

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const IncidentAssertType WrongUserType

See Also

IncidentAssertType Enumeration
Walter.BOM Namespace


ActiveDirectory Field

InterceptLocations..::..ActiveDirectory Field

The active directory

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations ActiveDirectory

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


EMailOperator Field

InterceptLocations..::..EMailOperator Field

The e mail operator will manually process the intercept request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations EMailOperator

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


EventLog Field

InterceptLocations..::..EventLog Field

The windows eventlog

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations EventLog

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


ExternalFireWall Field

InterceptLocations..::..ExternalFireWall Field

The external firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations ExternalFireWall

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


ILogger Field

InterceptLocations..::..ILogger Field

The logger class used

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations ILogger

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


InApp Field

InterceptLocations..::..InApp Field

The in application

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations InApp

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


InAppIIS Field

InterceptLocations..::..InAppIIS Field

In IIS IP address and Domain Restrictions for the application

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations InAppIIS

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


InServerlIIS Field

InterceptLocations..::..InServerlIIS Field

The global IIS

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations InServerlIIS

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


None Field

InterceptLocations..::..None Field

NoIntercept

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const InterceptLocations None

See Also

InterceptLocations Enumeration
Walter.BOM Namespace


Assigned Field

KnownIntentions..::..Assigned Field

An assigned value and not assumed by the system

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions Assigned

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


BrandProtection Field

KnownIntentions..::..BrandProtection Field

The bot is known to performs brand protection

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions BrandProtection

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


DataMining Field

KnownIntentions..::..DataMining Field

The bot is known to performs data mining

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions DataMining

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


Developer Field

KnownIntentions..::..Developer Field

A Developer

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions Developer

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


FileGrabber Field

KnownIntentions..::..FileGrabber Field

A file grabber

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions FileGrabber

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


GainSystemAccess Field

KnownIntentions..::..GainSystemAccess Field

tries to gain system access

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions GainSystemAccess

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


HackerTool Field

KnownIntentions..::..HackerTool Field

A known hacker tool

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions HackerTool

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


IndexingAgent Field

KnownIntentions..::..IndexingAgent Field

Indexing data, pages or other artifacts

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions IndexingAgent

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


None Field

KnownIntentions..::..None Field

The nature of its intentions are is not known

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions None

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


PortScanner Field

KnownIntentions..::..PortScanner Field

The bot is known to performs port scanner

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions PortScanner

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


ReplayAgent Field

KnownIntentions..::..ReplayAgent Field

a piece of software used to generate, execute and record web request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions ReplayAgent

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


ViewPage Field

KnownIntentions..::..ViewPage Field

viewing a page

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const KnownIntentions ViewPage

Remarks

The browser is used by a consumer that is reading the page

See Also

KnownIntentions Enumeration
Walter.BOM Namespace


Discontinued Field

LicenseStatus..::..Discontinued Field

The discontinued status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus Discontinued

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


Expired Field

LicenseStatus..::..Expired Field

The expired status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus Expired

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


LicenseKeyOrDomainKeyWrong Field

LicenseStatus..::..LicenseKeyOrDomainKeyWrong Field

The license key or domain key are wrong (tampering)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus LicenseKeyOrDomainKeyWrong

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


LicenseRequestPending Field

LicenseStatus..::..LicenseRequestPending Field

License request is pending confirmation

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus LicenseRequestPending

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


NotUsed Field

LicenseStatus..::..NotUsed Field

The not used

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus NotUsed

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


Payed Field

LicenseStatus..::..Payed Field

The payed status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus Payed

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


PendingPayment Field

LicenseStatus..::..PendingPayment Field

The pending payment status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus PendingPayment

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


ServerNotLicensed Field

LicenseStatus..::..ServerNotLicensed Field

The server is not licensed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LicenseStatus ServerNotLicensed

See Also

LicenseStatus Enumeration
Walter.BOM Namespace


ApiEndpoint Field

LinkType..::..ApiEndpoint Field

The API endpoint calls a enumerable or single answer like a HTTP status

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType ApiEndpoint

See Also

LinkType Enumeration
Walter.BOM Namespace


HoneyPotResponse Field

LinkType..::..HoneyPotResponse Field

The honey pot response

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType HoneyPotResponse

See Also

LinkType Enumeration
Walter.BOM Namespace


JsonEndpoint Field

LinkType..::..JsonEndpoint Field

The endpoint returns JSON object

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType JsonEndpoint

See Also

LinkType Enumeration
Walter.BOM Namespace


NotAssigned Field

LinkType..::..NotAssigned Field

access to the link type was done but the endpoint was not found in the firewall's runtime database

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType NotAssigned

Remarks

This happens when you get a 404 like when fishing for url's or when submitting HttpMethods or Models that not supported by the endpoint (typically penetration attempts).

See Also

LinkType Enumeration
Walter.BOM Namespace


Page Field

LinkType..::..Page Field

The item is a page and may consume other link types. the Page is the root and usually is an action

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType Page

See Also

LinkType Enumeration
Walter.BOM Namespace


PhysicalFile Field

LinkType..::..PhysicalFile Field

Indicates that the items maps to a file on disk

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType PhysicalFile

See Also

LinkType Enumeration
Walter.BOM Namespace


Resource Field

LinkType..::..Resource Field

A resource used by the system, could be a embedded javascript or other resource. Requesting a resource without a page will trigger the firewall

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType Resource

See Also

LinkType Enumeration
Walter.BOM Namespace


UnKnown Field

LinkType..::..UnKnown Field

The resource is not known and therefore will become an issue when evaluated. default assumptions will be made

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType UnKnown

See Also

LinkType Enumeration
Walter.BOM Namespace


VirualFile Field

LinkType..::..VirualFile Field

A file that is created at runtime

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const LinkType VirualFile

See Also

LinkType Enumeration
Walter.BOM Namespace


Endpoint Field

ManagementTypes..::..Endpoint Field

The endpoint

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes Endpoint

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


Incident Field

ManagementTypes..::..Incident Field

The incident

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes Incident

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


IPAddress Field

ManagementTypes..::..IPAddress Field

The ip address

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes IPAddress

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


ISP Field

ManagementTypes..::..ISP Field

The isp

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes ISP

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


None Field

ManagementTypes..::..None Field

The none

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes None

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


PhishyRequest Field

ManagementTypes..::..PhishyRequest Field

The phishy request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes PhishyRequest

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


Port Field

ManagementTypes..::..Port Field

The port

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes Port

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


Process Field

ManagementTypes..::..Process Field

The process

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes Process

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


Request Field

ManagementTypes..::..Request Field

The request

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes Request

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


User Field

ManagementTypes..::..User Field

The user

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes User

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


UserAgent Field

ManagementTypes..::..UserAgent Field

The user agent

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ManagementTypes UserAgent

See Also

ManagementTypes Enumeration
Walter.BOM Namespace


DataRepository Field

RecoveryType..::..DataRepository Field

data repository data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RecoveryType DataRepository

See Also

RecoveryType Enumeration
Walter.BOM Namespace


Email Field

RecoveryType..::..Email Field

contains email data

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RecoveryType Email

See Also

RecoveryType Enumeration
Walter.BOM Namespace


LicenseBased Field

RecoveryType..::..LicenseBased Field

license type recovery

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RecoveryType LicenseBased

See Also

RecoveryType Enumeration
Walter.BOM Namespace


NotSet Field

RecoveryType..::..NotSet Field

recovery type was not specified

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const RecoveryType NotSet

See Also

RecoveryType Enumeration
Walter.BOM Namespace


CSS Field

ResponceExpected..::..CSS Field

The response type is a CSS file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected CSS

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


FileStream Field

ResponceExpected..::..FileStream Field

The response type is a file stream

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected FileStream

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


GZip Field

ResponceExpected..::..GZip Field

GZIP compression

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected GZip

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Html Field

ResponceExpected..::..Html Field

The response type is supposed to be HTML

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Html

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Jpeg Field

ResponceExpected..::..Jpeg Field

The response type is a JPEG image

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Jpeg

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Json Field

ResponceExpected..::..Json Field

The response type is supposed to be json

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Json

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


MOV Field

ResponceExpected..::..MOV Field

Video file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected MOV

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


MP4 Field

ResponceExpected..::..MP4 Field

The response type is a video file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected MP4

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


None Field

ResponceExpected..::..None Field

The none

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected None

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Png Field

ResponceExpected..::..Png Field

The response type is a PNG image

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Png

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


RARZip Field

ResponceExpected..::..RARZip Field

RAR zip file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected RARZip

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Script Field

ResponceExpected..::..Script Field

expects a script

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Script

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


SevenZip Field

ResponceExpected..::..SevenZip Field

The response type is a a 7.zip stream

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected SevenZip

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Text Field

ResponceExpected..::..Text Field

Expects text

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Text

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


UnKnown Field

ResponceExpected..::..UnKnown Field

response type was not mapped

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected UnKnown

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


WebM Field

ResponceExpected..::..WebM Field

Video file

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected WebM

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


XML Field

ResponceExpected..::..XML Field

The response type is supposed to be XML

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected XML

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Zip Field

ResponceExpected..::..Zip Field

The response type is a a zip stream

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ResponceExpected Zip

See Also

ResponceExpected Enumeration
Walter.BOM Namespace


Any Field

ScreenOrientations..::..Any Field

Any is an orientation that means the screen can be locked to any one of portrait-primary, portrait-secondary, landscape-primary and landscape-secondary.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations Any

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


Landscape Field

ScreenOrientations..::..Landscape Field

Landscape is an orientation where the screen width is greater than the screen height and depending on platform convention locking the screen to landscape can represent landscape-primary, landscape-secondary or both.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations Landscape

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


LandscapePrimary Field

ScreenOrientations..::..LandscapePrimary Field

Landscape-secondary is an orientation where the screen width is greater than the screen height.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations LandscapePrimary

Remarks

Landscape-primary is an orientation where the screen width is greater than the screen height.

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


LandscapeSecondary Field

ScreenOrientations..::..LandscapeSecondary Field

Landscape-secondary is an orientation where the screen width is greater than the screen height.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations LandscapeSecondary

Remarks

Landscape-primary is an orientation where the screen width is greater than the screen height.

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


Natural Field

ScreenOrientations..::..Natural Field

Natural is an orientation that refers to either portrait-primary or landscape-primary depending on the device's usual orientation.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations Natural

Remarks

This orientation is usually provided by the underlying operating system.

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


None Field

ScreenOrientations..::..None Field

The value is not set

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations None

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


Portrait Field

ScreenOrientations..::..Portrait Field

The orientation of the document is portrait

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations Portrait

Remarks

Portrait is an orientation where the screen width is less than or equal to the screen height and depending on platform convention locking the screen to portrait can represent portrait-primary, portrait-secondary or both.

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


PortraitPrimary Field

ScreenOrientations..::..PortraitPrimary Field

Portrait-primary is an orientation where the screen width is less than or equal to the screen height

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations PortraitPrimary

Remarks

Portrait-primary is an orientation where the screen width is less than or equal to the screen height. If the device's natural orientation is portrait, then it is in portrait-primary when held in that position. If the device's natural orientation is landscape, the user agent sets portrait-primary from the two options as shown in the screen orientation values table.

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


PortraitSecondary Field

ScreenOrientations..::..PortraitSecondary Field

Portrait-secondary is an orientation where the screen width is less than or equal to the screen height.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations PortraitSecondary

Remarks

If the device's natural orientation is portrait, then it is in portrait-secondary when rotated 180º from its natural position. If the device's natural orientation is landscape, the user agent sets portrait-secondary from the two options as shown in the screen orientation values table.

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


Primary Field

ScreenOrientations..::..Primary Field

Primary intended rotation (factory default)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations Primary

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


Secondary Field

ScreenOrientations..::..Secondary Field

Alternative rotation(not the factory default)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const ScreenOrientations Secondary

See Also

ScreenOrientations Enumeration
Walter.BOM Namespace


Ask Field

SearchEngine..::..Ask Field

ASK search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Ask

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Baido Field

SearchEngine..::..Baido Field

The identified as being Baido search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Baido

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Bing Field

SearchEngine..::..Bing Field

identified as being bing search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Bing

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Blekko Field

SearchEngine..::..Blekko Field

Blekko, trademarked as blekko, was a company that provided a web search engine with the stated goal of providing better search results than those offered by Google Search, with results gathered from a set of 3 billion trusted webpages and excluding such sites as content farms

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Blekko

See Also

SearchEngine Enumeration
Walter.BOM Namespace


DuckDuckGo Field

SearchEngine..::..DuckDuckGo Field

identified as being DuckDuckGo search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine DuckDuckGo

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Exalead Field

SearchEngine..::..Exalead Field

EXALEAD is a software company, created in 2000, that provided search platforms and search-based applications for consumer and business users. The company is headquartered in Paris, France, and is a subsidiary of Dassault Systèmes.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Exalead

See Also

SearchEngine Enumeration
Walter.BOM Namespace


FaceBook Field

SearchEngine..::..FaceBook Field

not a "real" search engine but lists contents

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine FaceBook

See Also

SearchEngine Enumeration
Walter.BOM Namespace


GiGaBlast Field

SearchEngine..::..GiGaBlast Field

Gigablast is a free and open-source web search engine and directory.

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine GiGaBlast

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Google Field

SearchEngine..::..Google Field

identified as being google search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Google

See Also

SearchEngine Enumeration
Walter.BOM Namespace


LinkedIn Field

SearchEngine..::..LinkedIn Field

a Microsoft service linking persons

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine LinkedIn

See Also

SearchEngine Enumeration
Walter.BOM Namespace


NotSure Field

SearchEngine..::..NotSure Field

The search engine is un-known/ not supported

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine NotSure

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Pinterest Field

SearchEngine..::..Pinterest Field

Pinterest is an American image sharing and social media service designed to enable saving and discovery of information on the internet using images and, on a smaller scale, animated GIFs and videos, in the form of pinboards

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Pinterest

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Qwant Field

SearchEngine..::..Qwant Field

QWANT search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Qwant

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Twitter Field

SearchEngine..::..Twitter Field

Registered twitter networks

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Twitter

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Yahoo Field

SearchEngine..::..Yahoo Field

The identified as being Yahoo search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Yahoo

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Yandex Field

SearchEngine..::..Yandex Field

The identified as being Yandex search engine

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const SearchEngine Yandex

See Also

SearchEngine Enumeration
Walter.BOM Namespace


Computed Field

StorageLocations..::..Computed Field

The entry is computed

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const StorageLocations Computed

See Also

StorageLocations Enumeration
Walter.BOM Namespace


Database Field

StorageLocations..::..Database Field

serialize to database using a duration specified in Cashing.BufferFirewallData in IFireWall.Configuration

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const StorageLocations Database

See Also

StorageLocations Enumeration
Walter.BOM Namespace


Disk Field

StorageLocations..::..Disk Field

serialize to disk using a duration specified in Cashing.BufferFirewallData in IFireWall.Configuration

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const StorageLocations Disk

See Also

StorageLocations Enumeration
Walter.BOM Namespace


Memory Field

StorageLocations..::..Memory Field

in memory only

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const StorageLocations Memory

See Also

StorageLocations Enumeration
Walter.BOM Namespace


None Field

StorageLocations..::..None Field

The storage location was not defined

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const StorageLocations None

See Also

StorageLocations Enumeration
Walter.BOM Namespace


RestAPI Field

StorageLocations..::..RestAPI Field

The entry retrieved from rest API

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const StorageLocations RestAPI

See Also

StorageLocations Enumeration
Walter.BOM Namespace


DNS_53 Field

TcpPortAlias..::..DNS_53 Field

Domain Name System - Port 53

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias DNS_53

Remarks

If you are not exposing a Domain Name System on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Echo_7 Field

TcpPortAlias..::..Echo_7 Field

Ping - port 7

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias Echo_7

Remarks

Echo is used by a lot of services, this is a strict port to monitor, however not a good port to generate incidents on

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Finger_79 Field

TcpPortAlias..::..Finger_79 Field

The Finger User Information Protocol

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias Finger_79

Remarks

If you are not using Finger User Information Protocol on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


FTP1_20 Field

TcpPortAlias..::..FTP1_20 Field

File transfer protocol - port 20

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias FTP1_20

Remarks

If you are not using FTP on your application then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


FTP2_21 Field

TcpPortAlias..::..FTP2_21 Field

File transfer protocol - port 21

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias FTP2_21

Remarks

If you are not using FTP on your application then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


FTPSSL_989 Field

TcpPortAlias..::..FTPSSL_989 Field

FTP over Secure Socket Layer (SSL) - Port 989

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias FTPSSL_989

Remarks

If you are using on your server then definitely DO NOT USE this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


FTPTLS_990 Field

TcpPortAlias..::..FTPTLS_990 Field

FTP over TLS Transport Layer Security (TLS)- Port 990

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias FTPTLS_990

Remarks

This is a deprecated communication and makes it interesting for us to monitor

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


HTTP_80 Field

TcpPortAlias..::..HTTP_80 Field

HyperText Transfer Protocol (do not use when you expose port 80)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias HTTP_80

Remarks

If you are using HTTP on your server then you definitely DO NOT USE this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


IMAP_143 Field

TcpPortAlias..::..IMAP_143 Field

Internet Message Access Protocol - Port 134

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias IMAP_143

Remarks

If you are not using Mail server on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


IMAP_993 Field

TcpPortAlias..::..IMAP_993 Field

Internet Messaging Protocol IMAP encrypted

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias IMAP_993

Remarks

If you are using email services on your server then definitely DO NOT USE this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


IPSec1_50 Field

TcpPortAlias..::..IPSec1_50 Field

Internet Protocol Security - Port 50

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias IPSec1_50

Remarks

If you are not using Internet Protocol Security on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


IPSec2_51 Field

TcpPortAlias..::..IPSec2_51 Field

Internet Protocol Security - Port 51

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias IPSec2_51

Remarks

If you are not using Internet Protocol Security on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


LDAP_389 Field

TcpPortAlias..::..LDAP_389 Field

Lightweight Directory Access Protocol - Port 389

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias LDAP_389

Remarks

If you are not using Lightweight Directory Access Protocol on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


MSGIPC_29 Field

TcpPortAlias..::..MSGIPC_29 Field

Internet Cache Protocol (ICP)

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias MSGIPC_29

Remarks

If you are not using Internet Cache Protocol (ICP) on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


MYSQL_3306 Field

TcpPortAlias..::..MYSQL_3306 Field

MySQL database port 3306

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias MYSQL_3306

Remarks

If you are using MySql on your server then definitely use this when monitoring for port based exploits and map MySQL using a custom port

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


NetBIOS_135 Field

TcpPortAlias..::..NetBIOS_135 Field

NetBIOS (RPC) - Port 135

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias NetBIOS_135

Remarks

If you are not exposing NetBIOS (RPC) on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


NetBIOS_136 Field

TcpPortAlias..::..NetBIOS_136 Field

NetBIOS (Profile Name Service)- Port 136

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias NetBIOS_136

Remarks

If you are not using NetBIOS (Profile Name Service) on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


NetBIOS_137 Field

TcpPortAlias..::..NetBIOS_137 Field

NetBIOS (CIFS)- Port 137

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias NetBIOS_137

Remarks

CIFS - Common Internet File System used for file sharing over IP

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


NetBIOS_138 Field

TcpPortAlias..::..NetBIOS_138 Field

NetBIOS - Port 138

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias NetBIOS_138

Remarks

If you are not using NetBIOS on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


NetBIOS_139 Field

TcpPortAlias..::..NetBIOS_139 Field

NetBIOS - Port 139

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias NetBIOS_139

Remarks

If you are not using NetBIOS on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


NNTP_119 Field

TcpPortAlias..::..NNTP_119 Field

Network News Transport Protocol -Port 119

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias NNTP_119

Remarks

If you are not using Network News Transport Protocol on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


None Field

TcpPortAlias..::..None Field

indicated that the value was not configured

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias None

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


OpenEdge_20931 Field

TcpPortAlias..::..OpenEdge_20931 Field

open edge database

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias OpenEdge_20931

Remarks

If you are not using OpenEdgeon your server then definitely uses when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Oracle_1521 Field

TcpPortAlias..::..Oracle_1521 Field

oracle server

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias Oracle_1521

Remarks

If you are using on your server then definitely use this when monitoring for port based exploits and use a alternative port for external connections

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


POP3_110 Field

TcpPortAlias..::..POP3_110 Field

Post Office Protocol

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias POP3_110

Remarks

If you are not using Mail server on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


RDP_3389 Field

TcpPortAlias..::..RDP_3389 Field

Remote Desktop Protocol - Port 3389

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias RDP_3389

Remarks

If you are using on RDP your server then definitely use this when monitoring for port based exploits, connect using [IPaddress]:[Custom port] and map the custom port to the right port and map port 3389 to a port that you monitor using the firewall port scanner detection

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


SMTP_25 Field

TcpPortAlias..::..SMTP_25 Field

Simple Mail Transfer Protocol - port 25

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias SMTP_25

Remarks

If you are not using Simple Mail Transfer Protocol on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


SNMP_161 Field

TcpPortAlias..::..SNMP_161 Field

Simple Network Management Protocol - Port 161

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias SNMP_161

Remarks

If you are not using Simple Network Management Protocol on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


SNMP_162 Field

TcpPortAlias..::..SNMP_162 Field

Simple Network Management Protocol - Port 162

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias SNMP_162

Remarks

If you are not using Simple Network Management Protocol on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


SSH_22 Field

TcpPortAlias..::..SSH_22 Field

Secure Shell port 22

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias SSH_22

Remarks

If you are not using Secure shell (a unix thing) on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


SSL_443 Field

TcpPortAlias..::..SSL_443 Field

HTTP with Secure Sockets Layer - Port 443

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias SSL_443

Remarks

If you are using on your server then definitely DO NOT USE this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Sybase_2638 Field

TcpPortAlias..::..Sybase_2638 Field

Sybase database

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias Sybase_2638

Remarks

If you are using on your server then definitely use this when monitoring for port based exploits and use a alternative port for external connections

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Telnet_23 Field

TcpPortAlias..::..Telnet_23 Field

Telnet -port 23

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias Telnet_23

Remarks

If you are not using Telnet on your server then you definitely use this when monitoring for port based exploits

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Tomcat_8443 Field

TcpPortAlias..::..Tomcat_8443 Field

The default port for Apache Tomcat

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias Tomcat_8443

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


TSQL_1433 Field

TcpPortAlias..::..TSQL_1433 Field

Microsoft SQL server

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias TSQL_1433

Remarks

If you are using SQL server on your server then definitely us this when monitoring for port based exploits and connect using [server-name],[custom port] and forward the SQL port to a other port

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


UserDefined Field

TcpPortAlias..::..UserDefined Field

A user defined port

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias UserDefined

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


WAC_6516 Field

TcpPortAlias..::..WAC_6516 Field

The windows administration center

Namespace: Walter.BOM
Assembly: Walter.BOM (in Walter.BOM.dll)

Syntax

C#
public const TcpPortAlias WAC_6516

Remarks

The default port for the windows administration center portal

See Also

TcpPortAlias Enumeration
Walter.BOM Namespace


Disposed Field

DataState..::..Disposed Field

Database is no longer ready and able to take requests

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const DataState Disposed

See Also

DataState Enumeration
Walter.DataTools.MsSql Namespace


Faulty Field

DataState..::..Faulty Field

The database upgrade is faulty or a connection could not be made

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const DataState Faulty

See Also

DataState Enumeration
Walter.DataTools.MsSql Namespace


Initializing Field

DataState..::..Initializing Field

Database is getting ready

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const DataState Initializing

See Also

DataState Enumeration
Walter.DataTools.MsSql Namespace


Ready Field

DataState..::..Ready Field

The database is ready for use

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const DataState Ready

See Also

DataState Enumeration
Walter.DataTools.MsSql Namespace


Upgrade Field

DataState..::..Upgrade Field

in the process of executing upgrade scripts

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const DataState Upgrade

See Also

DataState Enumeration
Walter.DataTools.MsSql Namespace


Empty Field

TableState..::..Empty Field

table is empty

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableState Empty

See Also

TableState Enumeration
Walter.DataTools.MsSql Namespace


HasData Field

TableState..::..HasData Field

table has data

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableState HasData

See Also

TableState Enumeration
Walter.DataTools.MsSql Namespace


TableDoesNotExists Field

TableState..::..TableDoesNotExists Field

table does not exists

Namespace: Walter.DataTools.MsSql
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableState TableDoesNotExists

See Also

TableState Enumeration
Walter.DataTools.MsSql Namespace


CSP Field

TableTypes..::..CSP Field

The CSP

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableTypes CSP

See Also

TableTypes Enumeration
Walter.DataTools Namespace


EmailArchive Field

TableTypes..::..EmailArchive Field

The email archive

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableTypes EmailArchive

See Also

TableTypes Enumeration
Walter.DataTools Namespace


Incidents Field

TableTypes..::..Incidents Field

The incidents

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableTypes Incidents

See Also

TableTypes Enumeration
Walter.DataTools Namespace


IP Field

TableTypes..::..IP Field

The IP address

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableTypes IP

See Also

TableTypes Enumeration
Walter.DataTools Namespace


None Field

TableTypes..::..None Field

The table type is not set

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableTypes None

See Also

TableTypes Enumeration
Walter.DataTools Namespace


PageRequests Field

TableTypes..::..PageRequests Field

The page requests

Namespace: Walter.DataTools
Assembly: Walter.DataTools.MsSql (in Walter.DataTools.MsSql.dll)

Syntax

C#
public const TableTypes PageRequests

See Also

TableTypes Enumeration
Walter.DataTools Namespace


Delete Field

SwapDirectoryOptions..::..Delete Field

Delete the files

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public const SwapDirectoryOptions Delete

See Also

SwapDirectoryOptions Enumeration
Walter.IO Namespace


Move Field

SwapDirectoryOptions..::..Move Field

Move files to the new directory

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public const SwapDirectoryOptions Move

See Also

SwapDirectoryOptions Enumeration
Walter.IO Namespace


NoAction Field

SwapDirectoryOptions..::..NoAction Field

Do nothing

Namespace: Walter.IO
Assembly: Walter.IO (in Walter.IO.dll)

Syntax

C#
public const SwapDirectoryOptions NoAction

See Also

SwapDirectoryOptions Enumeration
Walter.IO Namespace


LookWhoisTalking Field

DataOwner..::..LookWhoisTalking Field

The look whois talking service owns the data

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const DataOwner LookWhoisTalking

See Also

DataOwner Enumeration
Walter.Net.HoneyPot Namespace


None Field

DataOwner..::..None Field

No data owner is assigned

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const DataOwner None

See Also

DataOwner Enumeration
Walter.Net.HoneyPot Namespace


WAFFireWall Field

DataOwner..::..WAFFireWall Field

The Web Application Firewall owns the data

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const DataOwner WAFFireWall

See Also

DataOwner Enumeration
Walter.Net.HoneyPot Namespace


DoNotIgnore Field

IgnoreScope..::..DoNotIgnore Field

The don't ignore

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const IgnoreScope DoNotIgnore

See Also

IgnoreScope Enumeration
Walter.Net.HoneyPot Namespace


IPAddress Field

IgnoreScope..::..IPAddress Field

The IP address

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const IgnoreScope IPAddress

See Also

IgnoreScope Enumeration
Walter.Net.HoneyPot Namespace


IPAddressAndPort Field

IgnoreScope..::..IPAddressAndPort Field

The IP address and port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const IgnoreScope IPAddressAndPort

See Also

IgnoreScope Enumeration
Walter.Net.HoneyPot Namespace


AnyPort Field

PortStatus..::..AnyPort Field

The request came from a port not specified as honey-pot nor from a port configured as standard port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const PortStatus AnyPort

See Also

PortStatus Enumeration
Walter.Net.HoneyPot Namespace


CommunicatedNotHttpPorts Field

PortStatus..::..CommunicatedNotHttpPorts Field

Communication was detected on a non HTTP port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const PortStatus CommunicatedNotHttpPorts

Remarks

This will indicate that honey-pot listeners picked-up on this IP address and have flagged it

See Also

PortStatus Enumeration
Walter.Net.HoneyPot Namespace


HoneyPotPort Field

PortStatus..::..HoneyPotPort Field

communication via a defined honey pot port

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const PortStatus HoneyPotPort

Remarks

HTTP based communication detected using a port specified in the honey-pot rules configuration section

See Also

PortStatus Enumeration
Walter.Net.HoneyPot Namespace


IPCommunication Field

PortStatus..::..IPCommunication Field

Detected socket request over IP address and port number and not host name when this was not expected

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const PortStatus IPCommunication

See Also

PortStatus Enumeration
Walter.Net.HoneyPot Namespace


None Field

PortStatus..::..None Field

Port status is not configured or not processed

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const PortStatus None

See Also

PortStatus Enumeration
Walter.Net.HoneyPot Namespace


StandardPort Field

PortStatus..::..StandardPort Field

The standard port was used (safe communication)

Namespace: Walter.Net.HoneyPot
Assembly: Walter.Net.HoneyPot (in Walter.Net.HoneyPot.dll)

Syntax

C#
public const PortStatus StandardPort

See Also

PortStatus Enumeration
Walter.Net.HoneyPot Namespace


MacChanged Field

ARPWatchType..::..MacChanged Field

The mac changed

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const ARPWatchType MacChanged

See Also

ARPWatchType Enumeration
Walter.Net.LookWhosTalking Namespace


NameChanged Field

ARPWatchType..::..NameChanged Field

The name changed

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const ARPWatchType NameChanged

See Also

ARPWatchType Enumeration
Walter.Net.LookWhosTalking Namespace


None Field

ARPWatchType..::..None Field

The none

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const ARPWatchType None

See Also

ARPWatchType Enumeration
Walter.Net.LookWhosTalking Namespace


Closed Field

TcpConnectionState..::..Closed Field

The connection is closed

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState Closed

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


CloseWait Field

TcpConnectionState..::..CloseWait Field

Indicates that the server has received the first FIN signal from the client and the connection is in the process of being closed. This means the socket is waiting for the application to execute close() . A socket can be in CLOSE_WAIT state indefinitely until the application closes it

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState CloseWait

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


Closing Field

TcpConnectionState..::..Closing Field

Waiting for a connection termination request acknowledgment from the remote TCP. This state is entered when this endpoint receives a close request from the local application, sends a termination request to the remote endpoint, and receives a termination request before it receives the acknowledgment from the remote endpoint.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState Closing

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


DeleteTCB Field

TcpConnectionState..::..DeleteTCB Field

The connection is in delete being deleted

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState DeleteTCB

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


Established Field

TcpConnectionState..::..Established Field

Represents a fully established connection; this is the normal state for the data transfer phase of the connection.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState Established

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


FinWait1 Field

TcpConnectionState..::..FinWait1 Field

Waiting for an acknowledgment of the connection termination request or for a simultaneous connection termination request from the remote TCP. This state is normally of short duration.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState FinWait1

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


FinWait2 Field

TcpConnectionState..::..FinWait2 Field

FIN_WAIT_2 seems to occur when the server has an active connection with a client and wants to shut down the TCP connection (probably in response to a normal application layer "exit"). The server sends the client a packet with a "FIN" bit set. At this point, the server is in FIN_WAIT_1 state

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState FinWait2

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


LastAcknowlaged Field

TcpConnectionState..::..LastAcknowlaged Field

Waiting for an acknowledgment of the connection termination request previously sent to the remote TCP. This state is entered when this endpoint received a termination request before it sent its termination request.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState LastAcknowlaged

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


Listening Field

TcpConnectionState..::..Listening Field

Waiting for a connection request from a remote TCP application. This is the state in which you can find the listening socket of a local TCP server.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState Listening

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


None Field

TcpConnectionState..::..None Field

The connection is note having an assigned state

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState None

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


SynchronisationRecived Field

TcpConnectionState..::..SynchronisationRecived Field

This endpoint has received a connection request and sent an acknowledgment. This endpoint is waiting for final acknowledgment that the other endpoint did receive this endpoint's acknowledgment of the original connection request. Results after step 2 of the three-way TCP handshake.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState SynchronisationRecived

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


SynchronisationSend Field

TcpConnectionState..::..SynchronisationSend Field

Waiting for an acknowledgment from the remote endpoint after having sent a connection request. Results after step 1 of the three-way TCP handshake.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState SynchronisationSend

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


timeWait Field

TcpConnectionState..::..timeWait Field

Waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.

Namespace: Walter.Net.LookWhosTalking
Assembly: Walter.Net.LookWhosTalking (in Walter.Net.LookWhosTalking.dll)

Syntax

C#
public const TcpConnectionState timeWait

See Also

TcpConnectionState Enumeration
Walter.Net.LookWhosTalking Namespace


Dynamic Field

ArpStatus..::..Dynamic Field

The entry is dynamic

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ArpStatus Dynamic

See Also

ArpStatus Enumeration
Walter.Net.Networking Namespace


Invalid Field

ArpStatus..::..Invalid Field

The entry is invalid

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ArpStatus Invalid

See Also

ArpStatus Enumeration
Walter.Net.Networking Namespace


Other Field

ArpStatus..::..Other Field

other status

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ArpStatus Other

See Also

ArpStatus Enumeration
Walter.Net.Networking Namespace


Static Field

ArpStatus..::..Static Field

The entry is static

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ArpStatus Static

See Also

ArpStatus Enumeration
Walter.Net.Networking Namespace


LAN Field

CommunicationScopes..::..LAN Field

Communication within the local area network

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const CommunicationScopes LAN

See Also

CommunicationScopes Enumeration
Walter.Net.Networking Namespace


MachineInternal Field

CommunicationScopes..::..MachineInternal Field

Communication is machine internal

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const CommunicationScopes MachineInternal

See Also

CommunicationScopes Enumeration
Walter.Net.Networking Namespace


NotSet Field

CommunicationScopes..::..NotSet Field

Scope was not set

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const CommunicationScopes NotSet

See Also

CommunicationScopes Enumeration
Walter.Net.Networking Namespace


WAN Field

CommunicationScopes..::..WAN Field

Connection is over the wide area network (Internet)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const CommunicationScopes WAN

See Also

CommunicationScopes Enumeration
Walter.Net.Networking Namespace


A Field

PokeRecord..::..A Field

Domain name

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord A

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


AAAA Field

PokeRecord..::..AAAA Field

Host AAAA record (IP6)

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord AAAA

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


CNAME Field

PokeRecord..::..CNAME Field

A Canonical Name for a domain (alias)

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord CNAME

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


MX Field

PokeRecord..::..MX Field

Mail Exchange (MX) records

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord MX

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


NotSet Field

PokeRecord..::..NotSet Field

not set

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord NotSet

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


NS Field

PokeRecord..::..NS Field

Name server

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord NS

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


PRT Field

PokeRecord..::..PRT Field

A pointer (PTR) record is a type of Domain Name System

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord PRT

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


SOA Field

PokeRecord..::..SOA Field

SOA Record

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord SOA

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


TXT Field

PokeRecord..::..TXT Field

A Text record

Namespace: Walter.Net.Networking.DNS
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const PokeRecord TXT

See Also

PokeRecord Enumeration
Walter.Net.Networking.DNS Namespace


Ip4 Field

IpConnectionTypesFiter..::..Ip4 Field

Get IP4 only

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const IpConnectionTypesFiter Ip4

See Also

IpConnectionTypesFiter Enumeration
Walter.Net.Networking Namespace


IP4orIP6 Field

IpConnectionTypesFiter..::..IP4orIP6 Field

Allow to use IP4 or IP6

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const IpConnectionTypesFiter IP4orIP6

See Also

IpConnectionTypesFiter Enumeration
Walter.Net.Networking Namespace


Ip6 Field

IpConnectionTypesFiter..::..Ip6 Field

Get IP6 only

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const IpConnectionTypesFiter Ip6

See Also

IpConnectionTypesFiter Enumeration
Walter.Net.Networking Namespace


BlockFilter Field

ISPTrustLevels..::..BlockFilter Field

block all ISP and this does not make sense to allow data communications

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ISPTrustLevels BlockFilter

See Also

ISPTrustLevels Enumeration
Walter.Net.Networking Namespace


None Field

ISPTrustLevels..::..None Field

No value has been assigned

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ISPTrustLevels None

See Also

ISPTrustLevels Enumeration
Walter.Net.Networking Namespace


Report Field

ISPTrustLevels..::..Report Field

Suspicious communication will be report but all request are allowed and are not blocked by the firewall

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ISPTrustLevels Report

See Also

ISPTrustLevels Enumeration
Walter.Net.Networking Namespace


UserAgentFilter Field

ISPTrustLevels..::..UserAgentFilter Field

Tests to see if a user agent is allowed for the ISP

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const ISPTrustLevels UserAgentFilter

See Also

ISPTrustLevels Enumeration
Walter.Net.Networking Namespace


Endpoint Field

Scope..::..Endpoint Field

Get the IP address of a given endpoint, (Kind of like WhatsHisIp)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope Endpoint

See Also

Scope Enumeration
Walter.Net.Networking Namespace


Gateway Field

Scope..::..Gateway Field

Get the IP address of the gateway

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope Gateway

See Also

Scope Enumeration
Walter.Net.Networking Namespace


IspRouters Field

Scope..::..IspRouters Field

Get the IP address if the routers in your ISP's network

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope IspRouters

See Also

Scope Enumeration
Walter.Net.Networking Namespace


LAN Field

Scope..::..LAN Field

Local area network

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope LAN

See Also

Scope Enumeration
Walter.Net.Networking Namespace


NotSet Field

Scope..::..NotSet Field

no option provided

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope NotSet

See Also

Scope Enumeration
Walter.Net.Networking Namespace


TraceRoute Field

Scope..::..TraceRoute Field

All hubs starting your public IP address to all IP addresses including the endpoint (only viable when asking a segment of iP addresses)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope TraceRoute

See Also

Scope Enumeration
Walter.Net.Networking Namespace


WAN Field

Scope..::..WAN Field

Wide area network IP address (Kind of like WhatsMyIp on the Internet)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const Scope WAN

See Also

Scope Enumeration
Walter.Net.Networking Namespace


ALL Field

DataExtensions..::..ALL Field

Get full network endpoint discovery stats

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DataExtensions ALL

See Also

DataExtensions Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


Dns Field

DataExtensions..::..Dns Field

Add The DNS data of the hosting server

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DataExtensions Dns

See Also

DataExtensions Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


Geography Field

DataExtensions..::..Geography Field

The geography of the ISP hosting the server

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DataExtensions Geography

Remarks

This might slowdown the request as it takes the longest to perform

See Also

DataExtensions Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


None Field

DataExtensions..::..None Field

No data enrichment other than the URL data

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DataExtensions None

See Also

DataExtensions Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


Ping Field

DataExtensions..::..Ping Field

Get the Ping status of the hosting server

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DataExtensions Ping

See Also

DataExtensions Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


DnsPasses Field

DomainStatusValidityTests..::..DnsPasses Field

The DNS that for the domain is valid and routs

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DomainStatusValidityTests DnsPasses

See Also

DomainStatusValidityTests Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


GeographyPassed Field

DomainStatusValidityTests..::..GeographyPassed Field

The Geography Resolves

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DomainStatusValidityTests GeographyPassed

See Also

DomainStatusValidityTests Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


NotValid Field

DomainStatusValidityTests..::..NotValid Field

Not valid

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DomainStatusValidityTests NotValid

See Also

DomainStatusValidityTests Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


PingPassed Field

DomainStatusValidityTests..::..PingPassed Field

The HostName responds to a ping

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DomainStatusValidityTests PingPassed

See Also

DomainStatusValidityTests Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


UriIsValid Field

DomainStatusValidityTests..::..UriIsValid Field

URI format is valid

Namespace: Walter.Net.Networking.TopLevelDomainQuery
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const DomainStatusValidityTests UriIsValid

See Also

DomainStatusValidityTests Enumeration
Walter.Net.Networking.TopLevelDomainQuery Namespace


AbuseContactAdministrator Field

WhoisContactTypes..::..AbuseContactAdministrator Field

The abuse contact administrator manages the abuse data entry

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes AbuseContactAdministrator

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


Administration Field

WhoisContactTypes..::..Administration Field

The details are for a administrative contact

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes Administration

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


AdministrativePerson Field

WhoisContactTypes..::..AdministrativePerson Field

The administrative person

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes AdministrativePerson

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


Group Field

WhoisContactTypes..::..Group Field

Contact is a organizational group

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes Group

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


Organization Field

WhoisContactTypes..::..Organization Field

The details are for an organization

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes Organization

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


Person Field

WhoisContactTypes..::..Person Field

a person with an unknown role

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes Person

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


Technical Field

WhoisContactTypes..::..Technical Field

The technical are for a technical contact

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes Technical

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


TechnicalPerson Field

WhoisContactTypes..::..TechnicalPerson Field

The technical person

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes TechnicalPerson

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


UnKnown Field

WhoisContactTypes..::..UnKnown Field

The contact type is not specified

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisContactTypes UnKnown

See Also

WhoisContactTypes Enumeration
Walter.Net.Networking Namespace


NotFound Field

WhoisStatus..::..NotFound Field

The entry was not found

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisStatus NotFound

See Also

WhoisStatus Enumeration
Walter.Net.Networking Namespace


Ok Field

WhoisStatus..::..Ok Field

The data is okey

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisStatus Ok

See Also

WhoisStatus Enumeration
Walter.Net.Networking Namespace


OutDated Field

WhoisStatus..::..OutDated Field

The data is out dated

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisStatus OutDated

See Also

WhoisStatus Enumeration
Walter.Net.Networking Namespace


Shallow Field

WhoisStatus..::..Shallow Field

The data is shallow(no related data)

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisStatus Shallow

See Also

WhoisStatus Enumeration
Walter.Net.Networking Namespace


UnKnown Field

WhoisStatus..::..UnKnown Field

The unknown status

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
public const WhoisStatus UnKnown

See Also

WhoisStatus Enumeration
Walter.Net.Networking Namespace


StoredInTable Field

ReportStorageLocation..::..StoredInTable Field

Data stored from or in a table

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportStorageLocation StoredInTable

See Also

ReportStorageLocation Enumeration
Walter.Web.FireWall.Administration Namespace


StoredOnDisk Field

ReportStorageLocation..::..StoredOnDisk Field

Data stored from or on disk

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportStorageLocation StoredOnDisk

See Also

ReportStorageLocation Enumeration
Walter.Web.FireWall.Administration Namespace


Beacon Field

FireWallConfigurationElement..::..Beacon Field

the beacon informing the firewall to not accept data from the page anymore

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallConfigurationElement Beacon

See Also

FireWallConfigurationElement Enumeration
Walter.Web.FireWall.Annotations Namespace


CSPReport Field

FireWallConfigurationElement..::..CSPReport Field

The CSP report

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallConfigurationElement CSPReport

See Also

FireWallConfigurationElement Enumeration
Walter.Web.FireWall.Annotations Namespace


DiscoveryJavaScript Field

FireWallConfigurationElement..::..DiscoveryJavaScript Field

the java script

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallConfigurationElement DiscoveryJavaScript

See Also

FireWallConfigurationElement Enumeration
Walter.Web.FireWall.Annotations Namespace


DiscoveryModel Field

FireWallConfigurationElement..::..DiscoveryModel Field

the discovery model being send by the JavaScript informing the discovered capabilities

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallConfigurationElement DiscoveryModel

See Also

FireWallConfigurationElement Enumeration
Walter.Web.FireWall.Annotations Namespace


SiteMapModel Field

FireWallConfigurationElement..::..SiteMapModel Field

The page site-map

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallConfigurationElement SiteMapModel

See Also

FireWallConfigurationElement Enumeration
Walter.Web.FireWall.Annotations Namespace


ServiceNotOfferedInLocation Field

BlockingReason..::..ServiceNotOfferedInLocation Field

The service not offered in location

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlockingReason ServiceNotOfferedInLocation

See Also

BlockingReason Enumeration
Walter.Web.FireWall Namespace


ToManyRequests Field

BlockingReason..::..ToManyRequests Field

Converts to many requests.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlockingReason ToManyRequests

See Also

BlockingReason Enumeration
Walter.Web.FireWall Namespace


WrongConsumerType Field

BlockingReason..::..WrongConsumerType Field

The wrong consumer type for the endpoint

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlockingReason WrongConsumerType

See Also

BlockingReason Enumeration
Walter.Web.FireWall Namespace


DeviceAnywhere Field

BlokingScopes..::..DeviceAnywhere Field

The device anywhere

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlokingScopes DeviceAnywhere

See Also

BlokingScopes Enumeration
Walter.Web.FireWall Namespace


DeviceOnIp Field

BlokingScopes..::..DeviceOnIp Field

The device on ip

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlokingScopes DeviceOnIp

See Also

BlokingScopes Enumeration
Walter.Web.FireWall Namespace


IpAddress Field

BlokingScopes..::..IpAddress Field

The ip address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlokingScopes IpAddress

See Also

BlokingScopes Enumeration
Walter.Web.FireWall Namespace


ISP Field

BlokingScopes..::..ISP Field

The isp

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlokingScopes ISP

See Also

BlokingScopes Enumeration
Walter.Web.FireWall Namespace


None Field

BlokingScopes..::..None Field

none

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const BlokingScopes None

See Also

BlokingScopes Enumeration
Walter.Web.FireWall Namespace


Crawler Field

UAAgentType..::..Crawler Field

Is a crawler in some type of form

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAAgentType Crawler

See Also

UAAgentType Enumeration
Walter.Web.FireWall.Browser Namespace


DeviceBrowser Field

UAAgentType..::..DeviceBrowser Field

Belongs to a physical device that is potentially being used by a human

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAAgentType DeviceBrowser

See Also

UAAgentType Enumeration
Walter.Web.FireWall.Browser Namespace


UnKnown Field

UAAgentType..::..UnKnown Field

We are not sure, have not decided how to classify the browser being used

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAAgentType UnKnown

See Also

UAAgentType Enumeration
Walter.Web.FireWall.Browser Namespace


Desktop Field

UADeviceType..::..Desktop Field

The device is likely a desktop

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType Desktop

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


GameConsole Field

UADeviceType..::..GameConsole Field

The device is likely a game console

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType GameConsole

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


IOT Field

UADeviceType..::..IOT Field

The device is likely a IOT

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType IOT

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


NotDefined Field

UADeviceType..::..NotDefined Field

The value was not defined

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType NotDefined

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


Projector Field

UADeviceType..::..Projector Field

The device is likely a projector

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType Projector

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


SmartPhone Field

UADeviceType..::..SmartPhone Field

The device is likely a smart phone

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType SmartPhone

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


Tablet Field

UADeviceType..::..Tablet Field

The device is likely a tablet

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType Tablet

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


TV Field

UADeviceType..::..TV Field

The device is likely a TV

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType TV

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


Unknown Field

UADeviceType..::..Unknown Field

The device is still unknown

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UADeviceType Unknown

See Also

UADeviceType Enumeration
Walter.Web.FireWall.Browser Namespace


Blink Field

UAEngineTypes..::..Blink Field

The browser supports blink

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes Blink

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


Chromium Field

UAEngineTypes..::..Chromium Field

The browser supports chromium

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes Chromium

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


EdgeHTML Field

UAEngineTypes..::..EdgeHTML Field

The browser supports edge HTML

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes EdgeHTML

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


EkiohFlow Field

UAEngineTypes..::..EkiohFlow Field

The browser supports ekioh flow

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes EkiohFlow

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


Gecko Field

UAEngineTypes..::..Gecko Field

The browser supports gecko

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes Gecko

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


Goanna Field

UAEngineTypes..::..Goanna Field

The browser supports goanna

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes Goanna

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


KHTML Field

UAEngineTypes..::..KHTML Field

The browser supports KHTML

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes KHTML

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


NetFront Field

UAEngineTypes..::..NetFront Field

The browser supports net front

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes NetFront

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


None Field

UAEngineTypes..::..None Field

The none

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes None

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


Presto Field

UAEngineTypes..::..Presto Field

The browser supports presto

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes Presto

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


Trident Field

UAEngineTypes..::..Trident Field

The browser supports trident

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes Trident

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


WebKit Field

UAEngineTypes..::..WebKit Field

The browser supports web kit

Namespace: Walter.Web.FireWall.Browser
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UAEngineTypes WebKit

See Also

UAEngineTypes Enumeration
Walter.Web.FireWall.Browser Namespace


FireWallIncidents Field

ClearOptions..::..FireWallIncidents Field

Removing the fire wall incidents history will cause malicious users to revisit the application without use being able to inform the application that the user is up to no good

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions FireWallIncidents

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


FireWallState Field

ClearOptions..::..FireWallState Field

The remove firewall state contains counters and KPI data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions FireWallState

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


None Field

ClearOptions..::..None Field

The none

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions None

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


ResetState Field

ClearOptions..::..ResetState Field

The reset state maintains a rule database informing visiting users that they are no-longer considered malicious if a blocking cookie was set.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions ResetState

Remarks

If you remove this data the cookie will need to expire or you need to rename the cookie name in the configuration

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


ResetToFactoryDefault Field

ClearOptions..::..ResetToFactoryDefault Field

Reset the firewall to factory default

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions ResetToFactoryDefault

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


Subscription Field

ClearOptions..::..Subscription Field

The subscription data can safely be removed as it will update when re-connecting with the firewall license server

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions Subscription

Remarks

If a subscription is expired the data will remain in your storage, deleting it however will not cause the data to be restored

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


WhoisState Field

ClearOptions..::..WhoisState Field

The who-is and DNS state can be removed.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ClearOptions WhoisState

Remarks

Removing it will cause the firewall to re-query the data causing and may result in slower response times when blocking a user.

Periodically clearing this data has the benefit that you are always looking at up-to-date records

See Also

ClearOptions Enumeration
Walter.Web.FireWall Namespace


Always Field

AllowWhenCondition..::..Always Field

The condition must always be met

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AllowWhenCondition Always

See Also

AllowWhenCondition Enumeration
Walter.Web.FireWall.Configurations Namespace


NotApplicable Field

AllowWhenCondition..::..NotApplicable Field

The condition does not apply

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AllowWhenCondition NotApplicable

See Also

AllowWhenCondition Enumeration
Walter.Web.FireWall.Configurations Namespace


NotSet Field

AllowWhenCondition..::..NotSet Field

The value is not set

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AllowWhenCondition NotSet

See Also

AllowWhenCondition Enumeration
Walter.Web.FireWall.Configurations Namespace


OnlyExternalRequests Field

AllowWhenCondition..::..OnlyExternalRequests Field

The condition is only applicable to local requests

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AllowWhenCondition OnlyExternalRequests

See Also

AllowWhenCondition Enumeration
Walter.Web.FireWall.Configurations Namespace


OnlyLocalRequests Field

AllowWhenCondition..::..OnlyLocalRequests Field

The condition is only applicable to local requests

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AllowWhenCondition OnlyLocalRequests

See Also

AllowWhenCondition Enumeration
Walter.Web.FireWall.Configurations Namespace


Certificate Field

TamperDetection..::..Certificate Field

hash using a certificate

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection Certificate

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


HMACSHA256 Field

TamperDetection..::..HMACSHA256 Field

HMACSHA256 hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection HMACSHA256

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


HMACSHAMD5 Field

TamperDetection..::..HMACSHAMD5 Field

HMACSHAMD5 hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection HMACSHAMD5

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


Sha1 Field

TamperDetection..::..Sha1 Field

Sha1 hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection Sha1

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


Sha256 Field

TamperDetection..::..Sha256 Field

Sha256 hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection Sha256

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


Sha384 Field

TamperDetection..::..Sha384 Field

hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection Sha384

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


Sha512 Field

TamperDetection..::..Sha512 Field

Sha512 hash

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherConfig..::..TamperDetection Sha512

See Also

CypherConfig..::..TamperDetection Enumeration
Walter.Web.FireWall.Configurations Namespace


ASPWAF_Certificate Field

CypherStore..::..ASPWAF_Certificate Field

the certificate provided by ASP-WAF

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherStore ASPWAF_Certificate

See Also

CypherStore Enumeration
Walter.Web.FireWall.Configurations Namespace


CertificateFromDisk Field

CypherStore..::..CertificateFromDisk Field

A certificate on disk

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherStore CertificateFromDisk

See Also

CypherStore Enumeration
Walter.Web.FireWall.Configurations Namespace


CertificateStore Field

CypherStore..::..CertificateStore Field

a certificate from the certificate store managed by the computer or server

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherStore CertificateStore

See Also

CypherStore Enumeration
Walter.Web.FireWall.Configurations Namespace


PaswordAndSalt Field

CypherStore..::..PaswordAndSalt Field

use password and salt and do not use a certificate

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CypherStore PaswordAndSalt

See Also

CypherStore Enumeration
Walter.Web.FireWall.Configurations Namespace


Days Field

Duration..::..Days Field

use days

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Duration Days

See Also

Duration Enumeration
Walter.Web.FireWall.Configurations Namespace


Hours Field

Duration..::..Hours Field

use hours

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Duration Hours

See Also

Duration Enumeration
Walter.Web.FireWall.Configurations Namespace


Minutes Field

Duration..::..Minutes Field

use minutes

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Duration Minutes

See Also

Duration Enumeration
Walter.Web.FireWall.Configurations Namespace


Seconds Field

Duration..::..Seconds Field

use seconds

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Duration Seconds

See Also

Duration Enumeration
Walter.Web.FireWall.Configurations Namespace


DatabaseLogging Field

ErrorConfigurationElement..::..DatabaseLogging Field

database logging

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement DatabaseLogging

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


FireWall Field

ErrorConfigurationElement..::..FireWall Field

configure the firewall

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement FireWall

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


FireWallRules Field

ErrorConfigurationElement..::..FireWallRules Field

configure rules

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement FireWallRules

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


GeoService Field

ErrorConfigurationElement..::..GeoService Field

configure geo services

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement GeoService

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


ManagementInterface Field

ErrorConfigurationElement..::..ManagementInterface Field

management interface

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement ManagementInterface

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


TwoFactorAuthentication Field

ErrorConfigurationElement..::..TwoFactorAuthentication Field

two factor authentication

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement TwoFactorAuthentication

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


VpnProxyService Field

ErrorConfigurationElement..::..VpnProxyService Field

how to configure vpn users

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ErrorConfigurationElement VpnProxyService

See Also

ErrorConfigurationElement Enumeration
Walter.Web.FireWall.Configurations Namespace


All Field

KPILogLevels..::..All Field

Lag all Http methods

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KPILogLevels All

See Also

KPILogLevels Enumeration
Walter.Web.FireWall.Configurations Namespace


Delete Field

KPILogLevels..::..Delete Field

Log HttpDelete

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KPILogLevels Delete

See Also

KPILogLevels Enumeration
Walter.Web.FireWall.Configurations Namespace


Get Field

KPILogLevels..::..Get Field

Log HttpGet

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KPILogLevels Get

See Also

KPILogLevels Enumeration
Walter.Web.FireWall.Configurations Namespace


None Field

KPILogLevels..::..None Field

Disable KPI logging

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KPILogLevels None

See Also

KPILogLevels Enumeration
Walter.Web.FireWall.Configurations Namespace


Post Field

KPILogLevels..::..Post Field

Log HttpPost

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KPILogLevels Post

See Also

KPILogLevels Enumeration
Walter.Web.FireWall.Configurations Namespace


DoublePerIncident Field

RepeatViolations..::..DoublePerIncident Field

Double the block duration based on the total counts of all incidents that are in a given scope

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RepeatViolations DoublePerIncident

See Also

RepeatViolations Enumeration
Walter.Web.FireWall.Configurations Namespace


DoublePerSameIncident Field

RepeatViolations..::..DoublePerSameIncident Field

Double the block duration based on the counts the same incidents that are in a given scope

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RepeatViolations DoublePerSameIncident

See Also

RepeatViolations Enumeration
Walter.Web.FireWall.Configurations Namespace


NoSpecialAction Field

RepeatViolations..::..NoSpecialAction Field

Use only assigned values

Namespace: Walter.Web.FireWall.Configurations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RepeatViolations NoSpecialAction

See Also

RepeatViolations Enumeration
Walter.Web.FireWall.Configurations Namespace


CookieNotSend Field

CookiePoisoningMethod..::..CookieNotSend Field

The cookie not send to the user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CookiePoisoningMethod CookieNotSend

See Also

CookiePoisoningMethod Enumeration
Walter.Web.FireWall Namespace


CookieValueNotSend Field

CookiePoisoningMethod..::..CookieValueNotSend Field

The cookie value not was not send to the user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CookiePoisoningMethod CookieValueNotSend

See Also

CookiePoisoningMethod Enumeration
Walter.Web.FireWall Namespace


NoPoisoning Field

CookiePoisoningMethod..::..NoPoisoning Field

There was no poisoning

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CookiePoisoningMethod NoPoisoning

See Also

CookiePoisoningMethod Enumeration
Walter.Web.FireWall Namespace


FireWallAdministrationViolations Field

EMailRoles..::..FireWallAdministrationViolations Field

The fire wall administration related violations are send

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EMailRoles FireWallAdministrationViolations

See Also

EMailRoles Enumeration
Walter.Web.FireWall.Destinations.Email Namespace


None Field

EMailRoles..::..None Field

Role was not set

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EMailRoles None

See Also

EMailRoles Enumeration
Walter.Web.FireWall.Destinations.Email Namespace


OwnAccountRelatedViolations Field

EMailRoles..::..OwnAccountRelatedViolations Field

The users own account related violations are send

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EMailRoles OwnAccountRelatedViolations

See Also

EMailRoles Enumeration
Walter.Web.FireWall.Destinations.Email Namespace


ProductUpdates Field

EMailRoles..::..ProductUpdates Field

Product updates are send to account

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EMailRoles ProductUpdates

See Also

EMailRoles Enumeration
Walter.Web.FireWall.Destinations.Email Namespace


SecurityRelevant Field

EMailRoles..::..SecurityRelevant Field

Security relevant roles (default)

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EMailRoles SecurityRelevant

See Also

EMailRoles Enumeration
Walter.Web.FireWall.Destinations.Email Namespace


UnauthorizedPhysicalFilesViolation Field

EMailRoles..::..UnauthorizedPhysicalFilesViolation Field

The unauthorized physical files was altered and user needs to be notified

Namespace: Walter.Web.FireWall.Destinations.Email
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EMailRoles UnauthorizedPhysicalFilesViolation

See Also

EMailRoles Enumeration
Walter.Web.FireWall.Destinations.Email Namespace


DoNotUse Field

PowerShellFilesOption..::..DoNotUse Field

The do not use

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public const PowerShellFilesOption DoNotUse

See Also

PowerShellFilesOption Enumeration
Walter.Web.FireWall.DiskLogger Namespace


GenerateIfMissing Field

PowerShellFilesOption..::..GenerateIfMissing Field

Generate the script files if they are missing

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public const PowerShellFilesOption GenerateIfMissing

See Also

PowerShellFilesOption Enumeration
Walter.Web.FireWall.DiskLogger Namespace


OverWrite Field

PowerShellFilesOption..::..OverWrite Field

Overwrite the script files if they exist

Namespace: Walter.Web.FireWall.DiskLogger
Assembly: Walter.Web.FireWall.DiskLogger (in Walter.Web.FireWall.DiskLogger.dll)

Syntax

C#
public const PowerShellFilesOption OverWrite

See Also

PowerShellFilesOption Enumeration
Walter.Web.FireWall.DiskLogger Namespace


Default Field

EndPointCompairs..::..Default Field

use the default rule from the rule engine for a given context

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EndPointCompairs Default

See Also

EndPointCompairs Enumeration
Walter.Web.FireWall Namespace


Path Field

EndPointCompairs..::..Path Field

compare on only the path, ignore any parameters provided

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EndPointCompairs Path

See Also

EndPointCompairs Enumeration
Walter.Web.FireWall Namespace


PathAndMethod Field

EndPointCompairs..::..PathAndMethod Field

compare on only the HTTP Method and path, ignore any parameters provided

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EndPointCompairs PathAndMethod

See Also

EndPointCompairs Enumeration
Walter.Web.FireWall Namespace


PathAndMethodAndQuery Field

EndPointCompairs..::..PathAndMethodAndQuery Field

compare the HTTP Method and path, and all parameters provided

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EndPointCompairs PathAndMethodAndQuery

See Also

EndPointCompairs Enumeration
Walter.Web.FireWall Namespace


PathAndQuery Field

EndPointCompairs..::..PathAndQuery Field

compare with path and query

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const EndPointCompairs PathAndQuery

See Also

EndPointCompairs Enumeration
Walter.Web.FireWall Namespace


AJAX_ENDPOINT Field

FireWallGuardActions..::..AJAX_ENDPOINT Field

shorthand for the modules that are typically skipped for AJAX script endpoints

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions AJAX_ENDPOINT

Remarks

Shorthand for the typical activities that you would allow on AJAX endpoints that get frequently called from a Java script

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace
IFireWall..::..OnGuardAction


ALL Field

FireWallGuardActions..::..ALL Field

Combination of almost all modules that can be disabled

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions ALL

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace
IFireWall..::..OnGuardAction


API_ENDPOINT Field

FireWallGuardActions..::..API_ENDPOINT Field

shorthand for the modules that are typically skipped for API endpoints

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions API_ENDPOINT

Remarks

Shorthand for the typical activities that you would allow on API endpoints

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace
IFireWall..::..OnGuardAction


API_ENDPOINT_LAX Field

FireWallGuardActions..::..API_ENDPOINT_LAX Field

shorthand for the modules that are typically skipped for API endpoints where you allow even those that are blocked to access the endpoint

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions API_ENDPOINT_LAX

Remarks

Sometime you would like an endpoint to answer even if you normally reject a request. This thinking is comparable with a redirect for users that are normally not granted access as they are blocked by the firewall

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace
IFireWall..::..OnGuardAction


CSPReport Field

FireWallGuardActions..::..CSPReport Field

The CSP report

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions CSPReport

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


EarlyUserDiscovery Field

FireWallGuardActions..::..EarlyUserDiscovery Field

early user discovery modules

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions EarlyUserDiscovery

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


EmbeddedResources Field

FireWallGuardActions..::..EmbeddedResources Field

Embedded resources rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions EmbeddedResources

Remarks

Embedded resources are like virtual files that are coming from within a assembly and sometimes need special considerations when it comes to it's protections

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


IsBlocked Field

FireWallGuardActions..::..IsBlocked Field

The manual is blocked rule, can be set by any user code by calling the Block() method from the IFirewall instance

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions IsBlocked

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


None Field

FireWallGuardActions..::..None Field

Indicates none set to be ignored or tested depending on the context

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions None

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectAddHockRequests Field

FireWallGuardActions..::..RejectAddHockRequests Field

The reject add hock requests rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectAddHockRequests

Remarks

This applies to virtual and physical files like JavaScript, Style sheets, images and other items you would like in your web pages

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectAgentsConsideredMalicious Field

FireWallGuardActions..::..RejectAgentsConsideredMalicious Field

Reject requests from browsers and bots that are considered to be Malicious

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectAgentsConsideredMalicious

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectAPIPenetrationAttempts Field

FireWallGuardActions..::..RejectAPIPenetrationAttempts Field

A penetration attempt made against the firewall management API

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectAPIPenetrationAttempts

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectCommonVulnerabilitiesExposuresExploits Field

FireWallGuardActions..::..RejectCommonVulnerabilitiesExposuresExploits Field

the attack is a common vulnerabilities and exposure

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectCommonVulnerabilitiesExposuresExploits

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectCrossSiteRequests Field

FireWallGuardActions..::..RejectCrossSiteRequests Field

Reject access to a resource if not from internal domain or from a domain that is white-listed (protects HttpPost requests)

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectCrossSiteRequests

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectDDOS Field

FireWallGuardActions..::..RejectDDOS Field

The reject distributed denial of service request rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectDDOS

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectHitRatioViolations Field

FireWallGuardActions..::..RejectHitRatioViolations Field

The reject hit ratio violations

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectHitRatioViolations

Remarks

Ideal for pages that are only visited some times and normally would not be accessed to often, like a login page or credit card processing page.

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectHoneyPotTrap Field

FireWallGuardActions..::..RejectHoneyPotTrap Field

reject users making use of a ^known honey-pot trap

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectHoneyPotTrap

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectIntentions Field

FireWallGuardActions..::..RejectIntentions Field

reject a request based on browser intentions

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectIntentions

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectInvalidUserPageGroupHeader Field

FireWallGuardActions..::..RejectInvalidUserPageGroupHeader Field

reject those that have an invalid PageGroup identifier.

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectInvalidUserPageGroupHeader

Remarks

Use this to validate if a post-back of a script actually comes from a page you served to this user. to enable this feature one needs to set IFireWall.Configuration.Rules.Headers.TrackUsers to true

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace
Walter.Web.FireWall.Configurations..::..HeaderConfig


RejectInvalidUserSalt Field

FireWallGuardActions..::..RejectInvalidUserSalt Field

User presented the wrong cipher salt to the response or request

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectInvalidUserSalt

Remarks

Use to detect if the user sending the a AJAX post-back is actually the user that we assumed is sending the requests

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectInvalidUserSessionHeaderId Field

FireWallGuardActions..::..RejectInvalidUserSessionHeaderId Field

Invalid session header in request

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectInvalidUserSessionHeaderId

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectInvalidUserSessionId Field

FireWallGuardActions..::..RejectInvalidUserSessionId Field

Reject those that have the wrong firewall session id

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectInvalidUserSessionId

Remarks

Firewall sessions and user sessions are not the same, each user has a firewall session and does not use session state of .net

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectKnownBadBoys Field

FireWallGuardActions..::..RejectKnownBadBoys Field

The reject known bad boys rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectKnownBadBoys

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectNavigation Field

FireWallGuardActions..::..RejectNavigation Field

reject or allow a request based on links rendered to the user

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectNavigation

Remarks

Only works when firewall is set to protect web pages, the filter does not apply to supported search engines

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectNonAspNet Field

FireWallGuardActions..::..RejectNonAspNet Field

The request is a non ASP net request rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectNonAspNet

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectPenetrationAttempts Field

FireWallGuardActions..::..RejectPenetrationAttempts Field

Reject penetration attempts rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectPenetrationAttempts

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectPhsishing Field

FireWallGuardActions..::..RejectPhsishing Field

early user discovery modules

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectPhsishing

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectPoisonedCookies Field

FireWallGuardActions..::..RejectPoisonedCookies Field

Reject requests where the firewall detects poisoned cookies

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectPoisonedCookies

Remarks

You might get false positives here when you clear the cookies locally and you have active clients on the site. The cookie data will clear when you application terminates, this can happen after long idle times or like when your application crashes and restarts

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectRefreshViolations Field

FireWallGuardActions..::..RejectRefreshViolations Field

The reject refresh violations rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectRefreshViolations

Remarks

Prevents user re-loading the same page again and again, sometimes for scrubbing or DOS. Also you might want to redirect if happens, say when using credit card payments

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectRejectWhoisProvider Field

FireWallGuardActions..::..RejectRejectWhoisProvider Field

Reject requests if the Internet service provider is having the wrong reputation for a user target user group

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectRejectWhoisProvider

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectRepeatViolations Field

FireWallGuardActions..::..RejectRepeatViolations Field

The reject known bad boys that are causing repeat violations

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectRepeatViolations

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectScrubbing Field

FireWallGuardActions..::..RejectScrubbing Field

The reject scrubbing rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectScrubbing

Remarks

Prevents bot's from pulling data from the website this might because it contains links to other data like linked users or licensed data like stock symbols

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectSemanticUrlAttack Field

FireWallGuardActions..::..RejectSemanticUrlAttack Field

Reject semantic url attacks

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectSemanticUrlAttack

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectSiteMapViolations Field

FireWallGuardActions..::..RejectSiteMapViolations Field

Reject access to endpoints that have not been rendered to a previous request

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectSiteMapViolations

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectWrongGeography Field

FireWallGuardActions..::..RejectWrongGeography Field

User access from the wrong geographic region

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectWrongGeography

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectWrongProtocol Field

FireWallGuardActions..::..RejectWrongProtocol Field

The reject wrong protocol requests rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectWrongProtocol

Remarks

Will trigger if you specify say a HttpGet and the user send HttpPost to an endpoint

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


RejectWrongUserType Field

FireWallGuardActions..::..RejectWrongUserType Field

The reject requests from wrong user category like IsHuman or distinction like IsMalliciouse types rule

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions RejectWrongUserType

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace
More information on UserTypes and the flags in the documentation


TCPResetAttack Field

FireWallGuardActions..::..TCPResetAttack Field

A attempt is make to take the website off-line by flooding the site with connections that will be processed by the server but are never processed by the initiator

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuardActions TCPResetAttack

Remarks

The Great Firewall (GFW) is a collection of systems and techniques used by the Chinese government to censor the Internet for users inside China. The GFW actively blocks and kills connections to servers inside and outside of the country, as well as passively monitoring internet traffic for proscribed content.

See Also

FireWallGuardActions Enumeration
Walter.Web.FireWall.Filters Namespace


CurrentSessionOnly Field

SiteMapSearchResultFilter..::..CurrentSessionOnly Field

The link must have been visible in the current session

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResultFilter CurrentSessionOnly

See Also

SiteMapSearchResultFilter Enumeration
Walter.Web.FireWall.Filters Namespace


CurrentSitemapOnly Field

SiteMapSearchResultFilter..::..CurrentSitemapOnly Field

Allow links from the current pages page-site-map only

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResultFilter CurrentSitemapOnly

See Also

SiteMapSearchResultFilter Enumeration
Walter.Web.FireWall.Filters Namespace


RenderedToUser Field

SiteMapSearchResultFilter..::..RenderedToUser Field

The link must have been visible to user at some point

Namespace: Walter.Web.FireWall.Filters
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResultFilter RenderedToUser

Remarks

Please note that the firewall can only evaluate this based on data retention settings

See Also

SiteMapSearchResultFilter Enumeration
Walter.Web.FireWall.Filters Namespace


ContentSecurityPolicyReport Field

FireWallGuards..::..ContentSecurityPolicyReport Field

The content security policy report

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards ContentSecurityPolicyReport

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


FireWallAuthentication Field

FireWallGuards..::..FireWallAuthentication Field

Guard that manages user access to firewall administration

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards FireWallAuthentication

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


HoneyPotPortDetector Field

FireWallGuards..::..HoneyPotPortDetector Field

detects access via honey pot ports

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards HoneyPotPortDetector

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


LimitReffererFilter Field

FireWallGuards..::..LimitReffererFilter Field

Filter allowing for access from only a specific referrer

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards LimitReffererFilter

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


None Field

FireWallGuards..::..None Field

Indicates that there is no firewall protection and protection is not defined by the runtime

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards None

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


PhishingGuard Field

FireWallGuards..::..PhishingGuard Field

Guard that prevents fishing requests

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards PhishingGuard

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


UsesCrossSiteFilter Field

FireWallGuards..::..UsesCrossSiteFilter Field

Cross site protection filter

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards UsesCrossSiteFilter

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


UsesFilters Field

FireWallGuards..::..UsesFilters Field

The filters

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards UsesFilters

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


UsesGeoMiddleWare Field

FireWallGuards..::..UsesGeoMiddleWare Field

The firewall uses geography middleware

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards UsesGeoMiddleWare

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


UsesHeaderMiddleware Field

FireWallGuards..::..UsesHeaderMiddleware Field

Firewall uses HTTP header middleware

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards UsesHeaderMiddleware

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


UsesMiddleWare Field

FireWallGuards..::..UsesMiddleWare Field

The firewall uses always on middleware

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallGuards UsesMiddleWare

See Also

FireWallGuards Enumeration
Walter.Web.FireWall Namespace


CrossSiteAttribute Field

FireWallModules..::..CrossSiteAttribute Field

Cross site attribute

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules CrossSiteAttribute

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


CrossSiteFilter Field

FireWallModules..::..CrossSiteFilter Field

Cross site filter

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules CrossSiteFilter

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


FireWallAttributeAnnotation Field

FireWallModules..::..FireWallAttributeAnnotation Field

The fire wall attribute annotation module is a filter that is executed on a annotated object and is usually one of the first item to get executed in a pipeline

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules FireWallAttributeAnnotation

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


GeoAttributeAnnotation Field

FireWallModules..::..GeoAttributeAnnotation Field

The geographic attribute is annotation module on that is executed on a annotated object and is usually one of the first item to get executed in a pipeline

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules GeoAttributeAnnotation

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


GeoFilter Field

FireWallModules..::..GeoFilter Field

The geographic filter validations regional access at a request level

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules GeoFilter

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


HeadersFilter Field

FireWallModules..::..HeadersFilter Field

The module that looks at headers and filters violations

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules HeadersFilter

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


KnownIntentions Field

FireWallModules..::..KnownIntentions Field

Browser/ User agent intentions

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules KnownIntentions

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


Minify Field

FireWallModules..::..Minify Field

Minify filter

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules Minify

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


None Field

FireWallModules..::..None Field

This indicates that a module is not defined to add to the protection on or resources

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules None

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


PageConstructor Field

FireWallModules..::..PageConstructor Field

The page request constructor

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules PageConstructor

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


RazorFireWallHelper Field

FireWallModules..::..RazorFireWallHelper Field

The razor firewall helper module allows you to integrate the firewall at a HTML tag attribute level allowing you to hide or show elements based on violations

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules RazorFireWallHelper

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


RazorGeoHelper Field

FireWallModules..::..RazorGeoHelper Field

The razor geographic helper module allows you to integrate the firewall at a HTML tag attribute level allowing you to hide or show elements based on geographic locations

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules RazorGeoHelper

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


RequestFilter Field

FireWallModules..::..RequestFilter Field

The request filter protects all requests and executes several rules

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules RequestFilter

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


RequestUserFilter Field

FireWallModules..::..RequestUserFilter Field

Filter access based on type of user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallModules RequestUserFilter

See Also

FireWallModules Enumeration
Walter.Web.FireWall Namespace


Distributed Field

FireWallProtectionModes..::..Distributed Field

The firewall assumes that it is distributed/ load-balanced on several servers. Please note that you need to use a Distributed Cashing and Session provider in your dependency injection.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes Distributed

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


Embedded Field

FireWallProtectionModes..::..Embedded Field

Indicates that the firewall operates with an reduced memory footprint designed for embedded devices

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes Embedded

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


None Field

FireWallProtectionModes..::..None Field

The type is not defined, generally this is bad and should be avoided as the firewall will disable itself

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes None

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


ServiceApplication Field

FireWallProtectionModes..::..ServiceApplication Field

The firewall assumes that the connected application is something like a service, this could be a service or any application accepting connections

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes ServiceApplication

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


SoftwareFireWall Field

FireWallProtectionModes..::..SoftwareFireWall Field

The firewall assumes to act as a software firewall for all connection coming to, and leaving from the machine.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes SoftwareFireWall

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


WebService Field

FireWallProtectionModes..::..WebService Field

The firewall assumes that it is a web-service that is being protected, that means that all requests are stateless and that sessions and client side JavaScripts are not used.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes WebService

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


WebSite Field

FireWallProtectionModes..::..WebSite Field

The firewall assumes that it is a web site that it is protecting and will use rules that apply to serving pages and dealing with cookies and session

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes WebSite

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


WebSiteWithApi Field

FireWallProtectionModes..::..WebSiteWithApi Field

The Firewall assumes that it is protecting a web site with controllers, pages and API endpoints

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallProtectionModes WebSiteWithApi

See Also

FireWallProtectionModes Enumeration
Walter.Web.FireWall Namespace


Active Field

FireWallState..::..Active Field

The firewall is active

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallState Active

See Also

FireWallState Enumeration
Walter.Web.FireWall Namespace


Off Field

FireWallState..::..Off Field

The firewall is off

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallState Off

See Also

FireWallState Enumeration
Walter.Web.FireWall Namespace


ReportOnly Field

FireWallState..::..ReportOnly Field

The firewall only reports violations

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FireWallState ReportOnly

See Also

FireWallState Enumeration
Walter.Web.FireWall Namespace


Allow Field

FramesPolicy..::..Allow Field

allow it

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FramesPolicy Allow

See Also

FramesPolicy Enumeration
Walter.Web.FireWall Namespace


None Field

FramesPolicy..::..None Field

allow none

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FramesPolicy None

See Also

FramesPolicy Enumeration
Walter.Web.FireWall Namespace


Self Field

FramesPolicy..::..Self Field

only allow self hosted

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FramesPolicy Self

See Also

FramesPolicy Enumeration
Walter.Web.FireWall Namespace


ALL Field

Categories..::..ALL Field

Indicates that you store all categories of data in your cookies and browser data, quite unlikely and perhaps you need to have a coffee with legal

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories ALL

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


ApplicationState Field

Categories..::..ApplicationState Field

State Management Mechanisms

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories ApplicationState

Remarks

Mechanisms for maintaining a stateful session with a user or automatically recognizing users who have visited a particular site or accessed particular content previously -- such as HTTP cookies.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


ComputerInformation Field

Categories..::..ComputerInformation Field

Computer Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories ComputerInformation

Remarks

Information about the computer system that the individual is using to access the network -- such as the IP number, domain name, browser type or operating system.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Content Field

Categories..::..Content Field

Content

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories Content

Remarks

The words and expressions contained in the body of a communication -- such as the text of email, bulletin board postings, or chat room communications

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


DemographicSocioeconomic Field

Categories..::..DemographicSocioeconomic Field

Demographic and Socioeconomic Data

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories DemographicSocioeconomic

Remarks

Data about an individual's characteristics -- such as gender, age, and income.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


FinancialInformation Field

Categories..::..FinancialInformation Field

Financial Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories FinancialInformation

Remarks

Information about an individual's finances including account status and activity information such as account balance, payment or overdraft history, and information about an individual's purchase or use of financial instruments including credit or debit card information. Information about a discrete purchase by an individual, as described in "Purchase Information," alone does not come under the definition of "Financial Information."

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


GovernmentIssuedIdentifiers Field

Categories..::..GovernmentIssuedIdentifiers Field

Government Issued Identifiers

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories GovernmentIssuedIdentifiers

Remarks

Identifiers issued by a government for purposes of consistently identifying the individual.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


HealthInformation Field

Categories..::..HealthInformation Field

Health Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories HealthInformation

Remarks

information about an individual's physical or mental health, sexual orientation, use or inquiry into health care services or products, and purchase of health care services or products.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Interactive Field

Categories..::..Interactive Field

Interactive Data

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories Interactive

Remarks

Data actively generated from or reflecting explicit interactions with a service provider through its site -- such as queries to a search engine, or logs of account activity.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


LocationData Field

Categories..::..LocationData Field

LocationData

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories LocationData

Remarks

Information that can be used to identify an individual's current physical location and track them as their location changes -- such as GPS position data.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Navigation Field

Categories..::..Navigation Field

Navigation and Click-stream Data

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories Navigation

Remarks

Data passively generated by browsing the Web site -- such as which pages are visited, and how long users stay on each page.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


None Field

Categories..::..None Field

Data category not specified

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories None

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OnlineContactInformation Field

Categories..::..OnlineContactInformation Field

Online Contact Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories OnlineContactInformation

Remarks

Information that allows an individual to be contacted or located on the Internet -- such as email. Often, this information is independent of the specific computer used to access the network. (See the category "Computer Information")

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OtherCategory Field

Categories..::..OtherCategory Field

other-category

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories OtherCategory

Remarks

Other types of data not captured by the above definitions. (A human readable explanation should be provided in these instances

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PhysicalContactInformation Field

Categories..::..PhysicalContactInformation Field

Physical Contact Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories PhysicalContactInformation

Remarks

Information that allows an individual to be contacted or located in the physical world -- such as telephone number or address

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PoliticalInformation Field

Categories..::..PoliticalInformation Field

Political Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories PoliticalInformation

Remarks

Membership in or affiliation with groups such as religious organizations, trade unions, professional associations, political parties, etc.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PreferenceData Field

Categories..::..PreferenceData Field

Preference Data

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories PreferenceData

Remarks

Data about an individual's likes and dislikes -- such as favorite color or musical tastes.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PurchaseInformation Field

Categories..::..PurchaseInformation Field

Purchase Information

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories PurchaseInformation

Remarks

Information actively generated by the purchase of a product or service, including information about the method of payment.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


UniqueIdentifiers Field

Categories..::..UniqueIdentifiers Field

Unique Identifiers

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Categories UniqueIdentifiers

Remarks

Non-financial identifiers, excluding government-issued identifiers, issued for purposes of consistently identifying or recognizing the individual. These include identifiers issued by a Web site or service.

See Also

Categories Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Always Field

PolicyAcceptance..::..Always Field

user always accepts the option and no choice is available

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PolicyAcceptance Always

See Also

PolicyAcceptance Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


NotSet Field

PolicyAcceptance..::..NotSet Field

acceptance is not specified

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PolicyAcceptance NotSet

See Also

PolicyAcceptance Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OptIn Field

PolicyAcceptance..::..OptIn Field

user must op in

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PolicyAcceptance OptIn

See Also

PolicyAcceptance Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OptOut Field

PolicyAcceptance..::..OptOut Field

user may chose to not opt in

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PolicyAcceptance OptOut

See Also

PolicyAcceptance Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Administration Field

Purposes..::..Administration Field

Web Site and System Administration

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes Administration

Remarks

Information may be used for the technical support of the Web site and its computer system. This would include processing computer account information, information used in the course of securing and maintaining the site, and verification of Web site activity by the site or its agents.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


ALL Field

Purposes..::..ALL Field

Indicates that you store data for all possible activities

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes ALL

Remarks

storing all possible activities in your cookies and browser data is generally considered to be a anti-pattern and a security risk.

perhaps you better store this data in a database as cookies are limited in size and you can't guarantee that the cookie does not get deleted by the user or that the users never uses a different browser or computer that does not transmit the data.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Contacting Field

Purposes..::..Contacting Field

Contacting Visitors for Marketing of Services or Products

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes Contacting

Remarks

Information may be used to contact the individual, through a communications channel other than voice telephone, for the promotion of a product or service. This includes notifying visitors about updates to the Web site. This does not include a direct reply to a question or comment or customer service for a single transaction -- in those cases, CurrentActivity would be used. In addition, this does not include marketing via customized Web content or banner advertisements embedded in sites the user is visiting -- these cases would be covered by the tailoring, pseudo-analysis and pseudo-decision, or individual-analysis and individual-decision purposes.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace
Purposes..::..CurrentActivity
Purposes..::..Tailoring
Purposes..::..PseudonymousAnalysis
Purposes..::..PseudonymousDecision
Purposes..::..IndividualAnalysis
Purposes..::..IndividualDecision


CurrentActivity Field

Purposes..::..CurrentActivity Field

Completion and Support of Activity For Which Data Was Provided

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes CurrentActivity

Remarks

Information may be used by the service provider to complete the activity for which it was provided, whether a one-time activity such as returning the results from a Web search, forwarding an email message, or placing an order; or a recurring activity such as providing a subscription service, or allowing access to an online address book or electronic wallet.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Development Field

Purposes..::..Development Field

Research and Development

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes Development

Remarks

Information may be used to enhance, evaluate, or otherwise review the site, service, product, or market. This does not include personal information used to tailor or modify the content to the specific individual nor information used to evaluate, target, profile or contact the individual.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


HistoricalPreservation Field

Purposes..::..HistoricalPreservation Field

Historical Preservation

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes HistoricalPreservation

Remarks

Information may be archived or stored for the purpose of preserving social history as governed by an existing law or policy. This law or policy MUST be referenced in the DISPUTES element and MUST include a specific definition of the type of qualified researcher who can access the information, where this information will be stored and specifically how this collection advances the preservation of history.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


IndividualAnalysis Field

Purposes..::..IndividualAnalysis Field

Individual Analysis

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes IndividualAnalysis

Remarks

Information may be used to determine the habits, interests, or other characteristics of individuals and combine it with identified data for the purpose of research, analysis and reporting. For example, an online Web site for a physical store may wish to analyze how online shoppers make offline purchases.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


IndividualDecision Field

Purposes..::..IndividualDecision Field

Individual Decision

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes IndividualDecision

Remarks

Information may be used to determine the habits, interests, or other characteristics of individuals and combine it with identified data to make a decision that directly affects that individual. For example, an online store suggests items a visitor may wish to purchase based on items he has purchased during previous visits to the Web site.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


None Field

Purposes..::..None Field

option is not set

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes None

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OtherUses Field

Purposes..::..OtherUses Field

Other Uses

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes OtherUses

Remarks

Information may be used in other ways not captured by the above definitions. (A human readable explanation MUST be provided in these instances)

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PseudonymousAnalysis Field

Purposes..::..PseudonymousAnalysis Field

Pseudonymous Analysis

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes PseudonymousAnalysis

Remarks

Pseudonymous Analysis: Information may be used to create or build a record of a particular individual or computer that is tied to a pseudonymous identifier, without tying identified data (such as name, address, phone number, or email address) to the record. This profile will be used to determine the habits, interests, or other characteristics of individuals for purpose of research, analysis and reporting, but it will not be used to attempt to identify specific individuals. For example, a marketer may wish to understand the interests of visitors to different portions of a Web site.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PseudonymousDecision Field

Purposes..::..PseudonymousDecision Field

Pseudonymous Decision

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes PseudonymousDecision

Remarks

Information may be used to create or build a record of a particular individual or computer that is tied to a pseudonymous identifier, without tying identified data (such as name, address, phone number, or email address) to the record. This profile will be used to determine the habits, interests, or other characteristics of individuals to make a decision that directly affects that individual, but it will not be used to attempt to identify specific individuals. For example, a marketer may tailor or modify content displayed to the browser based on pages viewed during previous visits.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Tailoring Field

Purposes..::..Tailoring Field

One-time Tailoring

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes Tailoring

Remarks

Information may be used to tailor or modify content or design of the site where the information is used only for a single visit to the site and not used for any kind of future customization. For example, an online store might suggest other items a visitor may wish to purchase based on the items he has already placed in his shopping basket.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


Telemarketing Field

Purposes..::..Telemarketing Field

for telemarketing Contacting Visitors for Marketing of Services or Products Via Telephone, Email etc.

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Purposes Telemarketing

Remarks

Information may be used to contact the individual via a voice telephone call for promotion of a product or service. This does not include a direct reply to a question or comment or customer service for a single transaction -- in those cases, CurrentActivity would be used.

See Also

Purposes Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace
Purposes..::..CurrentActivity


ALL Field

Recipients..::..ALL Field

Indicates that you share your data with everyone

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients ALL

Remarks

Are you FaceBook or having a data leak?

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


DeliveryEntities Field

Recipients..::..DeliveryEntities Field

Delivery services possibly following different practices

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients DeliveryEntities

Remarks

Legal entities performing delivery services that may use data for purposes other than completion of the stated purpose. This should also be used for delivery services whose data practices are unknown.

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


None Field

Recipients..::..None Field

not specified

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients None

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OtherEnteties Field

Recipients..::..OtherEnteties Field

Legal entities following different practices

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients OtherEnteties

Remarks

Legal entities that are constrained by and accountable to the original service provider, but may use the data in a way not specified in the service provider's practices (e.g., the service provider collects data that is shared with a partner who may use it for other purposes. However, it is in the service provider's interest to ensure that the data is not used in a way that would be considered abusive to the users' and its own interests.)

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


OurEntity Field

Recipients..::..OurEntity Field

Ourselves and/or entities acting as our agents or entities for whom we are acting as an agent

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients OurEntity

Remarks

An agent in this instance is defined as a third party that processes data only on behalf of the service provider for the completion of the stated purposes. (e.g., the service provider and its printing bureau which prints address labels and does nothing further with the information.

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


PublicFlora Field

Recipients..::..PublicFlora Field

For the public

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients PublicFlora

Remarks

Public for such as bulletin boards, public directories, or commercial directories.

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


SameEntities Field

Recipients..::..SameEntities Field

Legal entities following our practices

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients SameEntities

Remarks

Legal entities who use the data on their own behalf under equable practices. (e.g., consider a service provider that grants the user access to collected personal information, and also provides it to a partner who uses it once but discards it. Since the recipient, who has otherwise similar practices, cannot grant the user access to information that it discarded, they are considered to have equable practices.)

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


UnrelatedThirdParties Field

Recipients..::..UnrelatedThirdParties Field

Unrelated third parties

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Recipients UnrelatedThirdParties

Remarks

Legal entities whose data usage practices are not known by the original service provider.

See Also

Recipients Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


COR Field

Remedies..::..COR Field

Correct

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Remedies COR

Remarks

Errors or wrongful actions arising in connection with the privacy policy will be remedied by the service.

See Also

Remedies Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


LAW Field

Remedies..::..LAW Field

Law

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Remedies LAW

Remarks

Remedies for breaches of the policy statement will be determined based on the applicable law.

See Also

Remedies Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


MON Field

Remedies..::..MON Field

Money

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Remedies MON

Remarks

If the service provider violates its privacy policy it will pay the individual an amount specified in the human readable privacy policy or the amount of damages.

See Also

Remedies Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


None Field

Remedies..::..None Field

Remedies data is not set

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Remedies None

See Also

Remedies Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


ALL Field

Retentions..::..ALL Field

Data retention policy and practices by your site, normally these are not cookie related

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions ALL

Remarks

You can't really have all as some state you save and not save the data

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


BusinessPractices Field

Retentions..::..BusinessPractices Field

Business Practices

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions BusinessPractices

Remarks

Determined by service provider's business practice: Information is retained under a service provider's stated business practices. Sites MUST have a retention policy that establishes a destruction time table.

The retention policy MUST be included in or linked from the site's human-readable privacy policy.

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


DataStoredIndefinitely Field

Retentions..::..DataStoredIndefinitely Field

Data is stored indefinitely

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions DataStoredIndefinitely

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


LegalRequirement Field

Retentions..::..LegalRequirement Field

Data is stored with a Legal Requirement in the sites privacy policy

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions LegalRequirement

Remarks

As required by law or liability under applicable law: Information is retained to meet a stated purpose, but the retention period is longer because of a legal requirement or liability. For example, a law may allow consumers to dispute transactions for a certain time period; therefore a business may for liability reasons decide to maintain records of transactions, or a law may affirmatively require a certain business to maintain records for auditing or other soundness purposes.

Sites MUST have a retention policy that establishes a destruction time table. The retention policy MUST be included in or linked from the site's human-readable privacy policy

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


NoDataRetention Field

Retentions..::..NoDataRetention Field

No Data Retention

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions NoDataRetention

Remarks

Information is not retained for more than a brief period of time necessary to make use of it during the course of a single online interaction. Information MUST be destroyed following this interaction and MUST NOT be logged, archived, or otherwise stored.

This type of retention policy would apply, for example, to services that keep no Web server logs, set cookies only for use during a single session, or collect information to perform a search but do not keep logs of searches performed.

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


None Field

Retentions..::..None Field

Not Specified

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions None

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


StatedPurpose Field

Retentions..::..StatedPurpose Field

Data is stored with a Stated Purpose in the sites privacy policy

Namespace: Walter.Web.FireWall.GDPR.P3P
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const Retentions StatedPurpose

Remarks

For the stated purpose: Information is retained to meet the stated purpose. This requires information to be discarded at the earliest time possible.

Sites MUST have a retention policy that establishes a destruction time table.

The retention policy MUST be included in or linked from the site's human-readable privacy policy.

///

See Also

Retentions Enumeration
Walter.Web.FireWall.GDPR.P3P Namespace


CityData Field

ContentType..::..CityData Field

city data

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ContentType CityData

See Also

ContentType Enumeration
Walter.Web.FireWall.Geo Namespace


GeoData Field

ContentType..::..GeoData Field

country data

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ContentType GeoData

See Also

ContentType Enumeration
Walter.Web.FireWall.Geo Namespace


ISP Field

ContentType..::..ISP Field

Internet service providers

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ContentType ISP

See Also

ContentType Enumeration
Walter.Web.FireWall.Geo Namespace


VPNData Field

ContentType..::..VPNData Field

VPN / proxy data

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ContentType VPNData

See Also

ContentType Enumeration
Walter.Web.FireWall.Geo Namespace


City Field

GeoDataDetailLevels..::..City Field

The city

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoDataDetailLevels City

See Also

GeoDataDetailLevels Enumeration
Walter.Web.FireWall.Geo Namespace


County Field

GeoDataDetailLevels..::..County Field

The county

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoDataDetailLevels County

See Also

GeoDataDetailLevels Enumeration
Walter.Web.FireWall.Geo Namespace


ISP Field

GeoDataDetailLevels..::..ISP Field

The Internet Service Provider (ISP)

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoDataDetailLevels ISP

See Also

GeoDataDetailLevels Enumeration
Walter.Web.FireWall.Geo Namespace


LatLong Field

GeoDataDetailLevels..::..LatLong Field

The lat long

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoDataDetailLevels LatLong

See Also

GeoDataDetailLevels Enumeration
Walter.Web.FireWall.Geo Namespace


None Field

GeoDataDetailLevels..::..None Field

The Geographical data level accuracy is not set

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoDataDetailLevels None

See Also

GeoDataDetailLevels Enumeration
Walter.Web.FireWall.Geo Namespace


Street Field

GeoDataDetailLevels..::..Street Field

The street

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoDataDetailLevels Street

See Also

GeoDataDetailLevels Enumeration
Walter.Web.FireWall.Geo Namespace


Bing Field

GeoFreeAccessReason..::..Bing Field

Bing gets access

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Bing

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


Google Field

GeoFreeAccessReason..::..Google Field

Google gets access

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Google

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


Manual Field

GeoFreeAccessReason..::..Manual Field

Manual release

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Manual

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


Office Field

GeoFreeAccessReason..::..Office Field

The office gets access

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Office

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


Server Field

GeoFreeAccessReason..::..Server Field

Server can be excluded as it should not be able to block itself

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Server

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


Yahoo Field

GeoFreeAccessReason..::..Yahoo Field

Yahoo get's access

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Yahoo

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


Yandex Field

GeoFreeAccessReason..::..Yandex Field

The Yandex search engine gets access

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoFreeAccessReason Yandex

See Also

GeoFreeAccessReason Enumeration
Walter.Web.FireWall.Geo Namespace


EmbeddedResource Field

GeoMethod..::..EmbeddedResource Field

The data is located in embedded resource

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoMethod EmbeddedResource

See Also

GeoMethod Enumeration
Walter.Web.FireWall.Geo Namespace


NotSet Field

GeoMethod..::..NotSet Field

Not set, this will generate a to-do item as one needs to specify a way to connect

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoMethod NotSet

See Also

GeoMethod Enumeration
Walter.Web.FireWall.Geo Namespace


UseApi Field

GeoMethod..::..UseApi Field

The use API provided by your data provider

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoMethod UseApi

See Also

GeoMethod Enumeration
Walter.Web.FireWall.Geo Namespace


UseDatabase Field

GeoMethod..::..UseDatabase Field

The a database, please note that the database needs to be configured for the provider specified. The Walter.Web.FireWall.Geo.Ip2Location NuGet package contains the database scrip and will create empty tables if the tabled do not exist

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoMethod UseDatabase

See Also

GeoMethod Enumeration
Walter.Web.FireWall.Geo Namespace


UseFile Field

GeoMethod..::..UseFile Field

The use files provided by MaxMind or IP2Location or your own implementation of IGeoFactory

Namespace: Walter.Web.FireWall.Geo
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GeoMethod UseFile

See Also

GeoMethod Enumeration
Walter.Web.FireWall.Geo Namespace


CustomHeader Field

HeaderSimulations..::..CustomHeader Field

contains a header that was added without a specific W3C rule

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeaderSimulations CustomHeader

See Also

HeaderSimulations Enumeration
Walter.Web.FireWall.Headers Namespace


None Field

HeaderSimulations..::..None Field

No simulations have been defined

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeaderSimulations None

See Also

HeaderSimulations Enumeration
Walter.Web.FireWall.Headers Namespace


NoTechnologyHeaders Field

HeaderSimulations..::..NoTechnologyHeaders Field

Tells the firewall that no technology headers are to be allowed

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeaderSimulations NoTechnologyHeaders

See Also

HeaderSimulations Enumeration
Walter.Web.FireWall.Headers Namespace


SimulateDifferentServer Field

HeaderSimulations..::..SimulateDifferentServer Field

indicates that simulates the different hosting platform is defined

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeaderSimulations SimulateDifferentServer

See Also

HeaderSimulations Enumeration
Walter.Web.FireWall.Headers Namespace


SimulateDifferentTechnologyStack Field

HeaderSimulations..::..SimulateDifferentTechnologyStack Field

indicates that simulates the different technology stack was defined

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeaderSimulations SimulateDifferentTechnologyStack

See Also

HeaderSimulations Enumeration
Walter.Web.FireWall.Headers Namespace


ContentSecurityPolicyTrustExternalSources Field

HeadersPolicies..::..ContentSecurityPolicyTrustExternalSources Field

Indicates that the browser will have a CSP will only trust own domain as well as specified external CDN's

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies ContentSecurityPolicyTrustExternalSources

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


ContentSecurityPolicyTrustOnlySelf Field

HeadersPolicies..::..ContentSecurityPolicyTrustOnlySelf Field

Indicates that the browser will have a CSP will only trust own domain

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies ContentSecurityPolicyTrustOnlySelf

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


ContentTypeOptionsNoSniff Field

HeadersPolicies..::..ContentTypeOptionsNoSniff Field

indicates that the browser will have X-Content-Type-Options nosniff to all headers.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies ContentTypeOptionsNoSniff

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


DoNotTrack Field

HeadersPolicies..::..DoNotTrack Field

Indicates that 3rd party "do not track signal" is configured.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies DoNotTrack

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


FrameOptionsDeny Field

HeadersPolicies..::..FrameOptionsDeny Field

Indicates that the pages cannot be displayed in a frame, regardless of the site attempting to do so

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies FrameOptionsDeny

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


FrameOptionsSameOrigin Field

HeadersPolicies..::..FrameOptionsSameOrigin Field

indicates that only frames are allowed that are of this domain

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies FrameOptionsSameOrigin

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


None Field

HeadersPolicies..::..None Field

No policy has been applied, headers are not protected by the browser or firewall

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies None

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


StrictTransportSecurityMaxAge Field

HeadersPolicies..::..StrictTransportSecurityMaxAge Field

Indicates that the browser is to honor Strict-Transport-Security max-age to all requests in this domain but not sub domains and tells the browser to cache the domain in the STS list for the number of seconds provided.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies StrictTransportSecurityMaxAge

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


StrictTransportSecurityMaxAgeIncludeSubDomains Field

HeadersPolicies..::..StrictTransportSecurityMaxAgeIncludeSubDomains Field

Indicates that the browser is to honor Strict-Transport-Security max-age to all requests in the domain and sub domains and tells the browser to cache the domain in the STS list for the number of seconds provided.

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies StrictTransportSecurityMaxAgeIncludeSubDomains

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


StrictTransportSecurityNoCache Field

HeadersPolicies..::..StrictTransportSecurityNoCache Field

Add Strict-Transport-Security max-age=0 to all requests and ells the browser to remove, or not cache the host in the STS cache

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies StrictTransportSecurityNoCache

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


XssProtectionDisabled Field

HeadersPolicies..::..XssProtectionDisabled Field

Indicates that the pages do not have XSS protection

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies XssProtectionDisabled

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


XssProtectionEnabled Field

HeadersPolicies..::..XssProtectionEnabled Field

Indicates that the pages have XSS protection

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies XssProtectionEnabled

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


XssProtectionWithBlockEnabled Field

HeadersPolicies..::..XssProtectionWithBlockEnabled Field

Indicates that the pages have XSS protection and tells the browser to block

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies XssProtectionWithBlockEnabled

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


XssProtectionWithReportEnabled Field

HeadersPolicies..::..XssProtectionWithReportEnabled Field

Indicates that the pages have XSS protection and tells the browser to report

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const HeadersPolicies XssProtectionWithReportEnabled

See Also

HeadersPolicies Enumeration
Walter.Web.FireWall.Headers Namespace


Apache Field

ServerSimulation..::..Apache Field

The apache Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Apache200Unix Field

ServerSimulation..::..Apache200Unix Field

The apache release 200 UNIX based Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache200Unix

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Apache220Unix Field

ServerSimulation..::..Apache220Unix Field

The apache release 220 UNIX based Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache220Unix

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Apache244Unix Field

ServerSimulation..::..Apache244Unix Field

The apache release 244 UNIX based Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache244Unix

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Apache244Windows Field

ServerSimulation..::..Apache244Windows Field

The apache release 244 windows

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache244Windows

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Apache249Unix Field

ServerSimulation..::..Apache249Unix Field

The apache release 249 UNIX based Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache249Unix

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Apache249Windows Field

ServerSimulation..::..Apache249Windows Field

The apache release 249 windows based Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Apache249Windows

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Caddy Field

ServerSimulation..::..Caddy Field

The caddy Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation Caddy

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


IIS7 Field

ServerSimulation..::..IIS7 Field

The IIS 7 Internet information server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation IIS7

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


IIS8 Field

ServerSimulation..::..IIS8 Field

The IIS 8 Internet information server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation IIS8

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


IIS10 Field

ServerSimulation..::..IIS10 Field

The IIS 10 Internet information server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation IIS10

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


IIS75 Field

ServerSimulation..::..IIS75 Field

The IIS 7.5 Internet information server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation IIS75

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


IIS85 Field

ServerSimulation..::..IIS85 Field

The IIS 8.5 Internet information server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation IIS85

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


nginx Field

ServerSimulation..::..nginx Field

The nginx UNIX based Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation nginx

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


NginxWebServer Field

ServerSimulation..::..NginxWebServer Field

The nginx web server Internet server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation NginxWebServer

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


OracleHTTPServer Field

ServerSimulation..::..OracleHTTPServer Field

The oracle HTTP server

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ServerSimulation OracleHTTPServer

See Also

ServerSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


NodeJs Field

StackSimulation..::..NodeJs Field

generate NodeJs like headers and cookies

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const StackSimulation NodeJs

See Also

StackSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


PHP Field

StackSimulation..::..PHP Field

generate PHP like headers and cookies

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const StackSimulation PHP

See Also

StackSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Python Field

StackSimulation..::..Python Field

generate common Python like headers and cookies

Namespace: Walter.Web.FireWall.Headers
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const StackSimulation Python

See Also

StackSimulation Enumeration
Walter.Web.FireWall.Headers Namespace


Delete Field

AdminAccess..::..Delete Field

The delete

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess Delete

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Full Field

AdminAccess..::..Full Field

full access to manage data and users

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess Full

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Guest Field

AdminAccess..::..Guest Field

The guest

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess Guest

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Manage Field

AdminAccess..::..Manage Field

The manage users

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess Manage

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


None Field

AdminAccess..::..None Field

The none

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess None

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


ReadOnly Field

AdminAccess..::..ReadOnly Field

The read only

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess ReadOnly

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


ReadWrite Field

AdminAccess..::..ReadWrite Field

The read write

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AdminAccess ReadWrite

See Also

AdminAccess Enumeration
Walter.Web.FireWall.Infrastructure Namespace


HTML Field

CanvasDataType..::..HTML Field

Rendered page raw HTML

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CanvasDataType HTML

See Also

CanvasDataType Enumeration
Walter.Web.FireWall.Infrastructure Namespace


PDF Field

CanvasDataType..::..PDF Field

rendered page as PDF

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CanvasDataType PDF

See Also

CanvasDataType Enumeration
Walter.Web.FireWall.Infrastructure Namespace


PNG Field

CanvasDataType..::..PNG Field

rendered page as PNG image

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const CanvasDataType PNG

See Also

CanvasDataType Enumeration
Walter.Web.FireWall.Infrastructure Namespace


AppData Field

FileSafetyContext..::..AppData Field

The application data

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FileSafetyContext AppData

See Also

FileSafetyContext Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Binaries Field

FileSafetyContext..::..Binaries Field

The binaries

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FileSafetyContext Binaries

See Also

FileSafetyContext Enumeration
Walter.Web.FireWall.Infrastructure Namespace


NotSet Field

FileSafetyContext..::..NotSet Field

The not set

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FileSafetyContext NotSet

See Also

FileSafetyContext Enumeration
Walter.Web.FireWall.Infrastructure Namespace


wwwroot Field

FileSafetyContext..::..wwwroot Field

The wwwroot

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FileSafetyContext wwwroot

See Also

FileSafetyContext Enumeration
Walter.Web.FireWall.Infrastructure Namespace


FireWallBlocking Field

FlowReason..::..FireWallBlocking Field

firewall triggered blocking

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FlowReason FireWallBlocking

See Also

FlowReason Enumeration
Walter.Web.FireWall.Infrastructure Namespace


FireWallRedirect Field

FlowReason..::..FireWallRedirect Field

Firewall redirected

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FlowReason FireWallRedirect

See Also

FlowReason Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Geoblocking Field

FlowReason..::..Geoblocking Field

geographically blocking

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FlowReason Geoblocking

See Also

FlowReason Enumeration
Walter.Web.FireWall.Infrastructure Namespace


GeoRedirect Field

FlowReason..::..GeoRedirect Field

Firewall redirected due to geographically blocking rules

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FlowReason GeoRedirect

See Also

FlowReason Enumeration
Walter.Web.FireWall.Infrastructure Namespace


UserInteraction Field

FlowReason..::..UserInteraction Field

normal use interaction

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FlowReason UserInteraction

See Also

FlowReason Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Block Field

GuardAction..::..Block Field

The guard recommended to block

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GuardAction Block

See Also

GuardAction Enumeration
Walter.Web.FireWall.Infrastructure Namespace


GeoBlock Field

GuardAction..::..GeoBlock Field

The geographical guard recommended to block

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GuardAction GeoBlock

See Also

GuardAction Enumeration
Walter.Web.FireWall.Infrastructure Namespace


GeoRedirect Field

GuardAction..::..GeoRedirect Field

The geographical guard recommended to redirect

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GuardAction GeoRedirect

See Also

GuardAction Enumeration
Walter.Web.FireWall.Infrastructure Namespace


HoneypotRecord Field

GuardAction..::..HoneypotRecord Field

The honey-pot record activity and set the guard action to record further activity

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GuardAction HoneypotRecord

See Also

GuardAction Enumeration
Walter.Web.FireWall.Infrastructure Namespace


NoAction Field

GuardAction..::..NoAction Field

There is no action for the guard

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GuardAction NoAction

See Also

GuardAction Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Redirect Field

GuardAction..::..Redirect Field

The guard recommended a redirect

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const GuardAction Redirect

See Also

GuardAction Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Busy Field

ObjectIOState..::..Busy Field

The busy state indicates that reading or writing is taking place

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ObjectIOState Busy

See Also

ObjectIOState Enumeration
Walter.Web.FireWall.Infrastructure Namespace


Idle Field

ObjectIOState..::..Idle Field

The idle state indicates that data was written and or read from the backing storage and the data is persisted

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ObjectIOState Idle

See Also

ObjectIOState Enumeration
Walter.Web.FireWall.Infrastructure Namespace


NotSet Field

ObjectIOState..::..NotSet Field

The not set

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ObjectIOState NotSet

See Also

ObjectIOState Enumeration
Walter.Web.FireWall.Infrastructure Namespace


NoReason Field

ResetReason..::..NoReason Field

The no reason

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason NoReason

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetAllAfterGivenData Field

ResetReason..::..ResetAllAfterGivenData Field

The reset all after given data

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason ResetAllAfterGivenData

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetGeographyAfterGivenData Field

ResetReason..::..ResetGeographyAfterGivenData Field

A reset geography was issued after given data

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason ResetGeographyAfterGivenData

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetIncidentDateAfterGivenData Field

ResetReason..::..ResetIncidentDateAfterGivenData Field

A reset on incident dates was issued after given data

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason ResetIncidentDateAfterGivenData

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetIPRangeAfterGivenData Field

ResetReason..::..ResetIPRangeAfterGivenData Field

A reset on a IP address range was issued after given data

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason ResetIPRangeAfterGivenData

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetUserAfterGivenData Field

ResetReason..::..ResetUserAfterGivenData Field

A reset user was issued after given data

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason ResetUserAfterGivenData

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ResetUserTypeAfterGivenData Field

ResetReason..::..ResetUserTypeAfterGivenData Field

A reset user type was issued after given data

Namespace: Walter.Web.FireWall.Infrastructure.Repositories
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetReason ResetUserTypeAfterGivenData

See Also

ResetReason Enumeration
Walter.Web.FireWall.Infrastructure.Repositories Namespace


ItemExists Field

ItemCompairs..::..ItemExists Field

The item exists

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ItemCompairs ItemExists

See Also

ItemCompairs Enumeration
Walter.Web.FireWall Namespace


ItemNotExists Field

ItemCompairs..::..ItemNotExists Field

The item not exists

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ItemCompairs ItemNotExists

See Also

ItemCompairs Enumeration
Walter.Web.FireWall Namespace


None Field

ItemCompairs..::..None Field

The not set

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ItemCompairs None

See Also

ItemCompairs Enumeration
Walter.Web.FireWall Namespace


ValueIsNotMatch Field

ItemCompairs..::..ValueIsNotMatch Field

Value exists but the value does not match the projected value

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ItemCompairs ValueIsNotMatch

See Also

ItemCompairs Enumeration
Walter.Web.FireWall Namespace


ValueMatches Field

ItemCompairs..::..ValueMatches Field

The value matches

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ItemCompairs ValueMatches

See Also

ItemCompairs Enumeration
Walter.Web.FireWall Namespace


Beacon Field

JavaScriptUpdatesIsUserDiscoveries..::..Beacon Field

The beacon scrip posted back

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const JavaScriptUpdatesIsUserDiscoveries Beacon

See Also

JavaScriptUpdatesIsUserDiscoveries Enumeration
Walter.Web.FireWall Namespace


Discovery Field

JavaScriptUpdatesIsUserDiscoveries..::..Discovery Field

The discovery scrip posted back

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const JavaScriptUpdatesIsUserDiscoveries Discovery

See Also

JavaScriptUpdatesIsUserDiscoveries Enumeration
Walter.Web.FireWall Namespace


None Field

JavaScriptUpdatesIsUserDiscoveries..::..None Field

none executed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const JavaScriptUpdatesIsUserDiscoveries None

See Also

JavaScriptUpdatesIsUserDiscoveries Enumeration
Walter.Web.FireWall Namespace


SiteMap Field

JavaScriptUpdatesIsUserDiscoveries..::..SiteMap Field

The site map scrip posted back

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const JavaScriptUpdatesIsUserDiscoveries SiteMap

See Also

JavaScriptUpdatesIsUserDiscoveries Enumeration
Walter.Web.FireWall Namespace


Default Field

LicenseSource..::..Default Field

The default

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const LicenseSource Default

See Also

LicenseSource Enumeration
Walter.Web.FireWall Namespace


Disk Field

LicenseSource..::..Disk Field

The disk

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const LicenseSource Disk

See Also

LicenseSource Enumeration
Walter.Web.FireWall Namespace


LicenseServer Field

LicenseSource..::..LicenseServer Field

The license server

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const LicenseSource LicenseServer

See Also

LicenseSource Enumeration
Walter.Web.FireWall Namespace


None Field

ApplicationCompromisedActions..::..None Field

Indicates that no compromised state was detected or no action needs to be performed

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ApplicationCompromisedActions None

See Also

ApplicationCompromisedActions Enumeration
Walter.Web.FireWall.Models Namespace


PersistOnReboot Field

ApplicationCompromisedActions..::..PersistOnReboot Field

If set the firewall will remember the state for the next time it starts again by writing a app_offline.htm file that you will need to manually delete to bring the application online again

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ApplicationCompromisedActions PersistOnReboot

See Also

ApplicationCompromisedActions Enumeration
Walter.Web.FireWall.Models Namespace


Redirect Field

ApplicationCompromisedActions..::..Redirect Field

Redirect each request based to the URL specified in RedirectAllRequestsOnDiskManipulation

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ApplicationCompromisedActions Redirect

Remarks

If the value is not set than the firewall will perform a ShutDown

See Also

ApplicationCompromisedActions Enumeration
Walter.Web.FireWall.Models Namespace
RulesConfig..::..RedirectAllRequestsOnDiskManipulation


ShutDown Field

ApplicationCompromisedActions..::..ShutDown Field

Shutdown the application and crash each request

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ApplicationCompromisedActions ShutDown

See Also

ApplicationCompromisedActions Enumeration
Walter.Web.FireWall.Models Namespace


AddHock Field

AppliedUrlRules..::..AddHock Field

Addhock configured on endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules AddHock

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


APiEndpoint Field

AppliedUrlRules..::..APiEndpoint Field

the endpoint is used for external firewall management

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules APiEndpoint

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


BlockDurationRule Field

AppliedUrlRules..::..BlockDurationRule Field

The Page contains a contains a blocking rule filter

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules BlockDurationRule

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


BlockedForPort Field

AppliedUrlRules..::..BlockedForPort Field

Indicates that the endpoint (may be a ad-hock endpoint to a resource that does not exist) is protected using EndPoinPortAttribute

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules BlockedForPort

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


CORS Field

AppliedUrlRules..::..CORS Field

CORS protection

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules CORS

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


FrequencyFilter Field

AppliedUrlRules..::..FrequencyFilter Field

The Page contains a contains a frequency filter for requests is being filter

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules FrequencyFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


GeoFilter Field

AppliedUrlRules..::..GeoFilter Field

The Page contains values to block geographical locations some requests are filter

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules GeoFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


HoneyPotTrap Field

AppliedUrlRules..::..HoneyPotTrap Field

annotation that can be used to declare that an endpoint is a honey-pot-trap and any access should be considered a malicious

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules HoneyPotTrap

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


IPFilter Field

AppliedUrlRules..::..IPFilter Field

The Page contains a IP address filter The firewall and will only allow a specified IP address to access the endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules IPFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


ISPBlocked Field

AppliedUrlRules..::..ISPBlocked Field

Internet service provider blocking rule

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules ISPBlocked

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


KnownBadBoys Field

AppliedUrlRules..::..KnownBadBoys Field

known malicious user rule on endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules KnownBadBoys

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


NoFirewallProtection Field

AppliedUrlRules..::..NoFirewallProtection Field

Firewall is disabled on this endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules NoFirewallProtection

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


None Field

AppliedUrlRules..::..None Field

Only default firewall rules are applied

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules None

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


PageRefreshFilter Field

AppliedUrlRules..::..PageRefreshFilter Field

The page contains a refresh filter

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules PageRefreshFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


RejectBadIntentions Field

AppliedUrlRules..::..RejectBadIntentions Field

Only allow access based on User-Agent reputation

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules RejectBadIntentions

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


Scrubbung Field

AppliedUrlRules..::..Scrubbung Field

page contains an override for scrubbing

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules Scrubbung

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


SiteMapFilter Field

AppliedUrlRules..::..SiteMapFilter Field

Only allows access to users that have been made available

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules SiteMapFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


SkipCountValidationFilter Field

AppliedUrlRules..::..SkipCountValidationFilter Field

Link contains a skip count allowing the user a "pass" on the rule for a certain count, making a rule less restrictive

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules SkipCountValidationFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


UserAgentFilter Field

AppliedUrlRules..::..UserAgentFilter Field

Malicious UserAgents protection

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules UserAgentFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


UserTypeFilter Field

AppliedUrlRules..::..UserTypeFilter Field

The Page contains a contains a UserTypes Filter and will restrict the user types allowed to access the endpoint

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules UserTypeFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


WhiteListIpFilter Field

AppliedUrlRules..::..WhiteListIpFilter Field

The Page contains a white list IP address filter

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const AppliedUrlRules WhiteListIpFilter

See Also

AppliedUrlRules Enumeration
Walter.Web.FireWall.Models Namespace


GeneralReset Field

ResetRuleRuleType..::..GeneralReset Field

general reset of all incidents

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType GeneralReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


IncidentDateReset Field

ResetRuleRuleType..::..IncidentDateReset Field

The incident date reset

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType IncidentDateReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


IPAddressRangeReset Field

ResetRuleRuleType..::..IPAddressRangeReset Field

A IPAddress range reset

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType IPAddressRangeReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


IPAddressReset Field

ResetRuleRuleType..::..IPAddressReset Field

A single IPAddress reset

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType IPAddressReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


LocationReset Field

ResetRuleRuleType..::..LocationReset Field

The geographical location reset

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType LocationReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


UserReset Field

ResetRuleRuleType..::..UserReset Field

The user reset

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType UserReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


UserTypeReset Field

ResetRuleRuleType..::..UserTypeReset Field

The user type reset

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ResetRuleRuleType UserTypeReset

See Also

ResetRuleRuleType Enumeration
Walter.Web.FireWall.Models Namespace


AccessibleFromReferrer Field

SiteMapSearchResult..::..AccessibleFromReferrer Field

The url makes sense as it is accessible from a previous page that the user came from (referrer),

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResult AccessibleFromReferrer

Remarks

This value could happen when the user opened a URL in a new tab and continued navigating from a different tab

See Also

SiteMapSearchResult Enumeration
Walter.Web.FireWall.Models Namespace


Exists Field

SiteMapSearchResult..::..Exists Field

Url exists in the site-map rendered on the current page

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResult Exists

See Also

SiteMapSearchResult Enumeration
Walter.Web.FireWall.Models Namespace


NotAccessibleFromReferrer Field

SiteMapSearchResult..::..NotAccessibleFromReferrer Field

the url was Not accessible from the page the user came from (referrer), he should not know about it

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResult NotAccessibleFromReferrer

See Also

SiteMapSearchResult Enumeration
Walter.Web.FireWall.Models Namespace


NotConfugured Field

SiteMapSearchResult..::..NotConfugured Field

No option matched as the firewall as it is not configured for it, this may happen if URL's are set using JavaScript

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResult NotConfugured

See Also

SiteMapSearchResult Enumeration
Walter.Web.FireWall.Models Namespace


NotEvaluated Field

SiteMapSearchResult..::..NotEvaluated Field

the value has not been evaluated

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResult NotEvaluated

See Also

SiteMapSearchResult Enumeration
Walter.Web.FireWall.Models Namespace


NotFound Field

SiteMapSearchResult..::..NotFound Field

The URL is not discovered on the rendered pages for the user on the site

Namespace: Walter.Web.FireWall.Models
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const SiteMapSearchResult NotFound

See Also

SiteMapSearchResult Enumeration
Walter.Web.FireWall.Models Namespace


Bluetooth Field

NetworkInformationType..::..Bluetooth Field

Bluetooth network

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Bluetooth

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


Cellular Field

NetworkInformationType..::..Cellular Field

Cellular

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Cellular

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


Ethernet Field

NetworkInformationType..::..Ethernet Field

Ethernet

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Ethernet

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


None Field

NetworkInformationType..::..None Field

none

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType None

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


Other Field

NetworkInformationType..::..Other Field

Other type

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Other

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


Unknown Field

NetworkInformationType..::..Unknown Field

unknown type

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Unknown

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


Wifi Field

NetworkInformationType..::..Wifi Field

Wifi

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Wifi

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


Wimax Field

NetworkInformationType..::..Wimax Field

WiMAX Internet

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const NetworkInformationType Wimax

See Also

NetworkInformationType Enumeration
Walter.Web.FireWall Namespace


None Field

RecordedInteractions..::..None Field

None action recored

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions None

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


Scrolls Field

RecordedInteractions..::..Scrolls Field

The user uses scrolls

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions Scrolls

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


UsesCookies Field

RecordedInteractions..::..UsesCookies Field

The uses cookies

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions UsesCookies

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


UsesJava Field

RecordedInteractions..::..UsesJava Field

The user uses java

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions UsesJava

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


UsesKeyboard Field

RecordedInteractions..::..UsesKeyboard Field

The user uses his keyboard

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions UsesKeyboard

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


UsesMouse Field

RecordedInteractions..::..UsesMouse Field

The user uses his mouse

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions UsesMouse

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


UsesTabs Field

RecordedInteractions..::..UsesTabs Field

The user uses his tabs

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions UsesTabs

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


UsesTouch Field

RecordedInteractions..::..UsesTouch Field

The user uses his touch

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RecordedInteractions UsesTouch

See Also

RecordedInteractions Enumeration
Walter.Web.FireWall Namespace


Json Field

ReportFormat..::..Json Field

return json formatted text

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportFormat Json

See Also

ReportFormat Enumeration
Walter.Web.FireWall.Reporting Namespace


Native Field

ReportFormat..::..Native Field

generate native object is used internally and can't be passed to the report engine, if you do you will get json back

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportFormat Native

See Also

ReportFormat Enumeration
Walter.Web.FireWall.Reporting Namespace


TextPlain Field

ReportFormat..::..TextPlain Field

return plain text

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportFormat TextPlain

See Also

ReportFormat Enumeration
Walter.Web.FireWall.Reporting Namespace


Activity Field

ReportTypes..::..Activity Field

The activity recorded by the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Activity

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


ALL Field

ReportTypes..::..ALL Field

Return all data, even security relevant data

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes ALL

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


Critical Field

ReportTypes..::..Critical Field

used in combination with other flags indication critical updates/ activity/ information/ incidents

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Critical

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


CSPV Field

ReportTypes..::..CSPV Field

a violation of type Content Security Policy Violation (browser)

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes CSPV

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


CsvpIncidents Field

ReportTypes..::..CsvpIncidents Field

Content Security Policy Violation incident

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes CsvpIncidents

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


DataSubscription Field

ReportTypes..::..DataSubscription Field

There are data subscription updates, make sure you protect this output as it can be used to penetrate the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes DataSubscription

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


DEFAULT Field

ReportTypes..::..DEFAULT Field

The default reporting output does not contain any missing Security related Update as it would inform on available vulnerabilities

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes DEFAULT

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


Details Field

ReportTypes..::..Details Field

Use this flag to show details data not just overview in text based reports

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Details

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


EndPoints Field

ReportTypes..::..EndPoints Field

The end points managed by the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes EndPoints

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


FileChanges Field

ReportTypes..::..FileChanges Field

The suspicious file changes

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes FileChanges

Remarks

If you alter files on disk and you would not to get hindered or flagged then make changes using the disk related action of the firewall

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace
[Walter.Web.FireWall.FireWallBase.DeleteFile(System.IO.FileInfo)]
[Walter.Web.FireWall.FireWallBase.AppendFile(System.IO.FileInfo, string)]


FireWall Field

ReportTypes..::..FireWall Field

A violation of type firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes FireWall

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


FireWallIncidents Field

ReportTypes..::..FireWallIncidents Field

Firewall incident

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes FireWallIncidents

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


Incidents Field

ReportTypes..::..Incidents Field

The incidents recorded by the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Incidents

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


KPI Field

ReportTypes..::..KPI Field

KPI of Firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes KPI

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


Minification Field

ReportTypes..::..Minification Field

Minification report showing the amount of data the firewall was able to save from being send to the consumers

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Minification

Examples

Minify the rendered Razor view. You can access the compressed in the post processing as well as in the page reporting.
C#
[Minify]
public IActionResult Index()
{
   return View();
}

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace
Walter.Web.FireWall.Annotations..::..MinifyAttribute
[Walter.Web.FireWall.IFireWall.Report(Reporting.ReportTypes)]
[Walter.Web.FireWall.IFireWall.Report(Reporting.ReportTypes, Reporting.ReportFormat)]
[Walter.Web.FireWall.IFireWall.GetReport(Reporting.ReportTypes)]


None Field

ReportTypes..::..None Field

none value specified, no report generated

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes None

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


RequestsPerMinute Field

ReportTypes..::..RequestsPerMinute Field

The requests per minute

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes RequestsPerMinute

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


SecurityUpdate Field

ReportTypes..::..SecurityUpdate Field

There is security update that is pending and is not implemented, make sure you protect this output as it can be used to penetrate the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes SecurityUpdate

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


Talking Field

ReportTypes..::..Talking Field

The get the network communication between the server and outside parties outside of this web application

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Talking

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace
[Walter.Net.LookWhosTalking.IWhosTalking]
[Walter.Net.LookWhosTalking.IWhosTalking.GetConnections]


Todo Field

ReportTypes..::..Todo Field

The to-do items for the firewall

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Todo

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


Updates Field

ReportTypes..::..Updates Field

Pending updates in license or licensed binaries

Namespace: Walter.Web.FireWall.Reporting
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ReportTypes Updates

See Also

ReportTypes Enumeration
Walter.Web.FireWall.Reporting Namespace


InCurrentPage Field

RequestersAssociations..::..InCurrentPage Field

Indicates that the response is a Ajax type post-back from the current page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RequestersAssociations InCurrentPage

See Also

RequestersAssociations Enumeration
Walter.Web.FireWall Namespace


InCurrentSession Field

RequestersAssociations..::..InCurrentSession Field

Was send to user or IP in the current session. This is based on session duration if session is used or 20 minutes if no session state is used

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RequestersAssociations InCurrentSession

See Also

RequestersAssociations Enumeration
Walter.Web.FireWall Namespace


NoAssociation Field

RequestersAssociations..::..NoAssociation Field

No link between requested object and requester

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RequestersAssociations NoAssociation

See Also

RequestersAssociations Enumeration
Walter.Web.FireWall Namespace


None Field

RequestersAssociations..::..None Field

Not set

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RequestersAssociations None

See Also

RequestersAssociations Enumeration
Walter.Web.FireWall Namespace


ServedToIpAddress Field

RequestersAssociations..::..ServedToIpAddress Field

The resource was send to some one or something using the given IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RequestersAssociations ServedToIpAddress

See Also

RequestersAssociations Enumeration
Walter.Web.FireWall Namespace


ServedToUser Field

RequestersAssociations..::..ServedToUser Field

The resource was send the given user on the current or on a different IP address

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RequestersAssociations ServedToUser

See Also

RequestersAssociations Enumeration
Walter.Web.FireWall Namespace


Redirect Field

FixPathBehavior..::..Redirect Field

The redirect

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FixPathBehavior Redirect

See Also

FixPathBehavior Enumeration
Walter.Web.FireWall.RequestTracking Namespace


Rewrite Field

FixPathBehavior..::..Rewrite Field

The rewrite

Namespace: Walter.Web.FireWall.RequestTracking
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const FixPathBehavior Rewrite

See Also

FixPathBehavior Enumeration
Walter.Web.FireWall.RequestTracking Namespace


IsUserApi Field

RoutingEndpoint..::..IsUserApi Field

The is user API

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RoutingEndpoint IsUserApi

See Also

RoutingEndpoint Enumeration
Walter.Web.FireWall Namespace


None Field

RoutingEndpoint..::..None Field

none

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RoutingEndpoint None

See Also

RoutingEndpoint Enumeration
Walter.Web.FireWall Namespace


RegisterUrlApi Field

RoutingEndpoint..::..RegisterUrlApi Field

The register URL discovery API

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RoutingEndpoint RegisterUrlApi

See Also

RoutingEndpoint Enumeration
Walter.Web.FireWall Namespace


SiteMapApi Field

RoutingEndpoint..::..SiteMapApi Field

Site-map API endpoint

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RoutingEndpoint SiteMapApi

See Also

RoutingEndpoint Enumeration
Walter.Web.FireWall Namespace


GeoDataMissing Field

IncidentDatataManagment..::..GeoDataMissing Field

Get those that do not contain a valid country code

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const IncidentDatataManagment GeoDataMissing

See Also

IncidentDatataManagment Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NotSet Field

IncidentDatataManagment..::..NotSet Field

is not set

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const IncidentDatataManagment NotSet

See Also

IncidentDatataManagment Enumeration
Walter.Web.FireWall.RuleEngine Namespace


WhoisDataMissing Field

IncidentDatataManagment..::..WhoisDataMissing Field

Get those WHOIS data is missing

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const IncidentDatataManagment WhoisDataMissing

See Also

IncidentDatataManagment Enumeration
Walter.Web.FireWall.RuleEngine Namespace


DDOS Field

KnownRule..::..DDOS Field

The ddos

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KnownRule DDOS

See Also

KnownRule Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Google Field

KnownRule..::..Google Field

The google type of snooping

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KnownRule Google

See Also

KnownRule Enumeration
Walter.Web.FireWall.RuleEngine Namespace


None Field

KnownRule..::..None Field

The none

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KnownRule None

See Also

KnownRule Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Pattern Field

KnownRule..::..Pattern Field

The pattern type of rules

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KnownRule Pattern

See Also

KnownRule Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Scrubbing Field

KnownRule..::..Scrubbing Field

The scrubbing rule

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KnownRule Scrubbing

See Also

KnownRule Enumeration
Walter.Web.FireWall.RuleEngine Namespace


WhiteListed Field

KnownRule..::..WhiteListed Field

The rule states that the item is white listed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const KnownRule WhiteListed

See Also

KnownRule Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Cookie Field

PatternLocations..::..Cookie Field

The submitted cookie

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations Cookie

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Domain Field

PatternLocations..::..Domain Field

The domain is not valid

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations Domain

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Header Field

PatternLocations..::..Header Field

The submitted header

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations Header

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Model Field

PatternLocations..::..Model Field

The submitted model

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations Model

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


None Field

PatternLocations..::..None Field

The location was not set or does not apply

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations None

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Path Field

PatternLocations..::..Path Field

The URL's path

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations Path

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Query Field

PatternLocations..::..Query Field

The URL's query

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const PatternLocations Query

See Also

PatternLocations Enumeration
Walter.Web.FireWall.RuleEngine Namespace


AnyCountry Field

RuleFilters..::..AnyCountry Field

Any country

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters AnyCountry

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


AnyIP Field

RuleFilters..::..AnyIP Field

Irrespective of the IP address

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters AnyIP

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


AnyUser Field

RuleFilters..::..AnyUser Field

Irrespective of user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters AnyUser

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


BumbBot Field

RuleFilters..::..BumbBot Field

A dumb bot

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters BumbBot

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


None Field

RuleFilters..::..None Field

Indicates that this is not filter rule (default)

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters None

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SameCountry Field

RuleFilters..::..SameCountry Field

The same country

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters SameCountry

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SameIP Field

RuleFilters..::..SameIP Field

Scope a given IP Address

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters SameIP

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SameUser Field

RuleFilters..::..SameUser Field

Scope limited to the user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters SameUser

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SmartBot Field

RuleFilters..::..SmartBot Field

The smart bot

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters SmartBot

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


StaleUser Field

RuleFilters..::..StaleUser Field

The user does not interact with the site

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleFilters StaleUser

See Also

RuleFilters Enumeration
Walter.Web.FireWall.RuleEngine Namespace


BlacklistedIndexService Field

RuleGroups..::..BlacklistedIndexService Field

Could be a search engine of a 3rd party that is indexing your size for intellectual property claims

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups BlacklistedIndexService

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


BlackListedIp Field

RuleGroups..::..BlackListedIp Field

indicates the firewall rejected the IP

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups BlackListedIp

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


BlacklistedSource Field

RuleGroups..::..BlacklistedSource Field

Indicated that the firewall rejected the source, could be a cloud provider or data-center

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups BlacklistedSource

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


BlackListedUser Field

RuleGroups..::..BlackListedUser Field

Indicated the firewall rejected the user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups BlackListedUser

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


BruteForceEntry Field

RuleGroups..::..BruteForceEntry Field

Will trigger if the

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups BruteForceEntry

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


CookieHijacking Field

RuleGroups..::..CookieHijacking Field

Cookie Hijacking

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups CookieHijacking

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


CORS Field

RuleGroups..::..CORS Field

Cross Site Scripting

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups CORS

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


DOS Field

RuleGroups..::..DOS Field

denial of service

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups DOS

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Exploit Field

RuleGroups..::..Exploit Field

Exploit probe by bot or user

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups Exploit

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


GeoBlocking Field

RuleGroups..::..GeoBlocking Field

Geo Blocked

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups GeoBlocking

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Manipulation Field

RuleGroups..::..Manipulation Field

Manipulation of request, cookies or form data

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups Manipulation

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


None Field

RuleGroups..::..None Field

Rules not assigned a specific group

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups None

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NotAHuman Field

RuleGroups..::..NotAHuman Field

only allow access to verified humans

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups NotAHuman

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


Replay Field

RuleGroups..::..Replay Field

Replay by user with tools like Fiddler, PostMan or Wire-shark

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups Replay

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SqlInjection Field

RuleGroups..::..SqlInjection Field

Detected a sql injection attempt

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups SqlInjection

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SSLCertificateAttack Field

RuleGroups..::..SSLCertificateAttack Field

Mal-ware, Forged Certificate Authorities and MITM Attacks

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups SSLCertificateAttack

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


TwoFactorManipulation Field

RuleGroups..::..TwoFactorManipulation Field

Indicates that a 2 factor authentication manipulation was attempted

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups TwoFactorManipulation

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


UrlFishing Field

RuleGroups..::..UrlFishing Field

Url fishing

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleGroups UrlFishing

See Also

RuleGroups Enumeration
Walter.Web.FireWall.RuleEngine Namespace


ActionModelNotValid Field

UserBlockingRule..::..ActionModelNotValid Field

The model provided to an action or page is not valid

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserBlockingRule ActionModelNotValid

See Also

UserBlockingRule Enumeration
Walter.Web.FireWall.RuleEngine.Rules Namespace


EncryptionManipulation Field

UserBlockingRule..::..EncryptionManipulation Field

encryption manipulation

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserBlockingRule EncryptionManipulation

See Also

UserBlockingRule Enumeration
Walter.Web.FireWall.RuleEngine.Rules Namespace


Other Field

UserBlockingRule..::..Other Field

a reason specified in the description

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserBlockingRule Other

See Also

UserBlockingRule Enumeration
Walter.Web.FireWall.RuleEngine.Rules Namespace


PenetrationDetected Field

UserBlockingRule..::..PenetrationDetected Field

A penetration detected

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserBlockingRule PenetrationDetected

See Also

UserBlockingRule Enumeration
Walter.Web.FireWall.RuleEngine.Rules Namespace


WrongGeography Field

UserBlockingRule..::..WrongGeography Field

The geography

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserBlockingRule WrongGeography

See Also

UserBlockingRule Enumeration
Walter.Web.FireWall.RuleEngine.Rules Namespace


WrongUserType Field

UserBlockingRule..::..WrongUserType Field

The wrong user type was used to access a resource

Namespace: Walter.Web.FireWall.RuleEngine.Rules
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserBlockingRule WrongUserType

See Also

UserBlockingRule Enumeration
Walter.Web.FireWall.RuleEngine.Rules Namespace


AddhockFileAccess Field

UrlValidatedResult..::..AddhockFileAccess Field

The add-hock file access

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult AddhockFileAccess

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


CrossSiteUrlDetected Field

UrlValidatedResult..::..CrossSiteUrlDetected Field

The cross site URL detected

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult CrossSiteUrlDetected

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


DatabasesAreNotPubliclyAccessible Field

UrlValidatedResult..::..DatabasesAreNotPubliclyAccessible Field

The databases are not publicly accessible

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult DatabasesAreNotPubliclyAccessible

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoAccessToPaymentSystem Field

UrlValidatedResult..::..NoAccessToPaymentSystem Field

The no access to payment system

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoAccessToPaymentSystem

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoOnlinePaymentSystemExists Field

UrlValidatedResult..::..NoOnlinePaymentSystemExists Field

The no on-line payment system exists

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoOnlinePaymentSystemExists

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoPublicAccessToAdministration Field

UrlValidatedResult..::..NoPublicAccessToAdministration Field

The no public access to administration

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoPublicAccessToAdministration

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoPublicAccessToApplicationCodeAllowed Field

UrlValidatedResult..::..NoPublicAccessToApplicationCodeAllowed Field

The no public access to application code allowed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoPublicAccessToApplicationCodeAllowed

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoPublicAccessToBackupsAllowed Field

UrlValidatedResult..::..NoPublicAccessToBackupsAllowed Field

The no public access to backups allowed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoPublicAccessToBackupsAllowed

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoPublicAccessToConfigurationAllowed Field

UrlValidatedResult..::..NoPublicAccessToConfigurationAllowed Field

The no public access to configuration allowed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoPublicAccessToConfigurationAllowed

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoPublicAccessToFileDirectoryAllowed Field

UrlValidatedResult..::..NoPublicAccessToFileDirectoryAllowed Field

The no public access to file directory allowed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoPublicAccessToFileDirectoryAllowed

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoSuchDirectoryExists Field

UrlValidatedResult..::..NoSuchDirectoryExists Field

The no such directory exists

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoSuchDirectoryExists

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NotSupportedPlatform Field

UrlValidatedResult..::..NotSupportedPlatform Field

The not supported platform

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NotSupportedPlatform

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NotUsedPlugin Field

UrlValidatedResult..::..NotUsedPlugin Field

The not used plug-in

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NotUsedPlugin

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


NoUserAuthenticationExists Field

UrlValidatedResult..::..NoUserAuthenticationExists Field

The no user authentication exists

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult NoUserAuthenticationExists

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


OK Field

UrlValidatedResult..::..OK Field

The result is OK using the current rule-set

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult OK

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


OperatingSystemAccessProhibited Field

UrlValidatedResult..::..OperatingSystemAccessProhibited Field

The operating system access prohibited

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult OperatingSystemAccessProhibited

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


QueryParameterInjection Field

UrlValidatedResult..::..QueryParameterInjection Field

Semantic URL attack detected as an query string is presented in such a way that it does not match the url's signature as parameters are added

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult QueryParameterInjection

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


QueryParameterManipulation Field

UrlValidatedResult..::..QueryParameterManipulation Field

Semantic URL attack detected as an query string is presented in such a way that it does not match the url's signature as parameters not compatible with the data type expected

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult QueryParameterManipulation

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


QueryParameterOmission Field

UrlValidatedResult..::..QueryParameterOmission Field

Semantic URL attack detected as an query string is presented in such a way that it does not match the url's signature as parameters are left out

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult QueryParameterOmission

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


RequestFromBlacklistedCountry Field

UrlValidatedResult..::..RequestFromBlacklistedCountry Field

The request from blacklisted country

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult RequestFromBlacklistedCountry

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


RequestFromBlacklistedCountryOrAtBrowser Field

UrlValidatedResult..::..RequestFromBlacklistedCountryOrAtBrowser Field

The request from blacklisted country or at browser

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult RequestFromBlacklistedCountryOrAtBrowser

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


RequestPerSecondLooksLikeScrubbingOrDDOS Field

UrlValidatedResult..::..RequestPerSecondLooksLikeScrubbingOrDDOS Field

The request per second looks like scrubbing or DDOS

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult RequestPerSecondLooksLikeScrubbingOrDDOS

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SaltExpired Field

UrlValidatedResult..::..SaltExpired Field

The salt expired

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult SaltExpired

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SaltFromCookieAndSaltProvidedDoNotMatch Field

UrlValidatedResult..::..SaltFromCookieAndSaltProvidedDoNotMatch Field

The salt from cookie and salt provided do not match

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult SaltFromCookieAndSaltProvidedDoNotMatch

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


SaltWasNotProvidedInHeaderOfUrl Field

UrlValidatedResult..::..SaltWasNotProvidedInHeaderOfUrl Field

The salt was not provided in header of URL

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult SaltWasNotProvidedInHeaderOfUrl

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


ScriptInjectionNotAllowed Field

UrlValidatedResult..::..ScriptInjectionNotAllowed Field

The script injection not allowed

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult ScriptInjectionNotAllowed

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


UrlFishingSuspected Field

UrlValidatedResult..::..UrlFishingSuspected Field

The URL fishing suspected

Namespace: Walter.Web.FireWall.RuleEngine
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UrlValidatedResult UrlFishingSuspected

See Also

UrlValidatedResult Enumeration
Walter.Web.FireWall.RuleEngine Namespace


AddHockRequests Field

RuleNumber..::..AddHockRequests Field

If resource referred by other domain then this must be enabled on the endpoint

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber AddHockRequests

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace
RulesConfig..::..AllowAddhockAccess


AgentsConsideredMalicious Field

RuleNumber..::..AgentsConsideredMalicious Field

A bad browser was used

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber AgentsConsideredMalicious

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


AgentsReputationBlocksAccess Field

RuleNumber..::..AgentsReputationBlocksAccess Field

the agents reputation blocks access to the resource

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber AgentsReputationBlocksAccess

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


BlacklistedCountry Field

RuleNumber..::..BlacklistedCountry Field

The country was blacklisted

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber BlacklistedCountry

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


BlacklistedInterNetServiceProvider Field

RuleNumber..::..BlacklistedInterNetServiceProvider Field

The Internet service provider was blacklisted

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber BlacklistedInterNetServiceProvider

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


BlacklistedIPAddress Field

RuleNumber..::..BlacklistedIPAddress Field

The IP address was blacklisted

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber BlacklistedIPAddress

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


BlacklistedUser Field

RuleNumber..::..BlacklistedUser Field

The user was blacklisted

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber BlacklistedUser

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


BlockedGeography Field

RuleNumber..::..BlockedGeography Field

If the requested resource or the firewall doesn't allow access from a geographical region then intervene

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber BlockedGeography

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


CommonVulnerabilitiesExposuresExploits Field

RuleNumber..::..CommonVulnerabilitiesExposuresExploits Field

A known Common Vulnerabilities and Exposures exploits (CVE)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber CommonVulnerabilitiesExposuresExploits

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


CrossSiteRequest Field

RuleNumber..::..CrossSiteRequest Field

Accessing a resource from outside the domain (cross site) is rejected if the domain is not white-listed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber CrossSiteRequest

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


CSPReportGeneratedByBrowser Field

RuleNumber..::..CSPReportGeneratedByBrowser Field

The browser triggered a CSP violation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber CSPReportGeneratedByBrowser

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


DistributedDenialOfService Field

RuleNumber..::..DistributedDenialOfService Field

The same page would only be visited a given time in a given time span by users that do not interact with the page

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber DistributedDenialOfService

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


FilterActionProtectorViolation Field

RuleNumber..::..FilterActionProtectorViolation Field

Action Protector filters rejected the request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber FilterActionProtectorViolation

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace
Walter.Web.FireWall.Annotations..::..ActionProtectorAttribute


HitRatioViolation Field

RuleNumber..::..HitRatioViolation Field

The same page would only be visited so many times by a user in a given time in a given time span

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber HitRatioViolation

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


LimitedReferrersOnly Field

RuleNumber..::..LimitedReferrersOnly Field

The resource or AJAX endpoint is accessed from a location that was not white-listed for the endpoint with the annotation

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber LimitedReferrersOnly

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace
Walter.Web.FireWall.Annotations..::..LimitReffererAttribute


ModelFilterViolation Field

RuleNumber..::..ModelFilterViolation Field

Model did not contain a page request in the proper association

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber ModelFilterViolation

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace
Walter.Web.FireWall.Annotations..::..ModelFilterAttribute


NavigationOutsideRenederedSiteMap Field

RuleNumber..::..NavigationOutsideRenederedSiteMap Field

The user navigated to a link that was not provided to him

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber NavigationOutsideRenederedSiteMap

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


None Field

RuleNumber..::..None Field

No rule applied

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber None

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


NotSupportedHandler Field

RuleNumber..::..NotSupportedHandler Field

A Handler was called that is not supported

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber NotSupportedHandler

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


PageGroupCookie Field

RuleNumber..::..PageGroupCookie Field

If Request has PageRequest Group Header and CookieWas set then Match to Page was send to user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber PageGroupCookie

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


PageGroupHeader Field

RuleNumber..::..PageGroupHeader Field

If Request has PageRequest Group Header then Match to Page was send to user

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber PageGroupHeader

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


PenetrationAttempt Field

RuleNumber..::..PenetrationAttempt Field

The user provided a url that looks like a penetration attempt was made

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber PenetrationAttempt

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


PhishyRequest Field

RuleNumber..::..PhishyRequest Field

A Phishy request was detected

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber PhishyRequest

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


PoisonedCookies Field

RuleNumber..::..PoisonedCookies Field

The user provided a cookies have been altered, looks penetration attempt are made

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber PoisonedCookies

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


PortPhishyRequest Field

RuleNumber..::..PortPhishyRequest Field

A request from a source intercepted that attempted to access the application as well as monitored non application ports

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber PortPhishyRequest

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RefreshViolations Field

RuleNumber..::..RefreshViolations Field

The same page has been refreshed to often

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RefreshViolations

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectAccessForISP Field

RuleNumber..::..RejectAccessForISP Field

Internet service provider is blocked

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectAccessForISP

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectAccessUAForISP Field

RuleNumber..::..RejectAccessUAForISP Field

Internet service provider blocks User Agent

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectAccessUAForISP

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectAPIAccess Field

RuleNumber..::..RejectAPIAccess Field

API access is not allowed

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectAPIAccess

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectHoneyPotTraps Field

RuleNumber..::..RejectHoneyPotTraps Field

accessed a link that was set to be a honey pot

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectHoneyPotTraps

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectKnowsMaliciousUsers Field

RuleNumber..::..RejectKnowsMaliciousUsers Field

The user should not be flagged as malicious by database, cookie or session storage

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectKnowsMaliciousUsers

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectPortScanners Field

RuleNumber..::..RejectPortScanners Field

The reject port scanners

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectPortScanners

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


RejectTCPResetAttacks Field

RuleNumber..::..RejectTCPResetAttacks Field

a possible TCP reset attack received

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber RejectTCPResetAttacks

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


SaltCookie Field

RuleNumber..::..SaltCookie Field

If Request contains a Salt header as well as a Salt Cookie then Match UserSalt with header and salt cookie

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber SaltCookie

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


SaltHeader Field

RuleNumber..::..SaltHeader Field

If Request contains a Salt header then Match UserSalt with header

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber SaltHeader

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


Scrubbing Field

RuleNumber..::..Scrubbing Field

The user is not supposed to data-mine the provided data

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber Scrubbing

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


SessionCookie Field

RuleNumber..::..SessionCookie Field

If Request has SessionId header then Match Page Session Hash and user Cookie Session hash

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber SessionCookie

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


SessionHeader Field

RuleNumber..::..SessionHeader Field

If Request has SessionId header then it should Match the Page Session Hash

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber SessionHeader

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


TCPResetAttack Field

RuleNumber..::..TCPResetAttack Field

A TCP reset attack detected

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber TCPResetAttack

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


UserGenerated Field

RuleNumber..::..UserGenerated Field

User generated block request

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber UserGenerated

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


WrongProtocol Field

RuleNumber..::..WrongProtocol Field

The wrong protocol

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber WrongProtocol

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


WrongUserType Field

RuleNumber..::..WrongUserType Field

Wrong user type

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const RuleNumber WrongUserType

See Also

RuleNumber Enumeration
Walter.Web.FireWall Namespace


AspNetCDN Field

TrustingSites..::..AspNetCDN Field

will trust aspnetcdn.com

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites AspNetCDN

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


Bootstrap Field

TrustingSites..::..Bootstrap Field

will trust *.bootstrapcdn.com

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites Bootstrap

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


Facebook Field

TrustingSites..::..Facebook Field

Will trust facebook.com

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites Facebook

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


Google Field

TrustingSites..::..Google Field

will add *.googleapis.com and *.google.com

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites Google

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


Jquery Field

TrustingSites..::..Jquery Field

will add *.jquery.com

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites Jquery

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


None Field

TrustingSites..::..None Field

not a valid option

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites None

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


Self Field

TrustingSites..::..Self Field

will trust the site and the url and content in it's sub folders

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites Self

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


SubDomains Field

TrustingSites..::..SubDomains Field

trust own sub domains

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites SubDomains

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


YouTube Field

TrustingSites..::..YouTube Field

will trust *.youTube.com ///

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const TrustingSites YouTube

See Also

TrustingSites Enumeration
Walter.Web.FireWall Namespace


Monitoring Field

CrawlerType..::..Monitoring Field

The crawler is monitoring service

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType Monitoring

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


NotDefined Field

CrawlerType..::..NotDefined Field

the User agent type was provided only was not supported by this extension method, use raw CategoryName as fall back

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType NotDefined

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Scraper Field

CrawlerType..::..Scraper Field

The crawler scraper/ data miner

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType Scraper

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


ScreenshotService Field

CrawlerType..::..ScreenshotService Field

The crawler is a screen-shot service

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType ScreenshotService

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


SearchEngine Field

CrawlerType..::..SearchEngine Field

The crawler is a search engine

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType SearchEngine

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


SecurityScanner Field

CrawlerType..::..SecurityScanner Field

The crawler is a security scanner

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType SecurityScanner

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


unknown Field

CrawlerType..::..unknown Field

The type is unknown

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const CrawlerType unknown

See Also

CrawlerType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Console Field

DeviceType..::..Console Field

The device is a console

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType Console

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Desktop Field

DeviceType..::..Desktop Field

The desktop type computer

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType Desktop

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


NotDefined Field

DeviceType..::..NotDefined Field

the device type was provided only was not supported by this extension method, use raw device type name as fall back

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType NotDefined

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


SmartPhone Field

DeviceType..::..SmartPhone Field

The device is a smart phone

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType SmartPhone

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


SmartTv Field

DeviceType..::..SmartTv Field

The smart TV

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType SmartTv

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Tablet Field

DeviceType..::..Tablet Field

The device is a tablet

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType Tablet

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Unknown Field

DeviceType..::..Unknown Field

The device type is unknown

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType Unknown

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Wearable Field

DeviceType..::..Wearable Field

The some type of wearable device

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const DeviceType Wearable

See Also

DeviceType Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Application Field

UserStackEntryTypes..::..Application Field

The application

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes Application

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Browser Field

UserStackEntryTypes..::..Browser Field

The browser

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes Browser

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Crawler Field

UserStackEntryTypes..::..Crawler Field

The crawler

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes Crawler

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


EmailClient Field

UserStackEntryTypes..::..EmailClient Field

The email client

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes EmailClient

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


FeedReader Field

UserStackEntryTypes..::..FeedReader Field

The feed reader

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes FeedReader

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


MobileBrowser Field

UserStackEntryTypes..::..MobileBrowser Field

The mobile browser

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes MobileBrowser

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


NotDefined Field

UserStackEntryTypes..::..NotDefined Field

the User agent type was provided only was not supported by this extension method, use raw TypeName as fall back

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes NotDefined

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


OfflineBrowser Field

UserStackEntryTypes..::..OfflineBrowser Field

The offline browser

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes OfflineBrowser

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


Unknown Field

UserStackEntryTypes..::..Unknown Field

The unknown

Namespace: Walter.Web.FireWall.UserAgent.UsersStack
Assembly: Walter.Web.FireWall.UserAgent.UsersStack (in Walter.Web.FireWall.UserAgent.UsersStack.dll)

Syntax

C#
public const UserStackEntryTypes Unknown

See Also

UserStackEntryTypes Enumeration
Walter.Web.FireWall.UserAgent.UsersStack Namespace


All Field

UserTypes..::..All Field

all options

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes All

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


Anyone Field

UserTypes..::..Anyone Field

Anyone has access, this is different from None as not defined is only valid if no firewall attribute is set and does not include users flagged with suspicious activity like cross-site actions or IsMalicious or IsUsingDeveloperTools flaggs

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes Anyone

Remarks

Type of user

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsAcessingHoneypotEndpoints Field

UserTypes..::..IsAcessingHoneypotEndpoints Field

The is accessing on of the application honey-pot endpoints

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsAcessingHoneypotEndpoints

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsBot Field

UserTypes..::..IsBot Field

The user type is a automated process interacting with your endpoint

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsBot

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsCrossSiteSubmitting Field

UserTypes..::..IsCrossSiteSubmitting Field

User executed a HttpPost, HttpDelete, or an HttpPut to the web application from a another domain

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsCrossSiteSubmitting

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsCrossSiteUser Field

UserTypes..::..IsCrossSiteUser Field

User is consuming resources from like script from another domain

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsCrossSiteUser

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsHuman Field

UserTypes..::..IsHuman Field

The user type has been discovered and is a human

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsHuman

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsIsp Field

UserTypes..::..IsIsp Field

The user is coming from a cloud data center, could be an Internet service provider or a scrubbing engine

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsIsp

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsMalicious Field

UserTypes..::..IsMalicious Field

The is consumer is known to be malicious (is a behavior and not a user type therefore not included in anyone)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsMalicious

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsSearchEngine Field

UserTypes..::..IsSearchEngine Field

The user is a search engine supported by the SearchEngine enum

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsSearchEngine

Remarks

this is a type of bot however search are engines are discovered by way of reverse DNS and are limited to those that are available in SearchEngine enumerator

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace
supported search engines


IsTriggeringCSPViolationsInTheBrowser Field

UserTypes..::..IsTriggeringCSPViolationsInTheBrowser Field

The user is triggering CSP violation in the browser

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsTriggeringCSPViolationsInTheBrowser

Remarks

Most script tools do not use a browser when attacking, therefore do not rely to much on security headers

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsUsingDeveloperTools Field

UserTypes..::..IsUsingDeveloperTools Field

The is consumer is known to be using developer tools (is a behavior and not a user type therefore not included in anyone)

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsUsingDeveloperTools

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


IsUsingPortScanning Field

UserTypes..::..IsUsingPortScanning Field

The is using port scanning tools to access the application via a port he is not intended to do

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes IsUsingPortScanning

Remarks

You need to pass a non standard port to the website and register the port with HoneyPotListners You can set this up at any time in your code or during the configuration of the services by using options.Rules.HoneyPortPorts.Add([port to block]);

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


None Field

UserTypes..::..None Field

No user type filter is defined and no checking based on user type will be done.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes None

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


NotDiscovered Field

UserTypes..::..NotDiscovered Field

The user type is not been discovered at this moment

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const UserTypes NotDiscovered

See Also

UserTypes Enumeration
Walter.Web.FireWall Namespace


BandwidthLimitExceeded Field

ViolationStatusCode..::..BandwidthLimitExceeded Field

The bandwidth limit exceeded status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode BandwidthLimitExceeded

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


Conflict Field

ViolationStatusCode..::..Conflict Field

The conflict status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode Conflict

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


Forbidden Field

ViolationStatusCode..::..Forbidden Field

The forbidden status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode Forbidden

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


Gone Field

ViolationStatusCode..::..Gone Field

The gone status code

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode Gone

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


InternalServerError Field

ViolationStatusCode..::..InternalServerError Field

The internal server error status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode InternalServerError

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


MethodNotAllowed Field

ViolationStatusCode..::..MethodNotAllowed Field

The method not allowed status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode MethodNotAllowed

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


NoContent Field

ViolationStatusCode..::..NoContent Field

The no content status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode NoContent

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


None Field

ViolationStatusCode..::..None Field

application failed to retrieve status code due to exception

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode None

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


NotAcceptable Field

ViolationStatusCode..::..NotAcceptable Field

The not acceptable status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode NotAcceptable

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


NotFound Field

ViolationStatusCode..::..NotFound Field

The not found status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode NotFound

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


NotImplemented Field

ViolationStatusCode..::..NotImplemented Field

The not implemented status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode NotImplemented

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


OK Field

ViolationStatusCode..::..OK Field

The okay status codes, should be avoided as it will only make them try harder....

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode OK

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


ServiceUnavailable Field

ViolationStatusCode..::..ServiceUnavailable Field

The service unavailable status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode ServiceUnavailable

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


Unauthorized Field

ViolationStatusCode..::..Unauthorized Field

The unauthorized status codes

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public const ViolationStatusCode Unauthorized

See Also

ViolationStatusCode Enumeration
Walter.Web.FireWall Namespace


OffLine Field

EventLogState..::..OffLine Field

OFF-line means the connection to the event log was made and interaction is not possible, usually happens if the process is missing user rights

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const EventLogState OffLine

Remarks

The user that is executing in the process must be allowed to interact with the event log. if a custom name and source is used the user must have the right to create it

See Also

EventLogState Enumeration
Walter.Web.FireWall.WindowsEventLog Namespace


OnLine Field

EventLogState..::..OnLine Field

On-line means the connection to the event log was made and interaction is possible

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const EventLogState OnLine

See Also

EventLogState Enumeration
Walter.Web.FireWall.WindowsEventLog Namespace


UnKnown Field

EventLogState..::..UnKnown Field

State unknown indicates no connection was made

Namespace: Walter.Web.FireWall.WindowsEventLog
Assembly: Walter.Web.FireWall.EventLog (in Walter.Web.FireWall.EventLog.dll)

Syntax

C#
public const EventLogState UnKnown

See Also

EventLogState Enumeration
Walter.Web.FireWall.WindowsEventLog Namespace


IsValid Method

Discovery..::..IsValid Method

Tests to see if the model could be making sense

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool IsValid(
    out IReadOnlyList<ModelValidationErrors> modelErrors
)

Parameters

modelErrors
Type: IReadOnlyList<(Of <(<' ModelValidationErrors >)>)>%

Return Value

true if no model errors discovered

See Also

Discovery
Walter.Web.FireWall Namespace


Finalize Method

FireWallBase..::..Finalize Method

Finalizes an instance of the FireWallBase class.

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected void Finalize()

See Also

FireWallBase Class
Walter.Web.FireWall Namespace


Dispose Method (Boolean)

KnownLinks..::..Dispose Method (Boolean)

Namespace: Walter.Web.FireWall.Infrastructure
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected virtual void Dispose(
    bool disposing
)

Parameters

disposing
Type: Boolean

See Also

KnownLinks
Dispose Overload
Walter.Web.FireWall.Infrastructure Namespace


SendEmail Method

SMTPLoggerExtensionMethods..::..SendEmail Method

Send an email to all users defined in the email configuration of the IFireWall using a non-blocking method

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static void SendEmail(
    IFireWall fireWall,
    EMailRoles roles,
    string subject,
    string body,
    bool isHtml
)

Parameters

fireWall
Type: IFireWall
The firewall instance
roles
Type: Walter.Web.FireWall.Destinations.Email..::..EMailRoles
The roles that are to be send the email
subject
Type: String
the subject for the email
body
Type: String
the email body
isHtml
Type: Boolean
indicating the email is HTML formated

Examples

The bellow sample shows how to send an email to all users of a given role. There is no guarantee that the email will be sent in case of an error also errors are not populated back to your code, however as a non-blocking method to send emails to all users of a given group is fine if it's not returning an error and who needs a slow response. So sending an sending an email to all users in a group may just be fine.
C#
[BlockDuration(seconds: 60, sliding: true, doubleDurationPerIncident: true)]
   public class HomeController : Controller
   {
       private readonly IFireWall _fireWall;
       private readonly IPageRequest _page;
       private ILatLongRepository _latLongRepository;

       public HomeController(IFireWall fireWall, IPageRequest page, ILatLongRepository latLongRepository)
       {
           _page = page;
           _fireWall = fireWall;
           _latLongRepository = latLongRepository;
       }

       [GeoIgnore(maxRequest: 5)]
       [Ignore(skip: FireWallGuardActions.RejectPenetrationAttempts
                   | FireWallGuardActions.RejectRepeatViolations
                   | FireWallGuardActions.RejectWrongUserType
           , skipCount: 5)]
       public IActionResult Blocked(BlockingReason id)
       {

           _fireWall.SendEmail(roles: EMailRoles.SecurityRelevant | EMailRoles.FireWallAdministrationViolations
               , subject: $"Access to {_page.OriginalUrl} rejected for user in {_latLongRepository.QueryMapLocation(_page.IPAddress)}"
               , body: MailUtils.MakeMailBodyForBlcokedUser(page: _page)
               , isHtml: true
               );

           if (_page.User.AsFirewallUser().UserType.HasFlag(UserTypes.IsMalicious))
           {
               return View("_Malicious", id);
           }
           return View(id);
      }
   }

See Also

SMTPLoggerExtensionMethods Class
Walter.Web.FireWall Namespace


SMTPLoggerExtensionMethods Methods

The SMTPLoggerExtensionMethods type exposes the following members.

Methods

Name | Description
SendEmail | Send an email to all users defined in the email configuration of the IFireWall using a non-blocking method

See Also

SMTPLoggerExtensionMethods Class
Walter.Web.FireWall Namespace


ContinentCode Property

IPAddressGeography..::..ContinentCode Property

Gets or sets the continent code.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
protected Nullable<string> ContinentCode { get; set; }

Field Value

The continent code.

See Also

IPAddressGeography
Walter.Net.Networking Namespace


ContinentName Property

IPAddressGeography..::..ContinentName Property

Gets or sets the name of the continent.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
protected Nullable<string> ContinentName { get; set; }

Field Value

The name of the continent.

See Also

IPAddressGeography
Walter.Net.Networking Namespace


host Property

IPAddressGeography..::..host Property

Gets or sets the host.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
protected Nullable<string> host { get; set; }

Field Value

The host.

See Also

IPAddressGeography
Walter.Net.Networking Namespace


ip Property

IPAddressGeography..::..ip Property

Gets or sets the ip.

Namespace: Walter.Net.Networking
Assembly: Walter.Net.Networking (in Walter.Net.Networking.dll)

Syntax

C#
protected Nullable<string> ip { get; set; }

Field Value

The ip.

See Also

IPAddressGeography
Walter.Net.Networking Namespace


b0 Property

JsonAdminObjectProxy..::..b0 Property

Gets a value indicating whether this JsonAdminObjectProxy is b0.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public bool b0 { get; }

Field Value

true if b0; otherwise, false.

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


i0 Property

JsonAdminObjectProxy..::..i0 Property

Method

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int i0 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


i1 Property

JsonAdminObjectProxy..::..i1 Property

checksum

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long i1 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


i2 Property

JsonAdminObjectProxy..::..i2 Property

ticks client send

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long i2 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


x2 Property

JsonAdminObjectProxy..::..x2 Property

Data

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string x2 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


x3 Property

JsonAdminObjectProxy..::..x3 Property

public key

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string x3 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


x4 Property

JsonAdminObjectProxy..::..x4 Property

parameter

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string x4 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


x5 Property

JsonAdminObjectProxy..::..x5 Property

Md5Hash

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public string x5 { get; set; }

See Also

JsonAdminObjectProxy
Walter.Web.FireWall.Administration Namespace


UserId Property

LogOutModel..::..UserId Property

Gets or sets the user identifier.

Namespace: Walter.Web.FireWall.Administration
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public long UserId { get; set; }

Field Value

The user identifier.

See Also

LogOutModel
Walter.Web.FireWall.Administration Namespace


Port Property

EndPoinPortAttribute..::..Port Property

Port the user is assuming he is attacking

Namespace: Walter.Web.FireWall.Annotations
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public int Port { get; }

See Also

EndPoinPortAttribute
Walter.Web.FireWall.Annotations Namespace


Database Property

IncidentDBRepository..::..Database Property

Namespace: Walter.Web.FireWall.Infrastructure.Repositories.DB
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
protected IDatabaseTools Database { get; }

See Also

IncidentDBRepository
Walter.Web.FireWall.Infrastructure.Repositories.DB Namespace


Details Property

IResetDBRepositoryProxy..::..Details Property

storage details

Namespace: Walter.Web.FireWall.Infrastructure.Repositories.DB
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract string Details { get; }

See Also

IResetDBRepositoryProxy
Walter.Web.FireWall.Infrastructure.Repositories.DB Namespace


Failed Property

IResetDBRepositoryProxy..::..Failed Property

Failed SQL statements

Namespace: Walter.Web.FireWall.Infrastructure.Repositories.DB
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract IEnumerable<TSqlResult> Failed { get; }

See Also

IResetDBRepositoryProxy
Walter.Web.FireWall.Infrastructure.Repositories.DB Namespace


IsReady Property

IResetDBRepositoryProxy..::..IsReady Property

Indicates the database has initialized

Namespace: Walter.Web.FireWall.Infrastructure.Repositories.DB
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract bool IsReady { get; }

See Also

IResetDBRepositoryProxy
Walter.Web.FireWall.Infrastructure.Repositories.DB Namespace


StorageLocation Property

IResetDBRepositoryProxy..::..StorageLocation Property

Location data is stored at

Namespace: Walter.Web.FireWall.Infrastructure.Repositories.DB
Assembly: Walter.Web.FireWall (in Walter.Web.FireWall.dll)

Syntax

C#
public abstract StorageLocations StorageLocation { get; }

See Also

IResetDBRepositoryProxy
Walter.Web.FireWall.Infrastructure.Repositories.DB Namespace


SMTPLoggerExtensionMethods Class

SMTPLogger Extension Methods are used to add SMTP functionality to the IFireWall allowing it to send an email to predefined user roles

Namespace: Walter.Web.FireWall
Assembly: Walter.Web.FireWall.SMTPLogger (in Walter.Web.FireWall.SMTPLogger.dll)

Syntax

C#
public static class SMTPLoggerExtensionMethods

See Also

SMTPLoggerExtensionMethods Members
Walter.Web.FireWall Namespace