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