MVC2: Определить, что перенаправление на вход в систему было связано с таймаутом проверки подлинности форм? - PullRequest
2 голосов
/ 11 августа 2010

Как лучше всего определить, когда происходит перенаправление на страницу входа в систему из-за тайм-аута проверки подлинности форм для отображения значимого сообщения?

<authentication mode="Forms">
    <forms loginUrl="~/Login" timeout="15" slidingExpiration="true"/>
</authentication>

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Поработав некоторое время, я нашел это хакерское решение, которое работает. Я хотел бы услышать более элегантное решение.

1) Создание файла cookie после проверки подлинности форм:

   // log the user in
   FormsService.SignIn(userId, false);
   Response.Cookies["WasLoggedIn"].Value = "true";

2) В действии GET при входе в систему найдите этот файл cookie и файл cookie аутентификации не существует:

   if (Request.Cookies[".ASPXAUTH"] == null && 
       Request.Cookies["WasLoggedIn"] != null)
   {
      // forms authentication timed out
   }
0 голосов
/ 11 августа 2010

Нет ничего из коробки, позволяющего вам достичь этого. Например, вы можете написать собственный атрибут Authorize , который будет проверять, истек ли срок действия файла cookie аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...