elemento <serviceAuthorization>

Especifica configurações que autorizam o acesso às operações de serviços

<configuration>
   <system.serviceModel>
     <behaviors>
       <serviceBehaviors>
         <behavior>
           <serviceAuthorization>

Syntax

<serviceAuthorization impersonateCallerForAllOperations="Boolean"
                      principalPermissionMode="None/UseWindowsGroups/UseAspNetRoles/Custom"
                      roleProviderName="String"
                      serviceAuthorizationManagerType="String">
  <authorizationPolicies>
    <add policyType="String" />
  </authorizationPolicies>
</serviceAuthorization>

Atributos e elementos

As seções a seguir descrevem os atributos, os elementos filho e os elementos pai:

Atributos

Atributo Descrição
impersonateCallerForAllOperations Um valor booliano que especifica se todas as operações no serviço representam o chamador. O padrão é false.

Quando uma operação de serviço específica representar o chamador, o contexto do thread será alternado para o contexto do chamador antes de executar o serviço especificado.
principalPermissionMode Define o principal usado para executar operações no servidor. Os valores incluem o seguinte:

- Nenhuma
− UseWindowsGroups
− UseAspNetRoles
- Personalizado

O valor padrão é UseWindowsGroups. O valor é do tipo PrincipalPermissionMode. Para obter mais informações sobre como usar esse atributo, consulte Como restringir o acesso com a classe PrincipalPermissionAttribute.
roleProviderName Uma cadeia de caracteres que especifica o nome do provedor de função, que fornece informações de função para um aplicativo do WCF (Windows Communication Foundation). O padrão é uma cadeia de caracteres vazia.
ServiceAuthorizationManagerType Uma cadeia de caracteres contendo o tipo do gerenciador de autorização de serviço. Para obter mais informações, consulte ServiceAuthorizationManager.

Elementos filho

Elemento Descrição
authorizationPolicies Esta seção de configuração contém uma coleção de tipos de política de autorização, que podem ser adicionados usando a palavra-chave add. Cada política de autorização contém um único atributo policyType obrigatório que é uma cadeia de caracteres. O atributo especifica uma política de autorização, que permite a transformação de um conjunto de declarações de entrada em outro conjunto de declarações. Controle de acesso pode ser concedido ou negado com base nisso. Para obter mais informações, consulte AuthorizationPolicyTypeElement.

Elementos pai

Elemento Descrição
<behavior> Contém uma coleção de configurações para o comportamento de um serviço.

Comentários

Esta seção contém os elementos que afetam a autorização, os provedores de função personalizada e a representação.

O atributo principalPermissionMode especifica os grupos de usuários que serão usados ao autorizar o uso de um método protegido. O valor padrão é UseWindowsGroups e especifica que os grupos do Windows, como "Administradores" ou "Usuários", sejam pesquisados por uma identidade tentando acessar um recurso. Também é possível especificar UseAspNetRoles para usar um provedor de função personalizada configurado no elemento <system.web>, conforme mostrado no código a seguir:

<system.web>
  <membership defaultProvider="SqlProvider"
              userIsOnlineTimeWindow="15">
    <providers>
      <clear />
      <add name="SqlProvider"
           type="System.Web.Security.SqlMembershipProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipProvider"
           enablePasswordRetrieval="false"
           enablePasswordReset="false"
           requiresQuestionAndAnswer="false"
           requiresUniqueEmail="true"
           passwordFormat="Hashed" />
    </providers>
  </membership>
  <!-- Other configuration code not shown. -->
</system.web>

O código a seguir mostra o roleProviderName usado com o atributo principalPermissionMode:

<behaviors>
  <behavior name="ServiceBehaviour">
    <serviceAuthorization principalPermissionMode ="UseAspNetRoles"
                          roleProviderName ="SqlProvider" />
  </behavior>
  <!-- Other configuration code not shown. -->
</behaviors>

Para obter um exemplo detalhado do uso desse elemento de configuração, consulte Autorizar o acesso às operações de serviço e Política de autorização.

Confira também