Я пытаюсь заставить OpenID-аутентификацию работать в моем приложении Azure ASP.NET MVC 3 и выполнил шаги, описанные в MVC 3 Custom Login Sample *, чтобы сделать это. Все отлично работает в среде разработки, но не при развертывании на платформе Azure.
Первая проблема началась с аутентификации, вызвавшей ошибку «Ключ недопустим для использования в указанном состоянии» . В обсуждении здесь говорится, что приложение должно быть настроено на использование RsaEncryptionCookieTransform вместо DPAPI, который используется по умолчанию. Чтобы попытаться решить эту проблему, я добавил код для OnServiceConfigurationCreated
, описанный в блоге Алика Левина , но не пошел дальше, поскольку он описывает настройку самоподписанного сертификата в процессе разработки (который, как уже упоминалось, не было необходимо), а не в Azure.
Вместо этого я попытался использовать сертификат X.509 уже в Azure. Я обнаружил отпечаток в Windows Azure Management> Служба контроля доступа> Приложения проверяющей стороны> (Имя моего приложения)> Сертификаты подписи токена> Используется для пространства имен службы (Сертификат X.509). Затем я добавил эту ссылку в web.config:
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="8A417..." />
</serviceCertificate>
Теперь при запуске приложения появляется ошибка конфигурации:
ID1024: The configuration property value is not valid.
Property name: 'certificateReference'
Error: 'ID1025: Cannot find a unique certificate that matches the criteria.
StoreName: 'My'
StoreLocation: 'LocalMachine'
X509FindType: 'FindByThumbprint'
FindValue: '8A417...''
Мне действительно нужно изменить метод шифрования, чтобы устранить ошибку «Ключ недействителен для использования в указанном состоянии»? Если да, как я могу использовать сертификат X.509, уже существующий в Azure, для шифрования файлов cookie?