2011-12-14 28 views
1

我已經爲MVC2編寫了自定義成員資格提供程序。客戶會員供應商MVC2和請求中的當前用戶

我在各方面的意見有一個具體的問題,並控制我第一次使用下面的代碼:

CbMembershipProvider cb_prov_ = (CbMembershipProvider)Membership.Provider; 

,並在行動得到了登錄的用戶信息,我居然也得到了用戶的信息如下:

cb_prov_.User.user_id_; 

但這段代碼的問題是,如果我以「用戶1」,並在同一時間,「用戶2」登錄,並要回「用戶1」屏幕,我看到「用戶2」的數據,意義正在獲取最後登錄的用戶數據。

然後我在網上搜索,我需要實現提供者的getUser方法。現在我做到了,並在當我需要當前用戶信息每個控制器的動作我使用下面的調用:

User user= cb_prov_.GetUser(System.Web.HttpContext.Current.User.Identity.Name); 

現在,當我測試是成功的一半解決了這個問題,這意味着如果我打開IE瀏覽器,第一個選項卡我以用戶1登錄並在第二個選項卡用戶2中登錄,然後返回到選項卡1,然後再次輸入用戶2信息。

但是,如果我與用戶1在IE瀏覽器和用戶2與鉻登錄,事情似乎工作正常。

有人可以幫我解決這個問題嗎?

回答

1

IE(與幾乎所有的瀏覽器一樣)一次只支持一個會話,因此在標籤1和標籤2之間只有一個會話,這意味着當您在新標籤中登錄用戶2時,用戶1會話將被註銷,因爲它在同一個會話中。您可以使用隱私瀏覽模式在IE中進行第二次會話,在FF和Chrome中(隱身模式)也是如此。

與Facebook或任何其他服務中的不同用戶一起嘗試它,您將無法在單獨的瀏覽器會話中登錄到兩個不同的帳戶。

+0

我理解並感謝您的意見。如果標籤2中的用戶2登錄,如何使標籤1用戶1註銷? – Hekim 2011-12-15 07:55:18