2011-11-26 12 views
6

wiem cookie mogą być współużytkowane przez wielu subdomen przy użyciu ustawieniaForms Authentication całej subdomen na lokalnym IIS

<forms 
    name=".ASPXAUTH" 
    loginUrl="Login/" 
    protection="Validation" 
    timeout="120" 
    path="/"  
    domain=".mydomain.com"/> 

w pliku web.config. Ale jak powielić to samo na komputerze lokalnym. Używam Windows 7 i IIS 7 na moim laptopie. Mam więc witryny localhost.users/dla mojej rzeczywistej strony users.mysite.com localhost.host/ dla host.mysite.com i podobne.

Odpowiedz

9

localhost.users i localhost.host to domena krzyżowa. Pliki cookie nie mogą być współdzielone między domenami.

Można go skonfigurować tak, tak, że sub-domeny różni ale domenie głównej pozostaje taka sama:

  • users.localhost
  • host.localhost

teraz ustawić domenę ciasteczek w twojej sieci .config do localhost:

domain=".localhost" 

aw pliku c:\Windows\System32\drivers\etc\hosts dodać następujące wpisy 2:

127.0.0.1 users.localhost 
127.0.0.1 host.localhost 

Teraz będzie można z powodzeniem udostępniać cookie uwierzytelniania między users.localhost i host.localhost.

Ah, i nie zapomnij wprowadzić kroku w procesie zautomatyzowanej kompilacji, który przekształci wartość web.config w prawidłową domenę root przed wysyłką w produkcji.

+0

Dziękuję Darin, Jak ustawić to w IIS, gdy tworzyłem te strony ze studia wizualnego. – Parminder

+1

@Parminder, pytania konfiguracyjne IIS powinny być omówione na http://serverfault.com. –

+0

Darin, dzięki, zadałem to pytanie, ale czy ma sens zadawanie tego samego pytania w dwóch różnych miejscach. – Parminder

3

To jest przypomnienie dla każdego, kto działa w Framework 4.5 i próbuje udostępnić token ramom 4 i niższym, proszę zauważyć, że spowoduje to, że nie otrzymasz cookie auth w żadnej z 4 i niższych aplikacji. czyli: jeśli w swojej web.config masz:

<httpRuntime maxRequestLength="80480" targetFramework="4.5" /> 

można zmusić go do pracy przez usunięcie atrybutu targetFramework="4.5" aby zmusić go do pracy, choć nie wiem, czy są jakieś skutki uboczne w ten sposób:

<httpRuntime maxRequestLength="80480" /> 
+0

To pozwoliło mi zaoszczędzić na parach witryn korzystających z platformy .NET 4.5.1! –

+0

Nie udało mi się uwierzytelnić pracy w podrzędnej aplikacji. Działa z targetFramework = "4,5" w 2 plikach web.config. Dzięki – Troopers

Powiązane problemy