Compartilhar via


Como: usar o provedor de função do ASP.NET com um serviço

O provedor de funções ASP.NET (em conjunto com o provedor de associação ASP.NET) é um recurso que desenvolvedores de ASP.NET podem usar para criar sites que permitem que os usuários criem uma conta em um site e recebam funções para fins de autorização. Com esse recurso, qualquer usuário pode estabelecer uma conta no site e fazer logon para acesso exclusivo ao site e aos serviços. Isso é diferente da segurança do Windows, que exige que os usuários tenham contas em um domínio do Windows. Em vez disso, qualquer usuário que forneça suas credenciais (a combinação nome de usuário/senha) pode usar o site e seus serviços.

Para um aplicativo de exemplo, consulte Associação e provedor de funções. Para obter mais informações sobre o recurso de provedor de associação do ASP.NET, confira Como usar o provedor de associação ASP.NET.

O recurso provedor de funções usa um banco de dados SQL Server para armazenar informações do usuário. Os desenvolvedores do WCF (Windows Communication Foundation) podem aproveitar esses recursos para fins de segurança. Quando integrados a um aplicativo WCF, os usuários precisam fornecer uma combinação de nome de usuário/senha para o aplicativo cliente WCF. Para permitir que o WCF use o banco de dados, você precisa criar uma instância da classe ServiceAuthorizationBehavior, definir a propriedade PrincipalPermissionMode como UseAspNetRoles e adicionar a instância à coleção de comportamentos ao ServiceHost que hospeda o serviço.

Configurar o provedor de função

  1. No arquivo Web.config, no elemento <system.web>, adicione um elemento <roleManager> e defina seu atributo enabled como true.

  2. Defina o atributo defaultProvider como SqlRoleProvider.

  3. Como um filho para o elemento <roleManager>, adicione um elemento <providers>.

  4. Como um filho do elemento <providers>, adicione um elemento <add> com os seguintes atributos definidos como valores apropriados: name, type, connectionStringName e applicationName, conforme mostrado no exemplo a seguir.

    <!-- Configure the Sql Role Provider. -->
    <roleManager enabled ="true"
     defaultProvider ="SqlRoleProvider" >
       <providers>
         <add name ="SqlRoleProvider"
           type="System.Web.Security.SqlRoleProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipAndRoleProviderSample"/>
       </providers>
    </roleManager>
    

Configurar o serviço para usar o provedor de funções

  1. No arquivo Web.config, adicione um <elemento system.serviceModel>.

  2. Adicione um elemento <behaviours> ao elemento <system.ServiceModel>.

  3. Adicione um <serviceBehaviors> ao elemento <behaviors>.

  4. Adicione um elemento <behavior> e defina o atributo name com um valor apropriado.

  5. Adicione um <serviceAuthorization> ao elemento <behavior>.

  6. Defina o atributo principalPermissionMode como UseAspNetRoles.

  7. Defina o atributo roleProviderName como SqlRoleProvider. O exemplo a seguir mostra um fragmento da configuração.

    <behaviors>
     <serviceBehaviors>
      <behavior name="CalculatorServiceBehavior">
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"
                             roleProviderName ="SqlRoleProvider" />
      </behavior>
     </serviceBehaviors>
    </behaviors>
    

Confira também