Использовать Куки и Хешировать их в навигаторе

Веб Ассембли приложение использует данные юзера, логин, пароль и другие настройки, которые необходимо сохранить если

пользователь заходит "завтра" и согласился "запомнить меня" на "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', чтоб он не был нУлем ?


Ответы (0 шт):