Проверка подлинности форм сохраняется в браузере - PullRequest
0 голосов
/ 22 марта 2012

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

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

Код главной страницы позади

  protected void Page_Init(object sender, EventArgs e)
    {        
        // if authenticated, initialize session
        if (Request.IsAuthenticated)
        {            
            // set stuff
        }        
    }

Когда я отлаживаю через него в первый раз, когда он нажимает Request.IsAuthenticated, он ложен, затем снова попадает в него, и это правда. Проблема в странице переднего плана. У меня есть несколько проверок, чтобы проверить, прошел ли пользователь аутентификацию, и неверно ли он при оценке этих условий.

Интерфейс главной страницы

 <% if (Request.IsAuthenticated) { %>
       <li>Admin Page</li>
 <% } %>

Настройка Auth Cookie

  FormsAuthentication.SetAuthCookie(username, false);

Web.config

   <authentication mode="Forms">
      <forms 
          loginUrl="/"
          name="ASPXFORMSAUTH" 
          timeout="360"         
      />           
    </authentication>

Основная информация

  1. Сохранение формы файла cookie сохраняется, когда пользователь просто закрывает / закрывает браузер выключен, хотя это не постоянный файл cookie
  2. Если у пользователя есть существующий файл cookie проверки подлинности форм при загрузке проверять запрос Request.IsAuthenticated на ложном сначала ударил в отладчике, а затем правда на втором. Внешний интерфейс страница явно проверяет эти вещи при первом попадании, потому что они оцените как ложное.

1 Ответ

0 голосов
/ 23 марта 2012

Разобрался.

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

Значение параметра about: config равно

browser.showQuitWarning

Я нахожусь на firefox 11, так что это должно было быть отключено по умолчанию, но моя конфигурация как-то повреждена, и мне пришлось сбросить ее, используя безопасный режим и восстанавливая настройки по умолчанию. Теперь это работает

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