Gerenciamento de conexões no Banco de Dados em páginas ASP.NET

Olá, galera do GUJ!
Tudo bem?

Bom, eu tô pensando aqui em um meio de tratar a conexão com o banco de dados que a minha página WEB requisitará.
Quando eu crio aplicações Desktop, eu faço minha classe de conexão da seguinte maneira:

[code]
public class ConnectionHelper
{
private ConnectionHelper()
{
providerFactory = DbProviderFactories.GetFactory(“System.Data.OracleClient”);
}
public DbConnection RecuperarConnection()
{
try
{
if (connection == null)
{
connection = providerFactory.CreateConnection();
connection.ConnectionString = “MinhaStringDeConexão”;
connection.Open();
transaction = connection.BeginTransaction();
}
return connection;
}
catch (OracleException errOracle)
{
throw errOracle;
}
catch (Exception err)
{
throw err;
}
}

public void Commit()
{
    try 
    {	        
        transaction.Commit();
        transaction = null;
        connection = null;
    }
    catch (OracleException errOracle)
    {
        throw errOracle;
    }
}

public void Rollback()
{
    try 
    {	        
        transaction.Rollback();
        transaction = null;
        connection = null;
    }
    catch (OracleException errOracle)
        {
        throw errOracle;
    }
}

}[/code]

Beleza: com isso, eu mantenho uma única conexão aberta por vez. Ela só é “commitada” ou “rollbackada” quando eu fizer a chamada dos métodos nas classes superiores. Portanto, minha conexão fica aberta para consultas, inserções, atualizações, deleções e outros. Quando chamo o Commit ou o Rollback, essa conexão é fechada e uma nova é criada.

Eu queria fazer algo parecido na WEB. A cada usuário que entrar na página, ele “ganha” uma conexão. Essa conexão fica disponível enquanto ele não clicar em um botão ou alterar algum registro que faça o sistema chamar o Commit ou o Rollback. Alguém tem ideia de como eu posso tratar isso?

Valeu, abraços!