发布:2022/4/26 22:29:22作者:管理员 来源:本站 浏览次数:2359
问题
在Blazor服务器端创建和读取cookie最简单的方法是什么。
似乎所有的解决方案都是针对BlazorWeb组装的,每当我使用这些解决方案时,Response.Cookies.Append("&()和请求。Cookies[]选项不起作用。
回答
我找到了一个很好的解决方案,使用本地存储来解决Blazor服务器端Cookie问题。
首先,使用以下命令获取NuGet Blazored LocalStorage:Install Package Blazored.LocalStorage。我必须更新我的System.Text.Json,从https://www.nuget.org/packages/System.Text.Json/
将以下内容添加到中的Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddBlazoredLocalStorage(); // local storage
services.AddBlazoredLocalStorage(config =>
config.JsonSerializerOptions.WriteIndented = true); // local storage
}
在Razor页面上(我使用Index.Razor进行测试):
@page "/"
@inject Blazored.LocalStorage.ILocalStorageService localStorage
<button @onclick="HandleSubmit">Create Cookie</button> @* Create your cookie *@
@code{
public async Task HandleSubmit()
{
await localStorage.SetItemAsync("cookieName", "Jason Bourne");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
var cookieContent = await localStorage.GetItemAsync<string>("cookieName");
if (cookieContent == null)
{
Console.WriteLine("Cookie is blank");
}
else
{
Console.WriteLine("We have a cookie with contents: " + cookieContent);
}
}
}
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4