Ошибка «System.Web.HttpException: невозможно проверить данные» в VS Development Server, но не в IIS - PullRequest
9 голосов
/ 26 января 2012

Я использую Visual Studio 2010 с пакетом обновления 1 (SP1) в 64-разрядной операционной системе Windows 7.Мой asp.net работает нормально при использовании IIS на коробке, но когда я переключаюсь на использование Visual Studio Development Server, я получаю исключение «System.Web.HttpException: невозможно проверить данные» в этой строке (в событии Application_AuthenticateRequest в global.asax.cs):

FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

Почему происходит сбой при использовании внутреннего веб-сервера?

Ответы [ 3 ]

18 голосов
/ 26 января 2012

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

Вы можете предотвратить эту проблему, если поместите ключ дешифрования в ваш web.config:

<machineKey decryptionKey="..." />
0 голосов
/ 21 февраля 2017

Я использовал метод @Michiel van Oosterhout, но он не сработал.однако затем я добавил:

<authentication mode="Forms">
  <forms protection="Encryption" enableCrossAppRedirects="true"/>
</authentication>

Теперь это работает.

0 голосов
/ 24 апреля 2012

Существует еще одна причина этой ошибки. Если ваша запись MachineKey в файле Web.config заканчивается на

xmlns=""

Тогда вы тоже будете страдать от этой ошибки.

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