vous avez raison, afaik dans le scénario que vous décrivez wsHttpBinding nous oblige à utiliser la pile de sécurité WCF interne. Donc ce que vous généralement faire est
- laisser l'accès anonyme a permis
- créer un ServiceBehavior avec < serviceAuthorization principalPermissionMode = "UseWindowsGroups"/>
- annoter chaque mise en œuvre concrète d'une méthode de service à l'aide du PrincipalPermissionAttribute, qui est un outil assez puissant avec de nombreuses options différentes pour contrôler l'accès
Serait-ce une solution acceptable pour vous ou y a-t-il d'autres nsider?
de base Exemple:
public class TestService : ITestService
{
[PrincipalPermission(SecurityAction.Demand, Name = "testdomain\\administrator")]
public string DoWork()
{
return "Hello World " + Thread.CurrentPrincipal.Identity.Name;
}
}
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WcfSecurity.Www.TestServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="WcfSecurity.Www.TestServiceBehavior" name="WcfSecurity.Www.TestService">
<endpoint address="" binding="wsHttpBinding" contract="WcfSecurity.Www.ITestService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>