2014-10-27 89 views
0

我正在使用表單身份驗證的MVC .NET項目。我試圖製作一個網站的副本並將其發佈到IIS(不同的虛擬目錄)上。我注意到我無法同時驗證這兩個站點:當我訪問一個站點時,我會自動斷開與另一站點的連接。爲了使用戶能夠同時訪問它們,應該改變什麼?這是一個餅乾問題?在IIS上覆制粘貼網站 - 身份驗證問題

我這麼認爲,因爲當我檢查網站元素很明顯,_ASPXAUTH cookie具有相同的價值爲他們兩個。我應該改變什麼?

回答

1

它是一個cookies問題?

是的,最有可能的。這兩個網站之間的SSO非常依賴於它們託管的域名。如果它們託管在同一頂級域名(如site1.example.com和site2.example.com)下的2個子域中,則只需在表單身份驗證中設置域屬性即可實現它們之間的SSO cookie來.example.com,並確保這兩個應用程序共享同一臺機器按鍵:

<authentication mode="Forms"> 
    <forms protection="All" domain=".example.com" /> 
</authentication> 
<machineKey validationKey="XXXXX" decryptionKey="XXX" validation="SHA1" decryption="AES" /> 

如果2點都在不同的頂級域名,如example1.comexample2.com,那麼你需要做更多的工作,以實現跨域SSO。你可以在this answer找到一些細節。


UPDATE:

我可能會誤解你的問題。看起來您不希望在網站之間擁有SSO,而是需要單獨的身份驗證。在這種情況下,所有你需要的是有不同的cookie名稱對他們倆的:

<forms name="SITE1AUTH" /> 

和:

<forms name="SITE2AUTH" />