Quando instalamos a estrutura de Membership do ASP.NET 2.0, temos uma tabela que armazena o nome das aplicações (aspnet_Applications) que estão sendo acomodadas dentro daquele servidor SQL Server. Essa tabela possui uma coluna chamada ApplicationName e, se valor é exposto através de uma propriedade estática, também chamada ApplicationName, da classe Membership.
A propriedade ApplicationName da classe Membership trata-se de uma propriedade de escrita/leitura. Sendo assim, voce pode alterar o nome da aplicação em tempo de execução e, a partir dai, passar a executar todos os métodos baseados nesta aplicação. Eis um exemplo:
Response.Write(Membership.ValidateUser(“israel”, “passw0rd”).ToString());
Membership.ApplicationName = “NomeDaOutraAplicacao”;
Response.Write(Membership.ValidateUser(“israel”, “passw0rd”).ToString());
Apesar de funcionar, devemos nos atentar a questão do acesso em um ambiente multithreading, como é o caso do ASP.NET. Como a estrutura de Provider Model armazena e compartilha uma única instancia do provider ativo (padrão Singleton), a alteração em um local refletirá em todas as requisições e, conseqüentemente, podemos ter comportamentos inesperados. Geralmente isso só funcionaria em uma aplicação administrativa, que permitisse apenas um único usuário por vez acessando-a.