Срок действия маркера XSRF истек после публикации сайта в IIS - PullRequest
0 голосов
/ 12 февраля 2019

Я использую платформу ASP.NET Boilerplate, на каждой странице я размещаю следующий код.

@inject IAbpAntiForgeryManager AbpAntiForgeryManager

@{
    AbpAntiForgeryManager.SetCookie(Context);
}

Я вызываю службу приложений, как показано ниже:

var xhr = abp.services.app.order.add(data);

        xhr.done(function (data) {
            alert(data);
        });

Все работает нормально, когдаЯ запускаю в localhost, токен XSRF не истечет, даже если я пересоберу проект.Каждый раз, когда я нажимаю [Опубликовать веб-сайт в IIS], все запросы ajax будут возвращать 400 неверных запросов, я полагаю, это потому, что срок действия маркера XSRF истек, и все возвращается в нормальное состояние после нажатия F5 в браузере.Это так раздражало пользователя, что я могу сделать, чтобы предотвратить эту ошибку?Или токен автообновления?

Спасибо!

update

сообщение об ошибке в файле журнала:

ERROR 2019-02-12 13:40:09,773 [71   ] .Antiforgery.Internal.DefaultAntiforgery - An exception was thrown while deserializing the token.
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {996d31d2-0fa3-4ffe-8e82-e155c1486d33} was not found in the key ring.

1 Ответ

0 голосов
/ 12 февраля 2019

Судя по ошибке, ваши ключи защиты данных повернули при публикации.Посмотрите документы по защите данных здесь: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/introduction?view=aspnetcore-2.2. Существует множество вариантов, как настроить его, где хранить ключи и т. Д. Вам нужно изменить способ их хранения.

Подробнеепо настройке защиты данных: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.2.

...