Я успешно получил пример github "active-directory-b2c-dotnet-webapp-and-webapi", работающий с моим собственным Арендатором и Azure Active Directory B2C. Это работает, как ожидалось. Когда я создаю свой собственный проект MVC с нуля и копирую каждую вещь до тех же самых dll-ов, он не может воспроизвести те же результаты, что и образец. Сбой при попытке десериализации HttpContext.Session в классе MSALSessoCache, метод Load.
Я вижу, что я получаю токен с правильной информацией и заявлениями, когда в OnAuthorizationCodeReceived. Это также отражается в журналах аудита порталов как успешное. При пошаговом выполнении кода десериализация приводит к исключению нулевого объекта при преобразовании в BLOB-объект. Я вижу информацию о пользователе и тот факт, что она работает в образце, я предполагаю, что Azure Tenant верен.
Я создал новое приложение MVC .net 4.7.2 с «Без аутентификации», изменил HTTPS, а также обновил URL проекта в свойствах. Я скопировал код для проверки класса OWIN Startup.cs и Startup.Auth.cs. Все идентично, за исключением URL-адреса перенаправления https и https TaskServiceUrl в web.config ... даже точно такие же версии DLL. Я также проверил, что правильный URL-адрес https был добавлен в настройку приложения клиента с Azure B2C. Я в растерянности.