Pergunta

Estou trabalhando em um site que tem um requisito para compartilhar sessão entre um aplicativo CMS e um aplicativo de loja on -line no mesmo domínio, por exemplo.

mydomain.com

e

store.mydomain.com

Eu fiz algum progresso com ele e funciona na minha construção local entre

localhost/cms

e

localhost/store

Basicamente, eu fiz o que é sugerido neste artigo

http://blogs.msdn.com/toddca/archive/2007/01/25/sharing-asp-net-session-state-across-applications.aspx

e hackeou o procedimento armazenado do tempgetAppid para retornar o mesmo ID do aplicativo (1). Isso parece funcionar, pois cria sessões com IDs como 'abv5d2urx1asscfwuzw3wp4500000001', que é o que eu esperaria.

Meu problema é que, quando o implanto em nosso ambiente de teste, ele cria uma nova sessão quando navego entre os 2 sites. Então, quando inicio uma sessão no site do CMS, se eu navegar para a loja, ela cria uma nova sessão. Estes são configurados como 2 sites diferentes no IIS7.

Nos arquivos web.config para ambos os sites, os elementos e os dois são os mesmos e são os seguintes (menos informações confidenciais)

Alguém tem idéias por que isso pode não estar funcionando? Estou compartilhando a autenticação de formulários nos 2 sites e isso funciona bem. Qualquer ajuda ou sugestões são bem vindos!

Muito Obrigado

Dave

Foi útil?

Solução

Parece que o problema que estávamos tendo era que o domínio de cookies da sessão estava sendo definido de maneira diferente nos 2 aplicativos. Isso significava que cada aplicativo gerou sua própria sessão.

Nós adicionamos<httpCookies domain=".ourdomain.co.uk" /> para o nosso web.config e isso parece ter resolvido isso. Obrigado pela ajuda, espero que isso ajude outra pessoa no futuro.

Outras dicas

Persiste todos os dados da sessão no SQL-Server, usando o ID da sessão como chave. Em seguida, use um cookie contendo o ID da sessão que aponta para .mydomain.com Portanto, estará disponível nos dois subdomínios.

este artigo em 15 segundos cobre o assunto e até mostra uma técnica para compartilhar sessões em domínios completamente diferentes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top