ServiceAuthorizationManager Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt autorisatietoegangscontrole voor servicebewerkingen.
public ref class ServiceAuthorizationManager
public class ServiceAuthorizationManager
type ServiceAuthorizationManager = class
Public Class ServiceAuthorizationManager
- Overname
-
ServiceAuthorizationManager
Voorbeelden
In het volgende voorbeeld ziet u een klasse met de naam MyServiceAuthorizationManager die wordt overgenomen van de ServiceAuthorizationManager methode en die de CheckAccessCore methode overschrijft.
public class MyServiceAuthorizationManager : ServiceAuthorizationManager
{
protected override bool CheckAccessCore(OperationContext operationContext)
{
// Extract the action URI from the OperationContext. Match this against the claims
// in the AuthorizationContext.
string action = operationContext.RequestContext.RequestMessage.Headers.Action;
// Iterate through the various claim sets in the AuthorizationContext.
foreach(ClaimSet cs in operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets)
{
// Examine only those claim sets issued by System.
if (cs.Issuer == ClaimSet.System)
{
// Iterate through claims of type "http://www.contoso.com/claims/allowedoperation".
foreach (Claim c in cs.FindClaims("http://www.contoso.com/claims/allowedoperation", Rights.PossessProperty))
{
// If the Claim resource matches the action URI then return true to allow access.
if (action == c.Resource.ToString())
return true;
}
}
}
// If this point is reached, return false to deny access.
return false;
}
}
Public Class MyServiceAuthorizationManager
Inherits ServiceAuthorizationManager
Protected Overrides Function CheckAccessCore(ByVal operationContext As OperationContext) As Boolean
' Extract the action URI from the OperationContext. Match this against the claims.
' in the AuthorizationContext.
Dim action As String = operationContext.RequestContext.RequestMessage.Headers.Action
' Iterate through the various claimsets in the AuthorizationContext.
Dim cs As ClaimSet
For Each cs In operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets
' Examine only those claim sets issued by System.
If cs.Issuer Is ClaimSet.System Then
' Iterate through claims of type "http://www.contoso.com/claims/allowedoperation".
Dim c As Claim
For Each c In cs.FindClaims("http://www.contoso.com/claims/allowedoperation", _
Rights.PossessProperty)
' If the Claim resource matches the action URI then return true to allow access.
If action = c.Resource.ToString() Then
Return True
End If
Next c
End If
Next cs
' If this point is reached, return false to deny access.
Return False
End Function
End Class
Opmerkingen
Deze klasse is verantwoordelijk voor het evalueren van alle beleidsregels (regels die definiƫren wat een gebruiker mag doen), het vergelijken van het beleid met claims van een client, het instellen van de resulterende AuthorizationContext beleidsregels ServiceSecurityContexten het verstrekken van de autorisatiebeslissing of toegang voor een bepaalde servicebewerking voor een beller moet worden toegestaan of geweigerd.
De methode CheckAccessCore wordt aangeroepen door de WCF-infrastructuur (Windows Communication Foundation) telkens wanneer een poging wordt gedaan om toegang te krijgen tot een resource. De methode retourneert true respectievelijk of false om toegang toe te staan of te weigeren.
Het ServiceAuthorizationManager maakt deel uit van de infrastructuur van hetWCF-identiteitsmodel . Met het identiteitsmodel kunt u aangepast autorisatiebeleid en aangepaste autorisatieschema's maken. Zie Claims en autorisatie beheren met het identiteitsmodel voor meer informatie over hoe het identiteitsmodel werkt.
Aangepaste autorisatie
Deze klasse voert geen autorisatie uit en staat gebruikers toe om toegang te krijgen tot alle servicebewerkingen. Als u meer beperkende autorisatie wilt bieden, moet u een aangepast autorisatiebeheer maken waarmee aangepaste beleidsregels worden gecontroleerd. Hiervoor neemt u deze klasse over en overschrijft u de CheckAccessCore methode. Geef het exemplaar van de afgeleide klasse op via de ServiceAuthorizationManager eigenschap.
In CheckAccessCorekan de toepassing het OperationContext object gebruiken om toegang te krijgen tot de aanroeperidentiteit (ServiceSecurityContext).
Door de IncomingMessageHeaders eigenschap op te halen, die een MessageHeaders object retourneert, heeft de toepassing toegang tot de service (To) en de bewerking (Action).
Door de RequestContext eigenschap op te halen, die een RequestContext object retourneert, heeft de toepassing toegang tot het volledige aanvraagbericht (RequestMessage) en voert de autorisatiebeslissing dienovereenkomstig uit.
Zie Voor een voorbeeld : Een aangepast autorisatiebeheer voor een service maken.
Als u aangepast autorisatiebeleid wilt maken, implementeert u de IAuthorizationPolicy klasse. Zie Voor een voorbeeld : Een aangepast autorisatiebeleid maken.
Als u een aangepaste claim wilt maken, gebruikt u de Claim klasse. Zie Een voorbeeld: Een aangepaste claim maken. Als u aangepaste claims wilt vergelijken, moet u claims vergelijken, zoals wordt weergegeven in Procedure: Claims vergelijken.
Zie Aangepaste autorisatie voor meer informatie.
U kunt het type van een aangepaste autorisatiebeheerder instellen met behulp van de< serviceAuthorization> in een clienttoepassingsconfiguratiebestand.
Constructors
| Name | Description |
|---|---|
| ServiceAuthorizationManager() |
Initialiseert een nieuw exemplaar van de ServiceAuthorizationManager klasse. |
Methoden
| Name | Description |
|---|---|
| CheckAccess(OperationContext, Message) |
Controleert de autorisatie voor de opgegeven bewerkingscontext wanneer toegang tot een bericht is vereist. |
| CheckAccess(OperationContext) |
Controleert de autorisatie voor de opgegeven bewerkingscontext. |
| CheckAccessCore(OperationContext) |
Controleert de autorisatie voor de opgegeven bewerkingscontext op basis van de standaardbeleidsevaluatie. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetAuthorizationPolicies(OperationContext) |
Hiermee haalt u de set beleidsregels op die deelnemen aan beleidsevaluatie. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |