2013-05-21 26 views
1

試想一下,當你創建一個新的MVC4項目,並開始使用SimpleMembership註冊一個帳號,你登錄使用Remember Me複選框。在兩個MVC項目中共享登錄?爲什麼?

現在,當您創建另一個MVC 4項目,應用程序試圖使用以前的帳號來洛,但因爲它不存在拋出一個錯誤。我的意思是,如果一個網頁登錄,另一個使用同一個帳戶。

如何才能避免這種情況,我想必須與ForgeryTokens或類似的東西

+0

你在web.config文件中使用不同的應用程序的名稱? –

+0

您是否在兩個項目中使用相同的域和端口? –

+0

不,我應該配置哪些屬性? –

回答

1

定製cookie的名稱,以便它的每個應用程序是唯一的。

<authentication mode="Forms"> 
    <!-- **Defaults** timeout="30" slidingExpiration="true" --> 
    <forms name=".MyApplication" defaultUrl="~/" loginUrl="~/LogIn" /> 
</authentication> 
0

,如果您使用的機制單點登錄,然後它是一個引起爭議的情況下,但如果你不希望允許使用相同的帳戶相同的身份驗證到另一個網站,那麼要確保這兩個項目的web.config文件必須有不同的機器密鑰。

而且,這是因爲你的計算機上的cookie的發生被設置爲true,創建的cookie文件,並允許使用這種餅乾信息給其他項目的訪問。

<認證/>

0

這是因爲當網頁服務的瀏覽器看到本地主機的域名。它保存了localhost的cookie。

當主機與本地主機在同一服務器上其他網站,然後在瀏覽器再次發送相同的cookie。

如果您在這兩個應用程序使用相同的cookie名,那麼系統將嘗試認爲用戶已經驗證,你會得到錯誤。

您可以更改web.config文件中的cookie名稱。

閱讀:

Can I change the FormsAuthentication cookie name?