2013-12-17 67 views
1

I have this picture傳遞用戶相關的數據,以期在ASP.NET MVC 4

在我的模型,視圖,控制器和的LocalDB的這張照片,在那一刻,我可以得到已登錄的人的用戶名出現在管理頁面上,但這些數據來自IPrincipal而不是來自控制器(我認爲),我不確定這是如何工作的。如果羅蘭目前登錄,我想將羅蘭的姓氏(例如)傳遞給我的管理視圖。您如何去做這件事?

回答

2

我目前正在開發一個企業系統,並有同樣的問題。考慮到你使用的是auth框架,你只能訪問你當前登錄的用戶ID和狀態,而不是其他信息(如果我錯了,請糾正我)。 我的解決方法是在會話中管理其他相關信息(在我的情況下是用戶名,id,個人資料)作爲「會話常量」。請仔細在USER LOGOUT上刪除此信息。代碼:會話[EnumSessionConsts.CurrentUserConst] = usr;其中usr是一個需要info的數據類型,而EnumSessionConsts包含變量的名稱爲const(不要硬編碼)。然後,在控制器(或視圖)中,您將可以訪問它。 重新!不要忘記刪除此信息。 希望這有助於!併爲我的英語感到抱歉。

+0

謝謝你的回答。我之前沒有使用過會話,所以需要一些時間來試試:)。 – JazzMaster

1

這很簡單。要保存對象的會話:

CurrentUserData cs = new CurrentUserData(); 
Session["UserData"] = cs; 

從會議retreive對象:

CurrentUserData c = (CurrentUserData)Session["UserData"]; 
String userName = c.UserName; 
String userSurname = c.UserSurname ; 

(請注意,你應該投給CurrentUserData,會話[ 「的UserData」] retreive的對象) 。


從會議

Session.Remove("UserData"); 

建議刪除的對象:管理會話變量名枚舉裏面,這樣你就不會硬編碼。 會話[EnumSessionConsts.CurrentUserConst](其中EnumSessionConsts.CurrentUserConst ==「userData」)。

PD。在ok登錄後設置你登錄的用戶數據(注意你總是可以保存會話中的對象)。

+0

歡呼聲幫忙m8! :d – JazzMaster