2017-02-21 20 views
0

Я обеспечиваю веб-приложение с сервером идентификации 3. Мое приложение разделено на 2 клиента oidc клиентом ASP.Net MVC и javascript (угловым) клиентом, который использует библиотеку javascript oidc-client ,Identity Server 3 User Session Lifetime

Когда пользователь впервые посещает веб-приложение, мы перенаправляем для входа на сервер идентификации, который регистрируется в клиенте mvc. Затем клиент javascript регистрируется с помощью функции молчаливого входа в библиотеке oidc.

Я хотел бы контролировать, как часто пользователь должен заходить на страницу входа в систему, чтобы войти в нее снова, и я хотел бы установить это, чтобы пользователи могли посещать страницу входа один раз в день или каждые 8 ​​часов.

Есть ли настройка на сервере идентификации, которая контролирует, как долго сеанс пользователя активен без повторной регистрации.

Я искал документы и нашел ряд настроек времени жизни, но неясно, какой из них я должен использовать, и до сих пор пробная ошибка & не принесла никаких результатов.

ответ

1

То, что вы хотите контролировать, - это срок службы самого файла IdentityServer. Как только этот файл cookie истечет, в следующий раз, когда одному из клиентских приложений потребуется снова подтвердить подлинность, пользователю необходимо будет повторно ввести свои учетные данные.

Этот период жизни печенья контролируется в CookieOption, найденном в AuthenticationOptionsIdentityServerOptions (см. Ниже) и по умолчанию - 10 часов.

var options = new IdentityServerOptions 
{ 
    Factory = factory, 
    SigningCertificate = Cert.Load(), 
    AuthenticationOptions = new AuthenticationOptions 
    { 
     CookieOptions = new IdentityServer3.Core.Configuration.CookieOptions 
     { 
      ExpireTimeSpan = TimeSpan.FromHours(24) 
     } 
    } 
}; 
+0

Благодарим за это. Я попытался изменить тайм-аут на 2 минуты для тестирования, но это не влияет. Когда я отлаживаю хром, я вижу, что все файлы cookie устанавливаются как сеанс вместо истечения срока действия. Есть ли другая настройка, чтобы изменить это поведение, которое я могу использовать вместе. Я посмотрел на CookieOptions, но ничего не выделяется? – Twisted

+0

Если вы не нажмете кнопку «запомнить меня» на странице входа в систему, вы получите файл cookie сеанса. В противном случае вы получите куки-файл со всей своей жизнью. Чтобы обойти это и заставить ваше время жизни cookie, в 'CookieOptions' установите' IsPersistent' значение true и 'AllowRememberMe' на false. –

+0

Просмотрите https://identityserver.github.io/Documentation/docsv2/configuration/authenticationOptions.html полную запись для всех этих параметров. –

 Смежные вопросы

  • Нет связанных вопросов^_^