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