2012-05-21 3 views
0

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

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

Поиск Абт этого вопроса приводит меня к этому StackOverflow вопрос Is it possible to run WIF without 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> 

Thanx

ответ

1

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

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

Ming Xu.

2

Прежде всего, вы упомянули, что проблема возникла после развертывания, верно? В вашем web.config вы изменили аудиториюUris на http://whatever_service_name.cloudapp.net?

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

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

Endpoint добавляется в прикладном Определение службы

А.:

Отпечаток

B. Сертификат набор в конфигурации службы

С. Сертификат устанавливается в web.config, который является правильным выше

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

<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/