Olá,
Geralmente eu utilizo o Page_Load, ou seja, durante o carregamento da página, leio no banco de dados qual a categoria do usuário e disponibilizo somente as "features" que lhe são permitidas.
A disponibilização é feita através da habilitação pelo comando "botão.visible = True" ou "caixa de texto.visible = false", etc...
E ainda na mesma Page_Load, caso o usuário não devesse estar na página, antes de tudo faça um Response.Redirect("pagina.anterior.aspx")
Neste caso você faria isso para todas as páginas da solução que quisesse alguma segurança. Assim não haveria necessidade de implementação de esquema de permissão pela classe RoleProvider. A permissão estaria determinada no banco de dados sendo verificado
durante o Page_load, mesmo após o login.
Nunca tive problemas com isso. Espero que sirva.
Ney Limonge http://www.regclin.com/