1
我已經建立了一個存儲庫獲取用戶的詳細信息ASP.NET - 如何緩存訪問期間的用戶詳細信息?
Public Function GetUserByOpenID(ByVal openid As String) As User Implements IUserRepository.GetUserByOpenID
Dim user = (From u In dc.Users
Where u.OpenID = openid
Select u).FirstOrDefault
Return user
End Function
而且我希望能拉這些細節上下IF用戶在登錄,如果緩存的數據爲空。
創建一個包含所有用戶詳細信息的用戶對象的最佳方式是什麼,並在整個網站訪問期間堅持它?
我想在我的Global.asax中這樣做,但我並不是很高興使用會話變量。我寧願擁有一個包含所有細節的對象。
Private Sub BaseGlobal_AcquireRequestState(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.AcquireRequestState
If Session("UserName") Is Nothing AndAlso User.Identity.IsAuthenticated Then
Dim repo As UrbanNow.Core.IUserRepository = New UrbanNow.Core.UserRepository
Dim _user As New UrbanNow.Core.User
_user = repo.GetUserByOpenID(User.Identity.Name)
Session("UserName") = _user.UserName()
Session("UserID") = _user.ID
End If
End Sub
感謝。我猜會話變量仍然是要走的路。 – 2010-06-15 05:58:04