Использовать Куки и Хешировать их в навигаторе
Веб Ассембли приложение использует данные юзера, логин, пароль и другие настройки, которые необходимо сохранить если
пользователь заходит "завтра" и согласился "запомнить меня" на "5 дней"
Я начала...
public class CookieStorageAccessor
{
private Lazy<IJSObjectReference> _accessorJsRef = new();
private readonly IJSRuntime _jsRuntime;
public CookieStorageAccessor(IJSRuntime jsRuntime)
{
_jsRuntime = jsRuntime;
}
public async Task<T> GetValueAsync<T>(T key)
{
await WaitForReference();
var result = await _accessorJsRef.Value.InvokeAsync<T>("get", key);
return result;
}
public async Task SetValueAsync<T>(string key, T value)
{
await WaitForReference();
await _accessorJsRef.Value.InvokeVoidAsync("set", key, value);
}
private async Task WaitForReference()
{
if (_accessorJsRef.IsValueCreated is false)
{
_accessorJsRef = new(await _jsRuntime.InvokeAsync<IJSObjectReference>("import", "/js/CookieStorageAccessor.js"));
}
}
public async ValueTask DisposeAsync()
{
if (_accessorJsRef.IsValueCreated)
{
await _accessorJsRef.Value.DisposeAsync();
}
}
}
export function get() {
return document.cookie;
}
export function set(key, value) {
document.cookie = `${key}=${value}`;
}
builder.Services.AddScoped<CookieStorageAccessor>();
public async Task SetValueAsync()
{
await CookieStorageAccessor.SetValueAsync(Key, Value);
}
public async Task GetValueAsync()
{
StoredValue = await CookieStorageAccessor.GetValueAsync<string>(Key);
}
Плавно сохраняет в навигаторе куки юзера, только вот как я могу добавить дату, чтоб "завтра" пользователь имел в наличии и использовал свои настройки
Также данные сохраняются слишком открыто и ясно, я смотрела как сохраняется на других сайтах, там мало что понятно, как я тоже могу сделать так же, ну скажем хешировать или что там за плюшки подскажите добрые люди
я вот читаю документацию, только вот пока не ясно что куда,,,
...
вот нашла пример готового решения, только вот после применения кода выдает ошибку
System.ArgumentNullException:Value cannot be null.(Parameter'HttpContext')
а в какой момент нужно инитицализировать Parameter'HttpContext', чтоб он не был нУлем ?