Microsoft.IdentityModel.Clients.ActiveDirectory.AdalSilentTokenAcquisitionException: не удалось получить токен в автоматическом режиме, так как токен не был найден в кэше.Вызовите метод AcquireToken
Если токена нет в кэше , AcquireTokenSilentAsync
сгенерирует AdalSilentTokenAcquisitionException
, и приложению понадобятся вызовы AcquireTokenAsync
.
Убедитесь, что ваш токен-кеш не находится в памяти, поэтому он не стирается в случае перезапуска процесса.Еще одна вещь, которую вы можете сделать, это увеличить продолжительность сеанса.ASP.NET по умолчанию ограничивает его 20 минут , а OpenIdConnect
по умолчанию следует за этим.Это означает, что он просто стирает эти токены через 20 минут, хотя токен обновления можно использовать гораздо дольше.
Для этого вам нужно будет изменить регистрацию промежуточного программного обеспечения OpenIdConnect в Startup.Auth.cs следующим образом:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// ... Rest removed for brevity
UseTokenLifetime = false
});
Затем в web.config установите желаемое время сеанса:
<system.web>
<sessionState timeout="720" /><!-- 12 hour session duration -->
</system.web>
Для получения более подробной информации вы можете обратиться к этой статье .