2016-09-26 3 views
1

Я создаю приложение, которое представляет собой Javascript SPA с контроллерами Asp.net mvc в бэкэнд. Я пытаюсь использовать IdentityServer для аутентификации. У меня есть атрибут authorize для моих контроллеров. Одно из требований, которое у меня есть, заключается в том, что сеанс пользователя должен быть истек в течение определенного промежутка времени (если нет активности, пользователю должно быть предложено войти в систему). Неявный поток не работает для меня из-за ограничений безопасности. Я схватил образцы Identity4 https://github.com/IdentityServer/IdentityServer4.Samples и попытался использовать промежуточное ПО cookieauthentication, установив ExpireTimeSpan, чтобы узнать, истекает ли это файл cookie. Как-то даже после истечения указанного периода времени я все еще могу позвонить в контроллеры. Как я могу выполнить что-то похожее на тайм-аут сеанса asp.net с помощью Identity Server и Asp.net mvc?IdentityServer и Asp.net MVC

ответ

1

Известный вопрос см. https://github.com/aspnet/Security/pull/893, исправленный для 1.1.0.

Wait 1.1.0 версии или использовать OnTokenValidated установить истекают свойство:

OnTokenValidated = async (context) => 
{ 
    context.Properties.ExpiresUtc = <expire>; 
    await Task.FromResult(0); 
} 

Также см другое решение: https://github.com/aspnet/Security/issues/855#issuecomment-229495399