Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet visar hur du använder <serviceAuthorization> för att aktivera användning av PrincipalPermissionAttribute attributet för att auktorisera åtkomst till tjänståtgärder. Det här exemplet baseras på exemplet Komma igång . Tjänsten och klienten konfigureras med hjälp av <wsHttpBinding>. Attributet modeför< säkerheten> har angetts till Message och clientCredentialType har angetts till Windows.
PrincipalPermissionAttribute Tillämpas på varje tjänstmetod och används för att begränsa åtkomsten till varje åtgärd. Anroparen måste vara Windows-administratör för att få åtkomst till varje åtgärd.
I det här exemplet är klienten ett konsolprogram (.exe) och tjänsten hanteras av Internet Information Services (IIS).
Anmärkning
Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Tjänstkonfigurationsfilen använder <serviceAuthorization> för att ange attributet 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>
Inställningen av principalPermissionMode till UseWindowsGroups möjliggör användningen av PrincipalPermissionAttribute baserat på Windows-gruppnamn.
PrincipalPermissionAttribute Tillämpas på varje åtgärd för att kräva att anroparen är en del av gruppen Windows-administratörer, enligt följande exempelkod.
[PrincipalPermission(SecurityAction.Demand,
Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
När du kör exemplet visas åtgärdsbegäranden och svar i klientkonsolfönstret. Klienten kommunicerar framgångsrikt med varje operation om den körs under ett konto som ingår i gruppen Administratörer; annars nekas åtkomst. Om du vill experimentera med auktoriseringsfel kör du klienten under ett konto som inte ingår i gruppen Administratörer. Tryck på RETUR i konsolfönstret för att stänga av klienten.
En tjänst kan informeras om auktoriseringsfel genom att implementera en IErrorHandler. Mer information om hur du implementerar finns i IErrorHandler.
Så här konfigurerar du, skapar och kör exemplet
Kontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.