Я работаю над приложением Silverlight 4, которое подключается к службе заявок WCF. Я использую следующий код для получения токена заявки в моем WCF для выполнения авторизации.
IClaimsPrincipal principal = ( IClaimsPrincipal )Thread.CurrentPrincipal;
IClaimsIdentity identity = ( IClaimsIdentity )principal.Identity;
return string.Format( "You entered: {0} and you are {1}", value, identity.Name );
Когда я использую wsHttpBinding в WCF и пробую его с консольным приложением, он работает нормально. Но поскольку Silverlight поддерживает только basicHttp и customeBinding, я не могу использовать wsHttp, ws2007Http или любую другую привязку. Из-за чего я не получаю токен IClaimIdentity в моем WCF от Silverlight.
Можно ли каким-либо образом использовать любое из поддерживаемых привязок Silverlight и по-прежнему получать ClaimIdentity в моем WCF. Есть ли какой-нибудь учебник / справочный текст, где я могу прочитать об этом подробнее.
Мои настройки WCF:
<system.serviceModel>
<services>
<service name="ClainAwareWCF.Service" behaviorConfiguration="ClainAwareWCF.ServiceBehavior">
<endpoint address="" binding="basicHttpBinding" contract="ClainAwareWCF.IService" bindingConfiguration="basicbind">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="basicbind">
<security mode="TransportCredentialOnly"></security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ClainAwareWCF.ServiceBehavior" >
<federatedServiceHostConfiguration/>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="federatedServiceHostConfiguration" type="Microsoft.IdentityModel.Configuration.ConfigureServiceHostBehaviorExtensionElement, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>