|
|
1
1
会议就是为了这个目的而设计的。它为用户的“会话”的生命周期存储相关数据,我认为这是20分钟或者用户关闭浏览器。如果您关心用户对象的大小,您可以只存储ID,然后从DB中检索对象,但是您必须权衡DB往返的利弊。但是,我不认为它通常与会话有关,因为它不像ViewState那样发送到客户端。您也可以使用一个属性公开这个session值,就像好奇的Geek的例子一样,但是使用session对象而不是ViewState对象。 在母版页上设置属性将不起作用,因为它只是当前实例化类的一个成员,该类在每个请求结束时都会被垃圾收集,因此在下一个请求中不会有它。 以下是ASP.NET中状态管理的摘要: http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx |
|
|
2
0
我同意你的看法
你仍然可以超越这一点 仅在视图状态下存储用户标识 并在公共页基类中公开一个属性,该属性将从视图状态读取UserId并返回User对象。 |
|
|
3
0
到目前为止,最好的解决方案如下:
然后在任何webpage.aspx.cs上,您可以执行以下操作:
各种类和后面的代码现在看起来整洁多了,因为我不需要每次使用会话时都从会话中读取和转换我的用户对象(和公司对象等)。 |