2011-08-25 31 views
1

在我的應用程序中,我有一個數據庫表,其中包含用戶列表和相關的部門表。只要用戶模型是我正在操作的當前對象的屬性(從數據庫檢索),我沒有任何問題'深入'訪問用戶的部門名稱......或任何其他屬性的信息該用戶obj。MVC3 - 獲得身份驗證用戶的部門名稱

我希望能夠對當前通過身份驗證的用戶執行相同類型的數據訪問....顯然,這是完全不同的模型。任何人都可以告訴我是否有方法將屬性附加到已驗證的用戶模型,或者至少將其綁定到現有對象?

在此先感謝您的幫助!

更新: 我想澄清一下,我正在談論User AuthCookie。

回答

1

是的,您可以將其他信息添加到身份驗證Cookie,但您需要自行生成FormsAuthenticationTicket和Cookie。

設置用戶數據的一個很好的例子是here

,並得到它背出的一個例子是here

4

有一個叫FormsAuthenticationExtensions一個NuGet包,可以簡化您的身份驗證插入自定義數據所需的代碼曲奇餅。

例如,存儲你的數據,你這樣做:

var ticketData = new NameValueCollection 
{ 
    { "name", user.FullName }, 
    { "emailAddress", user.EmailAddress } 
}; 
new FormsAuthentication().SetAuthCookie(user.UserId, true, ticketData); 

而且把它找回來:

var ticketData = ((FormsIdentity) User.Identity).Ticket.GetStructuredUserData(); 
var name = ticketData["name"]; 
var emailAddress = ticketData["emailAddress"]; 
+0

感謝您的發現 - 覺得「錯」來查詢特定信息的數據庫每一個請求 – Tommy