Я пытался найти свои проблемы, но, похоже, ничего не спрашивает, что я хотел спросить.
Я работаю над веб-сервисом, который генерирует и отправляет своего рода токен с сервера на клиент, в настоящее времяЯ использую Glav CacheAdapter (вид веб-кэша)
Когда кто-то запрашивает вызов данных, сервер должен сгенерировать токен, затем сохранить его в кеше, а затем отправить ключ клиенту, а затем клиент долженотправьте тот же токен на сервер, и он должен быть проверен с тем, который находится в кэше, но каким-то образом, когда сервер генерирует ключ, он успешно создает и сохраняет один (я проверял при отладке), но когда клиентский вызов отправляет токен (онто же самое) но каким-то образом кэш не содержит никаких данных.
![Overview of the project](https://i.stack.imgur.com/yrZQj.png)
>>>> Project A
>> Service
public string Generate()
{
AppServices.Cache.InnerCache.Add($"AuthenticationTokenCache:{xxx}", DateTime.Now.AddDays(1), new StringValue() { Value = xxx });
return key;
}
public bool Validate(string token)
{
return AppServices.Cache.InnerCache.Get<StringValue>($"AuthenticationTokenCache:{xxx}") != null;
}
>> WebAPI
public bool CallValidate(string token)
{
var xService = new Service();
return xService.Validate(token);
}
>>>> Project B
>> WebAPI
protected override bool RequestValidation(string token)
{
var client = new HttpClient();
var authURL = $"/api/CallValidate?token={token}";
var response = client.GetAsync(authURL).Result.Content;
string jsonContent = response.ReadAsStringAsync().Result;
var authResult = JsonConvert.DeserializeObject<bool>(jsonContent);
if(authResult)
{
return true;
}
}
Тип кэша, который я использую неправильно, или, возможно, естьчто-то не так, что я не понимаю, не так?И когда я создаю новый экземпляр того же класса, кэш разделяется между этими объектами или нет?
Я не совсем уверен в том, как работают детали кеширования, есть ли какие-либо указатели на ссылки на материалы для чтениятоже будет полезно.
Спасибо.