Ereignisse
Power BI DataViz Weltmeisterschaften
14. Feb., 16 Uhr - 31. März, 16 Uhr
Mit 4 Chancen, ein Konferenzpaket zu gewinnen und es zum LIVE Grand Finale in Las Vegas zu machen
Weitere InformationenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Von Rick Anderson
ASP.NET Core stellt APIs und Vorlagen für die Erfüllung einiger der Anforderungen der Datenschutz-Grundverordnung (DSGVO) bereit:
Pages/Privacy.cshtml
oder die Ansicht Views/Home/Privacy.cshtml
bietet eine Seite, auf der Sie die Datenschutzrichtlinien Ihrer Website detailliert beschreiben können.DSGVO-Richtlinien für Blazor-Apps finden Sie unter Support zur EU-Datenschutz-Grundverordnung (DSGVO) in ASP.NET Core Blazor.
Um das Standardfeature für die Einwilligung zu cookies, wie es in den ASP.NET Core 2.2-Vorlagen zu finden ist, in einer aktuellen, mit ASP.NET Core-Vorlagen generierten App zu aktivieren, fügen Sie den folgenden hervorgehobenen Code zu Program.cs
hinzu:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential
// cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
Im vorangehenden Code werden CookiePolicyOptions und UseCookiePolicy verwendet.
Fügen Sie die partielle Einwilligung zu cookies zur Datei _Layout.cshtml
hinzu:
@*Previous markup removed for brevity*@
</header>
<div class="container">
<partial name="_CookieConsentPartial" />
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer class="border-top footer text-muted">
<div class="container">
© 2022 - WebGDPR - <a asp-area="" asp-page="/Privacy">Privacy</a>
</div>
</footer>
<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>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
Fügen Sie die Datei _CookieConsentPartial.cshtml
zum Projekt hinzu:
@using Microsoft.AspNetCore.Http.Features
@{
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
var showBanner = !consentFeature?.CanTrack ?? false;
var cookieString = consentFeature?.CreateConsentCookie();
}
@if (showBanner)
{
<div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
Use this space to summarize your privacy and cookie use policy. <a asp-page="/Privacy">Learn More</a>.
<button type="button" class="accept-policy close" data-bs-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
<span aria-hidden="true">Accept</span>
</button>
</div>
<script>
(function () {
var button = document.querySelector("#cookieConsent button[data-cookie-string]");
button.addEventListener("click", function (event) {
document.cookie = button.dataset.cookieString;
}, false);
})();
</script>
}
Wählen Sie Version 2.2 der ASP.NET Core dieses Artikels aus, um mehr über das Feature für die Einwilligung zu cookies zu erfahren.
Geben Sie den Wert an, der verwendet wird, um nachzuverfolgen, ob der Benutzer mithilfe der Eigenschaft cookie in die Richtlinie zur Verwendung von CookiePolicyOptions.ConsentCookieValue
s eingewilligt hat:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
options.ConsentCookieValue = "true";
});
var app = builder.Build();
Einige Datenbanken und Speichermechanismen ermöglichen die Verschlüsselung ruhender Daten. Verschlüsselung ruhender Daten
Beispiel:
Bei Datenbanken, die keine integrierte Verschlüsselung ruhender Daten bieten, können Sie möglicherweise die Datenträgerverschlüsselung verwenden, um denselben Schutz zu bieten. Beispiel:
true
festgelegt ist, werden Cookies, die nicht grundlegend sind, nicht an den Browser gesendet.Mit der Beispiel-App können Sie die meisten der DSGVO-Erweiterungspunkte und APIs testen, die zu den ASP.NET Core 2.1-Vorlagen hinzugefügt wurden. In der Infodatei finden Sie Anweisungen zum Testen.
Anzeigen oder Herunterladen von Beispielcode (Vorgehensweise zum Herunterladen)
Razor Pages und MVC-Projekte, die mit den Projektvorlagen erstellt wurden, enthalten die folgende DSGVO-Unterstützung:
Startup
festgelegt.Pages/Privacy.cshtml
oder die Ansicht Views/Home/Privacy.cshtml
bietet eine Seite, auf der Sie die Datenschutzrichtlinien Ihrer Website detailliert beschreiben können. Die Datei _ConsentPartial.cshtml generiert einen Link auf die Privacy-Seite.CookiePolicyOptions werden in Startup.ConfigureServices
initialisiert:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services
// to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies
// is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
// If the app uses session state, call AddSession.
// services.AddSession();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
// This method gets called by the runtime. Use this method to configure the
// HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
// If the app uses session state, call Session Middleware after Cookie
// Policy Middleware and before MVC Middleware.
// app.UseSession();
app.UseMvc();
}
}
UseCookiePolicy wird in Startup.Configure
aufgerufen:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services
// to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies
// is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
// If the app uses session state, call AddSession.
// services.AddSession();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
// This method gets called by the runtime. Use this method to configure the
// HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
// If the app uses session state, call Session Middleware after Cookie
// Policy Middleware and before MVC Middleware.
// app.UseSession();
app.UseMvc();
}
}
Die _CookieConsentPartial.cshtml-Teilansicht:
@using Microsoft.AspNetCore.Http.Features
@{
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
var showBanner = !consentFeature?.CanTrack ?? false;
var cookieString = consentFeature?.CreateConsentCookie();
}
@if (showBanner)
{
<nav id="cookieConsent" class="navbar navbar-default navbar-fixed-top" role="alert">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#cookieConsent .navbar-collapse">
<span class="sr-only">Toggle cookie consent banner</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>
</div>
<div class="collapse navbar-collapse">
<p class="navbar-text">
Use this space to summarize your privacy and cookie use policy.
</p>
<div class="navbar-right">
<a asp-page="/Privacy" class="btn btn-info navbar-btn">Learn More</a>
<button type="button" class="btn btn-default navbar-btn" data-cookie-string="@cookieString">Accept</button>
</div>
</div>
</div>
</nav>
<script>
(function () {
document.querySelector("#cookieConsent button[data-cookie-string]").addEventListener("click", function (el) {
document.cookie = el.target.dataset.cookieString;
document.querySelector("#cookieConsent").classList.add("hidden");
}, false);
})();
</script>
}
Dieser Teil:
<p>
-Element zur Verfügung, das Ihre Richtlinie zum Datenschutz und zur Verwendung von Cookies zusammenfasst.Wenn die Einwilligung zur Speicherung von Cookies nicht gegeben wurde, werden nur Cookies, die als grundlegend gekennzeichnet sind, an den Browser gesendet. Der folgende Code markiert ein cookie als grundlegend:
public IActionResult OnPostCreateEssentialAsync()
{
HttpContext.Response.Cookies.Append(Constants.EssentialSec,
DateTime.Now.Second.ToString(),
new CookieOptions() { IsEssential = true });
ResponseCookies = Response.Headers[HeaderNames.SetCookie].ToString();
return RedirectToPage("./Index");
}
Der TempData-Anbietercookie ist nicht grundlegend. Wenn die Nachverfolgung deaktiviert ist, ist der TempData-Anbieter nicht funktionsfähig. Um den TempData-Anbieter zu aktivieren, wenn die Nachverfolgung deaktiviert ist, markieren Sie das TempData-cookie in Startup.ConfigureServices
als grundlegend:
// The TempData provider cookie is not essential. Make it essential
// so TempData is functional when tracking is disabled.
services.Configure<CookieTempDataProviderOptions>(options => {
options.Cookie.IsEssential = true;
});
Cookies für den Sitzungszustand sind nicht grundlegend. Der Sitzungszustand ist nicht funktionsfähig, wenn die Nachverfolgung deaktiviert ist. Der folgende Code markiert Cookies für Sitzungen als grundlegend:
services.AddSession(options =>
{
options.Cookie.IsEssential = true;
});
ASP.NET Core-Apps, die mit individuellen Benutzerkonten erstellt werden, enthalten Code zum Herunterladen und Löschen personenbezogener Daten.
Wählen Sie den Benutzernamen und dann Personenbezogene Daten aus:
Hinweise:
Account/Manage
-Codes finden Sie unter Gerüst für Identity.AspNetUserTokens
gespeichert sind, werden gelöscht, wenn der Benutzer über das kaskadierende Löschverhalten aufgrund des Fremdschlüssels gelöscht wird.Einige Datenbanken und Speichermechanismen ermöglichen die Verschlüsselung ruhender Daten. Verschlüsselung ruhender Daten
Beispiel:
Bei Datenbanken, die keine integrierte Verschlüsselung ruhender Daten bieten, können Sie möglicherweise die Datenträgerverschlüsselung verwenden, um denselben Schutz zu bieten. Beispiel:
Pages/Privacy.cshtml
oder die Ansicht Views/Home/Privacy.cshtml
bietet eine Seite, auf der Sie die Datenschutzrichtlinien Ihrer Website detailliert beschreiben können.So aktivieren Sie das Standardfeature zur Einwilligung zu cookies, wie es in den ASP.NET Core 2.2-Vorlagen zu finden ist, in einer aktuellen, mit ASP.NET Core-Vorlagen generierten App:
Fügen Sie using Microsoft.AspNetCore.Http
zu der Liste der Using-Direktiven hinzu.
Fügen Sie CookiePolicyOptions zu Startup.ConfigureServices
und UseCookiePolicy zu Startup.Configure
hinzu:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential
// cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
// requires using Microsoft.AspNetCore.Http;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddRazorPages();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
}
Fügen Sie die partielle Einwilligung zu cookies zur Datei _Layout.cshtml
hinzu:
@*Previous markup removed for brevity*@
</header>
<div class="container">
<partial name="_CookieConsentPartial" />
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer class="border-top footer text-muted">
<div class="container">
© 2019 - RPCC - <a asp-area="" asp-page="/Privacy">Privacy</a>
</div>
</footer>
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@RenderSection("Scripts", required: false)
</body>
</html>
Fügen Sie die Datei _CookieConsentPartial.cshtml zum Projekt hinzu:
@using Microsoft.AspNetCore.Http.Features
@{
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
var showBanner = !consentFeature?.CanTrack ?? false;
var cookieString = consentFeature?.CreateConsentCookie();
}
@if (showBanner)
{
<div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
Use this space to summarize your privacy and cookie use policy. <a asp-page="/Privacy">Learn More</a>.
<button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
<span aria-hidden="true">Accept</span>
</button>
</div>
<script>
(function () {
var button = document.querySelector("#cookieConsent button[data-cookie-string]");
button.addEventListener("click", function (event) {
document.cookie = button.dataset.cookieString;
}, false);
})();
</script>
}
Wählen Sie Version 2.2 der ASP.NET Core dieses Artikels aus, um mehr über das Feature für die Einwilligung zu cookies zu erfahren.
Pages/Privacy.cshtml
oder die Ansicht Views/Home/Privacy.cshtml
bietet eine Seite, auf der Sie die Datenschutzrichtlinien Ihrer Website detailliert beschreiben können.Um das Standardfeature für die Einwilligung zu cookies, wie es in den ASP.NET Core 2.2-Vorlagen zu finden ist, in einer aktuellen, mit ASP.NET Core-Vorlagen generierten App zu aktivieren, fügen Sie den folgenden hervorgehobenen Code zu Program.cs
hinzu:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential
// cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
Im vorangehenden Code werden CookiePolicyOptions und UseCookiePolicy verwendet.
Fügen Sie die partielle Einwilligung zu cookies zur Datei _Layout.cshtml
hinzu:
@*Previous markup removed for brevity*@
</header>
<div class="container">
<partial name="_CookieConsentPartial" />
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer class="border-top footer text-muted">
<div class="container">
© 2022 - WebGDPR - <a asp-area="" asp-page="/Privacy">Privacy</a>
</div>
</footer>
<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>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
Fügen Sie die Datei _CookieConsentPartial.cshtml
zum Projekt hinzu:
@using Microsoft.AspNetCore.Http.Features
@{
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
var showBanner = !consentFeature?.CanTrack ?? false;
var cookieString = consentFeature?.CreateConsentCookie();
}
@if (showBanner)
{
<div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
Use this space to summarize your privacy and cookie use policy. <a asp-page="/Privacy">Learn More</a>.
<button type="button" class="accept-policy close" data-bs-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
<span aria-hidden="true">Accept</span>
</button>
</div>
<script>
(function () {
var button = document.querySelector("#cookieConsent button[data-cookie-string]");
button.addEventListener("click", function (event) {
document.cookie = button.dataset.cookieString;
}, false);
})();
</script>
}
Wählen Sie Version 2.2 der ASP.NET Core dieses Artikels aus, um mehr über das Feature für die Einwilligung zu cookies zu erfahren.
Einige Datenbanken und Speichermechanismen ermöglichen die Verschlüsselung ruhender Daten. Verschlüsselung ruhender Daten
Beispiel:
Bei Datenbanken, die keine integrierte Verschlüsselung ruhender Daten bieten, können Sie möglicherweise die Datenträgerverschlüsselung verwenden, um denselben Schutz zu bieten. Beispiel:
Feedback zu ASP.NET Core
ASP.NET Core ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Ereignisse
Power BI DataViz Weltmeisterschaften
14. Feb., 16 Uhr - 31. März, 16 Uhr
Mit 4 Chancen, ein Konferenzpaket zu gewinnen und es zum LIVE Grand Finale in Las Vegas zu machen
Weitere InformationenTraining
Modul
Schützen von Daten während der Übertragung und im Ruhezustand - Training
Schützen von Daten während der Übertragung und im Ruhezustand
Zertifizierung
Microsoft Certified: Information Protection and Compliance Administrator Associate - Certifications
Veranschaulichen der Grundlagen von Datensicherheit, Lebenszyklusverwaltung, Informationssicherheit und Compliance zum Schutz einer Microsoft 365-Bereitstellung