【发布时间】:2020-04-19 03:32:33
【问题描述】:
我有一个带有身份的 Blazor 3.1 应用程序,我想在其中实施 cookie 同意横幅。
在经典的 ASP .NET Core 中,有一个很好的 cookie 同意横幅模板。
@using Microsoft.AspNetCore.Http.Features
@{
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
var showBanner = !consentFeature?.CanTrack ?? false;
var cookieString = consentFeature?.CreateConsentCookie();
}
@if (showBanner)
{
<div class="container">
<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 class="alert-link" asp-area="" asp-controller="Home" asp-action="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>
</div>
<script>
(function () {
var button = document.querySelector("#cookieConsent button[data-cookie-string]");
button.addEventListener("click", function (event) {
document.cookie = button.dataset.cookieString;
}, false);
})();
</script>
}
如果您将此部分放置在布局中,您就有了一个完美的 cookie 同意横幅。如果配置得当,用户在同意之前甚至无法登录身份框架。
因为 Blazor 不知道 HttpContext,所以此模板不起作用。是否有样板方式或我必须自己创建此功能?
【问题讨论】:
标签: c# cookies asp.net-identity blazor blazor-server-side