我想使用MVC3自帶的相同ASP.NET成員資格提供程序數據庫運行兩個Web應用程序。因此兩個Web應用程序並排運行,並且它們都具有與同一成員數據庫相同的連接。現在的問題是,我只能登錄一個應用程序並自動註銷其他應用程序。但是,我想要的功能是,如果我登錄到其中一個,我會自動登錄到另一個。ASP.Net成員登錄問題
我想知道啓用此功能的技巧是什麼。
非常感謝
我想使用MVC3自帶的相同ASP.NET成員資格提供程序數據庫運行兩個Web應用程序。因此兩個Web應用程序並排運行,並且它們都具有與同一成員數據庫相同的連接。現在的問題是,我只能登錄一個應用程序並自動註銷其他應用程序。但是,我想要的功能是,如果我登錄到其中一個,我會自動登錄到另一個。ASP.Net成員登錄問題
我想知道啓用此功能的技巧是什麼。
非常感謝
如果您使用的是Forms Authentication,則會使用Cookie跟蹤用戶。默認情況下Cookie僅限於發送它們的應用程序。因此,其他應用程序無法看到第一個創建的身份驗證Cookie。因此,舉例來說,如果你有分別foo.example.com
舉辦了兩屆的應用程序和bar.example.com
你可以在這兩個應用程序的web.config
設置cookie的domain
屬性example.com
:
<forms
loginUrl="/login/index.mcp"
requireSSL="true"
protection="All"
timeout="120"
domain="example.com"
/>
這樣的cookie將那兩個應用程序之間共享並且您將能夠實現單點登錄。
Finanlly我修好了。 我的應用程序在同一個域下運行,因此域不是問題(但非常感謝Darin)。 問題是: IIS默認爲不同的Web應用程序生成不同的機器密鑰。所以我必須在web.config中明確指定相同的機器密鑰〜!
給Darin試圖幫助你的要點! – Jeremy 2011-05-11 04:24:18
那麼,我測試了它,它並沒有在我的機器上工作。我所做的就是在我的IIS網站「lwww.domain.com」中創建一個網站,然後將一個應用程序部署到根目錄中,另一個應用程序部署到根目錄下的單獨Web應用程序中。他們使用不同的應用程序池。我登錄到根目錄,但沒有得到自動登錄到孩子....任何幫助表示讚賞。 – Frank 2011-05-11 01:00:12
@ user299230,你在web.config中設置了'domain'屬性爲什麼?當您使用FireBug或Fiddler進行檢查時,您是否看到將身份驗證cookie發送到第二個應用程序?也可以嘗試設置兩個應用程序中的sama機器密鑰:http://msdn.microsoft.com/en-us/library/ff649308.aspx – 2011-05-11 05:19:50