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

O provedor de função ASP.NET (em conjunto com o provedor de associação ASP.NET) é um recurso que permite aos desenvolvedores de ASP.NET criar sites que permitem que os usuários criem uma conta com um site e recebam funções para fins de autorização. Com este recurso, qualquer usuário pode estabelecer uma conta com o site, e fazer login para acesso exclusivo ao site e seus serviços. Isso contrasta com a 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 de nome de usuário e senha) pode usar o site e seus serviços.

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

O recurso de provedor de função usa um banco de dados do SQL Server para armazenar informações do usuário. Os desenvolvedores do Windows Communication Foundation (WCF) podem aproveitar esses recursos para fins de segurança. Quando integrado em um aplicativo WCF, os usuários devem fornecer uma combinação de nome de usuário/senha para o aplicativo cliente WCF. Para habilitar o WCF para usar o banco de dados, você deve criar uma instância da ServiceAuthorizationBehavior classe, definir sua PrincipalPermissionMode propriedade como UseAspNetRolese adicionar a instância à coleção de comportamentos para o ServiceHost que está hospedando o serviço.

Configurar o provedor de função

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

  2. Defina o defaultProvider atributo como SqlRoleProvider.

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

  4. Como filho ao <providers> elemento , adicione um <add> elemento 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ção

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

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

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

  4. Adicione um <elemento de comportamento> e defina o name atributo como um valor apropriado.

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

  6. Defina o principalPermissionMode atributo como UseAspNetRoles.

  7. Defina o roleProviderName atributo 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>
    

Consulte também