WS-Trust - не может получить результат от WIF, Windows Identity Foundation - PullRequest
1 голос
/ 02 марта 2011

Я создал веб-приложение со службой для приема заявок по протоколу WS-Trust для некоторых приложений Silverlight. Я вижу, что заявки создаются в методе GetOutputClaimsIdentity () (дважды вызывается почему?), Но на уровне Silverligh я получаю сообщение "Not Found" (пустой поток?).

Поддержка Silverlight для WS-Trust, которую я взял из последней версии WIF Training Kit. Я пытался отладить код на стороне сервера, но, к сожалению, исходный код WIF пока недоступен как часть отладки .NET Framework: (

Поэтому я понятия не имею, почему он не отправляет должным образом ответ с претензиями в клиентское приложение.

Содержимое файла Web.config для проекта WS-Trust ниже (в настоящее время я использую самоподписанный сертификат):

<?xml version="1.0"?>

<configuration>
 <configSections>
 <section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
 </configSections>

 <appSettings>
 <add key="IssuerName" value="PatientInfo"/>
 <add key="SigningCertificateName" value="CN=PatientInfo"/>
 <!--<add key="EncryptingCertificateName" value="CN=DefaultApplicationCertificate"/>-->
 <add key="EncryptingCertificateName" value=""/>
 </appSettings>

 <system.web>
 <compilation debug="true" targetFramework="4.0" >
 <assemblies>
 <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
 </assemblies>
 </compilation>
 <authentication mode="None"/>
 <authorization>
 <allow users="*"/>
 </authorization>
 </system.web>

 <system.serviceModel>

 <serviceHostingEnvironment
 aspNetCompatibilityEnabled="true"
 multipleSiteBindingsEnabled="true" />

 <behaviors>
 <serviceBehaviors>
 <behavior name="ServiceBehavior">
  <serviceMetadata httpGetEnabled="true" />
  <serviceDebug includeExceptionDetailInFaults="true" />
 </behavior>
 </serviceBehaviors>
 </behaviors>
 <bindings>

 <ws2007HttpBinding>
 <binding name="ws2007HttpBindingConfiguration">
  <security mode="TransportWithMessageCredential">
  <message establishSecurityContext="false" clientCredentialType="UserName" />
  </security>
 </binding>
 </ws2007HttpBinding>

 </bindings>

 <services>
 <service name="Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceContract" behaviorConfiguration="ServiceBehavior">
 <endpoint address="IWSTrust13"
   binding="ws2007HttpBinding"
   bindingConfiguration="ws2007HttpBindingConfiguration"
   contract="Microsoft.IdentityModel.Protocols.WSTrust.IWSTrust13SyncContract"/>
 <host>
  <baseAddresses>
  <add baseAddress="https://WIN-8LUMNJ5E6S4/PatientHistInfo.WS-Trust/InternalAuthentication.svc" />
  </baseAddresses>
 </host>
 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
 </service>
 </services>
 </system.serviceModel>

 <microsoft.identityModel>
 <service>
 <securityTokenHandlers>
 <remove type="Microsoft.IdentityModel.Tokens.WindowsUserNameSecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 <add type="eSoft.Server.Security.CustomUserNamePasswordTokenHandler, PatientHistInfo.WS-Trust"/>
 </securityTokenHandlers>
 </service>
 </microsoft.identityModel>

 <system.diagnostics>
 <sources>
 <source name="Microsoft.IdentityModel" switchValue="Verbose">
 <listeners>
  <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="WIFTrace.txt" />
 </listeners>
 </source>
 </sources>
 <trace autoflush="true" />
 </system.diagnostics>

</configuration>

Результат Fiddler ниже:

HTTP / 1.1 504 Fiddler - ошибка при получении Тип контента: текст / HTML Подключение: закрыть Метка времени: 15: 41: 21.666

Сбой ReadResponse (): сервер не вернул ответ на этот запрос.

Что может вызвать такую ​​проблему?

...