ASP.NET: vários objetos de sessão em um único aplicati

Tenho um aplicativo Web ASP.NET em execução na raiz do servidor web que fornece vários sites (semelhantes) usando o redirecionamento de URL. Para dar um exemplo do mundo real:

http://webshopserver/company1/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company1
http://webshopserver/company2/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company2
...

Isso funciona muito bem; o único problema é que, obviamente, todas essas lojas diferentes compartilham o mesmo objeto de sessão (já que o gerenciador de sessões InProc armazena o objeto de sessão no AppDomain). Gostaria que as lojas da empresa1 e da empresa2 tivessem objetos de sessão diferentes, de modo que, por exemplo, se um usuário abrisse as lojas da empresa1 e da empresa2 em guias diferentes da mesma janela do navegador, os itens colocados no carrinho de compras da empresa1 ganhassem aparece no carrinho da empresa2.

Existem algumas abordagens óbvias para resolver esse problema que eu não gosto:

Criar meu próprio objeto Session, que encapsula tudo em um HashMap <CompanyName, qualquer que seja> e o armazena na sessão "real": Que quebra todo o código existente que usa o objeto de sessãUse URLs comohttp: //company1.webshopserver e um registro DNS curinga, porque o cookie de ID da sessão está vinculado ao domínio: Isso é feio (porque o equivalente no mundo real de "webshopserver" já é longo o suficienteEscreva meu próprio provedor de sessões personalizado: Seria como reinventar a roda.Crie um aplicativo IIS separado para cada empresa: Não funcionará, porque a criação de novas empresas deve ser possível através de algo comohttp: //webshopserver/CreateYourOwnWebshop.asp sem qualquer intervenção humana (administrador do servidor) posteriorment

Estou pensando em uma solução mais parecida com:

estringindo o caminho do cookie da sessão parahttp: // webshopserver / <nome da empresa> / ou dizendo ao ASP.NET para usar AppDomains diferentes, dependendo da UR

ortanto, qualquer informação sobre como obter um desses pontos (ou talvez uma solução completamente diferente) seria úti

questionAnswers(4)

yourAnswerToTheQuestion