Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet exemple montre comment utiliser serviceAuthorization<> pour activer l’utilisation de l’attribut pour autoriser l’accès PrincipalPermissionAttribute aux opérations de service. Cet exemple est basé sur l’exemple De prise en main . Le service et le client sont configurés à l’aide de <wsHttpBinding>. L’attribut mode de la <sécurité> a été défini sur Message et clientCredentialType a été défini sur Windows. Elle PrincipalPermissionAttribute est appliquée à chaque méthode de service et utilisée pour restreindre l’accès à chaque opération. L’appelant doit être administrateur Windows pour accéder à chaque opération.
Dans cet exemple, le client est une application console (.exe) et le service est hébergé par Internet Information Services (IIS).
Remarque
La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.
Le fichier de configuration de service utilise le <serviceAuthorization> pour définir l’attribut principalPermissionMode :
<behaviors>
<serviceBehaviors>
<behavior>
<!-- The serviceAuthorization behavior sets the
principalPermissionMode to UseWindowsGroups.
This puts a WindowsPrincipal on the current thread when a
service is invoked. -->
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
</behavior>
</serviceBehaviors>
</behaviors>
Définition de la principalPermissionMode valeur pour UseWindowsGroups activer l’utilisation basée sur les noms de PrincipalPermissionAttribute groupes Windows.
L’application PrincipalPermissionAttribute est appliquée à chaque opération pour exiger que l’appelant fait partie du groupe d’administrateurs Windows, comme indiqué dans l’exemple de code suivant.
[PrincipalPermission(SecurityAction.Demand,
Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Lorsque vous exécutez l’exemple, les demandes et réponses de l’opération s’affichent dans la fenêtre de la console cliente. Le client communique correctement avec chaque opération s’il s’exécute sous un compte qui fait partie du groupe Administrateurs ; sinon, l’accès est refusé. Pour tester l’échec d’autorisation, exécutez le client sous un compte qui ne fait pas partie du groupe Administrateurs. Appuyez sur Entrée dans la fenêtre de console pour arrêter le client.
Un service peut être averti des échecs d’autorisation en implémentant un IErrorHandler. Pour plus d’informations sur l’implémentation, consultez Extension du contrôle sur la gestion des erreurs et la créationIErrorHandlerde rapports.
Pour configurer, générer et exécuter l’exemple
Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.
Pour générer l’édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Building the Windows Communication Foundation Samples.
Pour exécuter l’exemple dans une configuration monoposte ou multiposte, suivez les instructions de Exécution des exemples Windows Communication Foundation.