Запустите WIF без LoadUserProfile = True выдает нулевую ошибку

Я использую WIF SSO для аутентификации на своем веб-сайте. Все отлично работает в среде разработки. Но при развертывании у меня возникла проблема

Сообщение: Операция по защите данных не удалась. Это могло быть вызвано тем, что профиль пользователя не был загружен для пользовательского контекста текущего потока, что может иметь место, когда поток олицетворяет себя. ExceptionStackTrace: в System.Security.Cryptography.ProtectedData.Protect(Byte[] userData, Byte[] optionalEntropy, область DataProtectionScope) в Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Encode(значение Byte[])

Поиск по этой проблеме приводит меня к этому вопросу переполнения стека Возможно ли запустить WIF без LoadUserProfile = True Я добавил указанный код, но теперь я получаю

Значение не может быть нулевым

Я получаю e.ServiceConfiguration.ServiceCertificate ServiceCertificate null. Мой вопрос в том, что это за сертификат и где я могу определить это в моей конфигурации. Нужно ли размещать такой же сертификат на ACS.

вот мой раздел конфигурации

<microsoft.identityModel>
    <service>
      <audienceUris>
        <add value="http://localhost:9494/" />
      </audienceUris>      
      <federatedAuthentication>
        <wsFederation passiveRedirectEnabled="true" issuer="https://devworks-sb.accesscontrol.appfabriclabs.com/v2/wsfederation" realm="http://localhost:9494" requireHttps="false" />
        <cookieHandler requireSsl="false" />
      </federatedAuthentication>
      <applicationService>
        <claimTypeRequired>
          <!--Following are the claims offered by STS 'https://devworks-sb.accesscontrol.appfabriclabs.com/'. Add or uncomment claims that you require by your application and then update the federation metadata of this application.-->
          <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" optional="true" />
          <claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" optional="true" />
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider" optional="true" />-->
        </claimTypeRequired>
      </applicationService>
      <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <trustedIssuers>
          <add thumbprint="BE9D0A516BEC2BC820C23D5C2EA79F068C094382" name="https://devworks-sb.accesscontrol.appfabriclabs.com/" />
        </trustedIssuers>
      </issuerNameRegistry>      
    </service>   </microsoft.identityModel>

спасибо


person ZafarYousafi    schedule 21.05.2012    source источник


Ответы (2)


Основная причина, вероятно, заключается в том, что вы используете DPAPI (конфигурация WIF по умолчанию). Попробуйте внести несколько изменений, чтобы приложение работало в Windows Azure. Я хотел бы предложить вам проверить http://msdn.microsoft.com/en-us/IdentityTrainingCourse_WIFonWAZLab2010 для учебника.

Наилучшие пожелания,

Мин Сюй.

person Ming Xu - MSFT    schedule 22.05.2012

Первое, что вы упомянули, что проблема возникла после развертывания, верно? Изменили ли вы в файле web.config параметр AudienceUris на http://whatever_service_name.cloudapp.net?

<audienceUris>
    <add value="http://localhost:9494/" /> <== This is  wrong
 </audienceUris>  

Далее ваш вопрос о сертификате имеет значение NULL в e.ServiceConfiguration.ServiceCertificate, проверьте следующее:

A. Конечная точка добавляется в определение службы вашего приложения:

B. Отпечаток сертификата задается в конфигурации службы

C. Сертификат установлен в web.config, что указано выше.

D. Наконец, в файл web.config добавлено следующее, чтобы сертификат можно было искать по отпечатку:

<serviceCertificate>
   <certificateReference x509FindType="FindByThumbprint" findValue="CERT_THUMB" />
</serviceCertificate>

Изучите эти два ресурса, которые будут очень полезны:

http://www.jimandkatrin.com/CodeBlog/post/Troubleshooting-Azure-issues.aspx

http://blogs.msmvps.com/marcelmeijer/blog/2012/05/04/windows-azure-wif-access-control-acs/

person AvkashChauhan    schedule 27.05.2012