Compartilhar via


Implementando o exemplo do provedor de função

Descreve o provedor de função de exemplo e o esquema da fonte dados suportada.

Os tópicos a seguir incluem o código para uma implementação do exemplo do provedor de função.O provedor de exemplo usa o .NET Framework Data Provider para ODBC para conectar-se a uma fonte de dados ODBC.O exemplo usa um banco de dados Access como fonte de dados.

Este tópico descreve como implementar o provedor de perfil de exemplo e configurar um aplicativo ASP.NET para usar o provedor de exemplo.

Observação:

Como as fontes de dados contêm diferentes sintaxes SQL, alguns comandos irão funcionar com uma fonte de dados e não com outra.Portanto, você deve criar um provedor função específico para sua fonte de dados, mesmo se você estiver usando o .NET estrutura provedor de dados para ODBC ou o .NET estrutura provedor de dados para OLEDB para acessar seus dados fonte, para exemplo, SybaseProfileProvider ou OracleProfileProvider.

Para exibir o código para o provedor de exemplo, consulte Como: Implementando o exemplo do provedor de função.

Esquema de banco de dados

O provedor de função de exemplo usa duas tabelas de banco de dados para gerenciar informações de função: uma tabela de funções que contém os nomes de funções e nomes de aplicativo e uma tabela UsersInRoles que é usada para associar um nome de usuário nome da função de um aplicativo.

Para criar as tabelas do Access utilizadas pelo provedor de exemplo, crie a seguinte consulta de definição de dados em um banco de dados Access novo ou existente.

CREATE TABLE Roles
(
  Rolename Text (255) NOT NULL,
  ApplicationName Text (255) NOT NULL,
    CONSTRAINT PKRoles PRIMARY KEY (Rolename, ApplicationName)
)

CREATE TABLE UsersInRoles
(
  Username Text (255) NOT NULL,
  Rolename Text (255) NOT NULL,
  ApplicationName Text (255) NOT NULL,
    CONSTRAINT PKUsersInRoles PRIMARY KEY (Username, Rolename, ApplicationName)
)

Acesso a Log de eventos

Se o provedor exemplo encontrar uma exceção ao trabalhar com a fonte de dados, ele grava os detalhes de exceção para o log de eventos do aplicativo ao invés de retornar a exceção para o aplicativo ASP.NET.Isso é feito como uma medida de segurança para evitar expor informações particulares sobre a fonte de dados no aplicativo ASP.NET.

O provedor de exemplo especifica um evento Source de "OdbcMembershipProvider".Antes de seu aplicativo ASP.NET ser capaz de gravar o log de eventos do aplicativo com êxito, será necessário criar a chave de registro a seguir.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OdbcRoleProvider

Se você não desejar que o provedor de exemplo grave as exceções no log de eventos, em seguida, você pode definir o atributo writeExceptionsToEventLog para false no arquivo Web.config.

Criando o provedor exemplo

Para usar o Provedor exemplo, você pode colocar seu código-fonte no Diretório App_Code do seu aplicativo.Observe que se você já tiver código-fonte no Diretório App_Code do seu aplicativo, você deve adicionar a versão do provedor de exemplo que está escrita na mesmo linguagem que o código existente no Diretório.O provedor será compilado pelo ASP.NET quando seu aplicativo for solicitado.

Você pode também compilar o provedor de exemplo como uma biblioteca e colocá-lo no Diretório Bin do seu aplicativo da Web, ou fortemente denomine-o e coloque-o no GAC.O comando a seguir mostra como compilar o provedor de exemplo usando o compilador de linha de comando.

vbc /out:OdbcRoleProvider.dll /t:library OdbcRoleProvider.vb /r:System.Web.dll /r:System.Configuration.dll
csc /out:OdbcRoleProvider.dll /t:library OdbcRoleProvider.cs /r:System.Web.dll /r:System.Configuration.dll

Usando o provedor exemplo em um aplicativo ASP.NET

O exemplo a seguir mostra o arquivo Web.config para um aplicativo ASP.NET configurado para usar o Provedor exemplo.O exemplo usa um DSN ODBC " nomeado RolesDSN " para obter informações de conexão para o banco de dados Access.Para usar o Provedor de exemplo, será necessário criar o DSN do sistema " RolesDSN " ou fornecer uma sequência de conexão ODBC válida com seu banco de dados.

A configuração exemplo supõe que seu site da Web esteja configurado para usar autenticação de formulários Backup e inclui uma página ASP.NET chamada Login.aspx que permite que os usuários efetuem logon.

<configuration>
  <connectionStrings>
    <add name="OdbcServices" connectionString="DSN=RolesDSN;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" />
      <forms loginUrl="loginvb.aspx"
        name=".ASPXFORMSAUTH" />
    </authentication>

    <authorization>
      <deny users="?" />
    </authorization>

    <roleManager defaultProvider="OdbcRoleProvider" 
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="false"
      cookieSlidingExpiration="true"
      cookieProtection="All" >
      <providers>
        <clear />
        <add
          name="OdbcRoleProvider"
          type="Samples.AspNet.Roles.OdbcRoleProvider"
          connectionStringName="OdbcServices" 
          applicationName="SampleApplication" 
          writeExceptionsToEventLog="false" />
      </providers>
    </roleManager>

  </system.web>
</configuration>

Consulte também

Conceitos

Implementar um provedor de função

Outros recursos

Gerenciando Autorização Usando Funções

Protegendo sites da Web ASP.NET