2016-04-06 4 views
1

У нас есть приложение ASP.NET MVC, которое использует WIF и классический SessionSecurityTokenHandler, что означает, что файл cookie WIF подписан с использованием DPAPI.ASP.NET WIF изменяет обработчик маркера безопасности и избегает CryptographicException

Мы хотели бы переключить обработчик маркера безопасности на MachineKeySessionSecurityTokenHandler, потому что мы хотим масштабировать наше приложение на несколько экземпляров (веб-ферму) в развертывании веб-приложений Azure. Это означает, что файл cookie WIF будет подписан с помощью машинного ключа (который используется совместно с экземплярами веб-приложений).

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

Есть ли способ предотвратить ошибку и вместо этого отказаться от устаревшего файла cookie или позволить пользователю снова аутентифицироваться?

ответ

0

ОК, поэтому у нас возникло обходное решение этой проблемы. Мы просто изменили имя файла cookie, что приводит к отключению пользователей, и создается новый файл cookie. Это релевантная часть web.config:

<configuration> 
    <system.identityModel.services> 
     <federationConfiguration> 
      <cookieHandler name="CookieName" /> 
     </federationConfiguration> 
    </system.identityModel.services> 
</configuration> 

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

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