2013-01-23 63 views
2

嗨,大家好我一些幫助管理,如果我們可以說用戶會話模擬Asp.net MVC多個用戶會話/用戶模擬

我已經作用模式在我的應用程序來實現,以保持它的簡單讓說,我有2角色

  • 系統管理
  • 普通用戶

當用戶登錄到他們得到重定向到其特定的模塊EX系統:如果用戶是管理員他們重定向到管理部分,到目前爲止,沒有任何問題,這只是給你一些上下文。

系統管理員的一個功能是能夠模擬普通用戶帳戶,這樣他們就可以像普通用戶一樣執行任何操作,我這樣做的方式很簡單我只記錄了系統管理員並重新登錄了系統管理員,作爲用戶身份驗證,問題是當同一管理員想同時在多個帳戶中時,按照該方法我用最新信息覆蓋cookie會話,所以如果我有2個標籤,例如我決定去當我刷新選項卡時,系統管理員將獲得的信息是最新的,因此我在考慮嘗試混合無Cookie會話以將所有信息混合到URL中的可能性,理論上有多個asp.net會話。

所以問題是如果這是可能的,如果系統默認使用cookie存儲,我可以讓系統同時運行嗎?我可以默認使用cookie系統,並通過編程設置無cookie系統嗎?

我只是不想在所有操作中手動傳遞用戶ID,並通過查詢字符串自己堅持這些信息,因爲在這個階段實際上會破壞我的代碼,我將不得不重構一大段系統

任何評論將完全歡迎!

回答

0

在同一瀏覽器中不能同時打開兩個身份。

兩種選擇來我的頭:

  • 詢問管理員打開其他瀏覽器或不同的用戶相同的瀏覽器(Chrome瀏覽器的情況下),同時操作兩個身份。
  • 更改應用程序的方法:不要更改身份,請向管理員提供與用戶的下拉菜單。該操作將使用該用戶執行以檢索數據或其他內容。 (當然取決於你的應用程序)
+0

嗨愛德華多謝謝你的回答,我會堅持第一選擇,但唯一的問題是,用戶需要從瀏覽器的選項中激發那個動作,用戶傾向於懶惰或者他們不知道山楂要做到這一點... –

0

這看起來很老,但如果有人想知道,您可以在AuthenticateRequest事件在應用程序生命週期與GenericIdentityGenericPrincipal或您自己的過程中更換用戶的身份實現IPrincipalIIdentity接口的類。你如何確定哪些請求應該改變身份,哪些不應該基於會話變量(我傾向於避免這些),以模擬所有窗口/選項卡,或者可能是一個查詢字符串或表單字段以制定特定的選項卡/ Windows作爲其他用戶的功​​能。在請求期間設置HttpContext.Current.User是暫時的,並且不會更改它們的Cookie。