CookieConsent.Razor.Net
1.2.1
dotnet add package CookieConsent.Razor.Net --version 1.2.1
NuGet\Install-Package CookieConsent.Razor.Net -Version 1.2.1
<PackageReference Include="CookieConsent.Razor.Net" Version="1.2.1" />
paket add CookieConsent.Razor.Net --version 1.2.1
#r "nuget: CookieConsent.Razor.Net, 1.2.1"
// Install CookieConsent.Razor.Net as a Cake Addin #addin nuget:?package=CookieConsent.Razor.Net&version=1.2.1 // Install CookieConsent.Razor.Net as a Cake Tool #tool nuget:?package=CookieConsent.Razor.Net&version=1.2.1
CookieConsent.Razor.Net
<img src="/src/wwwroot/img/cookie-consent-logo.png" width="100" height="100" />
Demo : https://demo-cookies.pierrehenri.fr
Description
A Consent Management library for Blazor, ASP.NET Core Razor Pages and MVC applications. It provides a simple way to manage user consent for cookies and tracking scripts. It's GDPR compliant and allows you to display a modal to ask the user for their consent before loading cookies and tracking scripts. Scripts and cookies are loaded only if the user has accepted them. Many options are available to customize the modal and the cookies list. Feel free to contribute to this project 😃
Prerequisites
- Use Blazor Bootstrap Library
Exemple
An example project can be found in the example
folder.
Setup
- Install the NuGet package
- Register the services in the
Startup.cs
orProgram.cs
file
- Add
builder.Services.AddCookieConsent(options =>
{
options.PrivacyPolicyUrl = "https://www.example.com/privacy-policy";
options.ConsentCookieName = "DemoProject"; // Optional, default is "CookieConsent"
options.CookieAcceptedDurationDays = 40; // Optional, default is 30
options.CookieDeniedDurationDays = 5; // Optional, default is 4
});
- Use
app.UseCookieConsent();
Other optional settings:
- ModalTitle : Main title of the modal
- ModalVerticallyCentered : true to center the modal vertically
- ConfirmButtonText : Text of the confirm button
- RejectButtonText : Text of the reject button
- ConsentCookieName : Name of the cookie that stores the user's consent
- PrivacyPolicyUrl : URL of your privacy policy
- CookieAcceptedDurationDays : Number of days the cookie is stored when the user accepts
- CookieDeniedDurationDays : Number of days the cookie is stored when the user rejects
- ReloadPageOnUserActions : true to reload the page when the user accepts or rejects
-- Cookies
- FunctionalCookies : List of functional cookies
- MarketingCookies : List of marketing cookies
- AnalyticsCookies : List of analytics cookies
- PreferencesCookies : List of preferences cookies
- How to define the list of cookies that will be displayed in the modal? ?
It is very simple ! There are two ways to define your cookies :
- Programmatically from the registration method
builder.Services.AddCookieConsent(options =>
{
options.FunctionalCookies = new()
{
Cookies = new()
{
new()
{
Domain = "Azure cookie",
Name = "__aspAzureDemo",
PrivacyPolicyLink = "https://azure.microsoft.com/en-us/explore/trusted-cloud/privacy"
},
new()
{
Domain = "Antiforgery Cookie",
Name = "NapiAntiforgeryCookie",
PrivacyPolicyDescription = "Security system (cookie-based authentication)"
}
}
};
options.MarketingCookies = new()
{
Cookies = new()
{
new()
{
Domain = "Google Analytics",
Name = "_ga, _gid, _gat",
PrivacyPolicyLink = "https://policies.google.com/privacy?hl=en"
}
}
};
});
- Adding parameters from the
CookieScriptsSection
component
<CookieScriptsSection CookieType="CookieTypeEnum.Marketing" Domain="Example" CookieNames="__toto, __titi" PrivacyPolicyLink="https://www.example.com/privacy-policy">
<script type="text/javascript">
alert('Hey I can track you');
</script>
</CookieScriptsSection>
- Where I put my scripts ? How it works ? ?
From your main page or main layout, you can add the
CookieScriptsSection
component. This component will display the scripts only if the user has accepted the cookies related to the appropriate category.
<CookieScriptsSection CookieType="CookieTypeEnum.Marketing" Domain="Example" CookieNames="_ga, _twiter" PrivacyPolicyLink="https://www.example.com/privacy-policy">
Put here your marketing scripts, like Google Analytics, Facebook Pixel, etc.
</CookieScriptsSection>
You can add as many CookieScriptsSection
components as you want.
You can also mix beetween programmatically and component way.
- Change the style of the modal
Add a CSS file in your
wwwroot
folder and you will be able to override the default style of the modal like :
/* override cookie consent modal styles here */
.cookie-consent-modal .modal-header {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.cookie-consent-modal .modal-title{
color: white;
}
Thanks
- Icon <a href="https://www.flaticon.com/fr/icones-gratuites/biscuit" title="biscuit icônes">Biscuit icônes créées par juicy_fish - Flaticon</a>
- Library <a href="https://demos.blazorbootstrap.com/" title="Blazor.Bootstrap">Blazor.Bootstrap</a>
Enjoy !
<a href="https://www.buymeacoffee.com/phnogues" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Blazor.Bootstrap (>= 3.0.0)
- Microsoft.AspNetCore.Components.Web (>= 8.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.