2008-11-19 13 views
6

Mam dwa aplikacji ASP.NET zamieszkałych w dwóch różnych folderach na moim serwerze:osobne aplikacje korzystające z tej samej sesji ASP.Net Cookie

  • /Foo < - to średnia niezabezpieczonych aplikacji
  • /Secure < - jest to oddzielna aplikacja, która wymaga SSL IIS

problemem jest to, że domyślnie ASP.NET_SessionId cookie jest określony w domenie i jest wspólna między dwiema aplikacjami w różnych katalogach. Potrzebuję innego pliku cookie sesji, ponieważ nie mogę zezwolić na przejęcie pliku cookie pod numerem /Foo, aby umożliwić dostęp do aplikacji /Secure.

Idealnie byłoby, gdyby każdy plik cookie aplikacji był ograniczony przez właściwość cookie cookie Path. Najwyraźniej nie można tego zrobić w .Net po wyjęciu z pudełka.

Jako dodatkowy ból głowy, nawet jeśli piszę niestandardowy kod, aby ustawić ścieżkę pliku cookie, jestem przerażony, że niektóre przeglądarki są wielkość liter i nie będą korzystać z tego samego pliku cookie sesji dla /Foo i /foo, które w zależności od sposobu łącza są budowane, może powodować wiele sesji w tej samej aplikacji.

Czy ktoś napotkał i przezwyciężył ten problem?

Odpowiedz

9

W .Net 2.0 i wyżej można ustawić atrybut "cookieName" elementu XML "sessionState" w pliku web.config na różne wartości dla każdej aplikacji. To uniemożliwi im korzystanie z tego samego identyfikatora sesji.

Here's the MSDN reference for this.

+0

nowe połączenie http://msdn.microsoft.com/en- us/library/h6bb9cz9 (v = vs.80) .aspx – Palani

0

Wygląda na to, że znajdują się tylko w oddzielnych katalogach wirtualnych, ale nadal znajdują się w tej samej puli aplikacji. Jeśli naprawdę chcesz, aby aplikacje były oddzielne, spróbuj utworzyć kolejną pulę aplikacji dla swojej/bezpiecznej aplikacji.

0

Sprawdź ikonę dla swojego folderu /Secure w IIS.

Jeśli ma ikonę cog, to oddzielna aplikacja, a sesje powinny być inne, a aplikacja będzie działać we własnej aplikacji.

Jeśli jest to ikona globu, to jest to katalog wirtualny i będzie udostępniać tę samą sesję co strona główna i /Foo.

1

jeśli używasz uwierzytelniania formularzy, to trzeba także zmienić cookie formularze w web.config:

<forms name="Foo"... 
<forms name="Secure"... 
Powiązane problemy