C# 会话还是Cookies?最常用

C# 会话还是Cookies?最常用,c#,session,cookies,C#,Session,Cookies,我想存储一些数据,以便在下一页中使用,然后将其插入数据库,如 Trip.TripID Trip.BookingDate Trip.Adult Trip.Chile 数一数有多少次旅行 此使用的对象是什么?如果是小尺寸的对象,则可以将其存储到会话中。您唯一应该关心的是会话是在服务器端维护的 您可以将对象存储在seision-like中 Session["TripObject"] = TripObject; 然后把它取回来 Trip sessionTripObject = (Trip) Sess

我想存储一些数据,以便在下一页中使用,然后将其插入数据库,如

Trip.TripID
Trip.BookingDate
Trip.Adult
Trip.Chile
数一数有多少次旅行

使用的对象是什么?如果是小尺寸的对象,则可以将其存储到会话中。您唯一应该关心的是会话是在服务器端维护的

您可以将对象存储在seision-like中

Session["TripObject"] = TripObject;
然后把它取回来

Trip sessionTripObject = (Trip) Session["TripObject"];

您在会话和cookie之间的决定涉及很多事情,但是对于“单个会话”中页面之间只需要的小块数据,最好使用会话


如果要使用持久性的通用数据,如果你使用Cookie,那么你应该注意cookies中丢失数据的可维护性

会话不止一次咬过我。p> IMO客户机状态不属于服务器,而不属于数据库(特别是当您需要扩展到多个服务器时,在这种情况下,会话将失败,您仍然需要使用数据库/会话服务器将其退出)


鉴于您几乎肯定已经在使用cookies来保持用户登录,您可以轻松地存储另一个cookies。

在会话中存储短时间值是对服务器内存的浪费。您可以在第二页中检索时释放它,但如果用户关闭浏览器会发生什么?在会话超时之前,这些值一直在浪费内存,在常见场景中,会话超时时间大约为30分钟

正如activwerx所说,Cookies可以被禁用,如果数据有危险,则必须加密

在行程列表的第一页中使用公共属性,使用Page.PreviousPage重定向和检索行程列表

基本代码:

从源页面获取公共属性值的步骤 在源页面上,创建一个或多个公共属性并保存页面

Public ReadOnly Property CurrentCity() As String
    Get
        Return textCity.Text
    End Get
End Property
public String CurrentCity
{
    get
    {
        return textCity.Text;
    }
}
注 源页面上创建的属性主要用于显示跨页面发布的值,这些属性通常是只读属性。尽管源页面可以包含公共读/写属性,但从目标页面属性设置源页面属性通常没有任何意义,因为该值不会持久化

在目标页面上,添加指向源页面的
@PreviousPageType
页面指令

以下代码示例显示引用名为SourcePage.aspx的源页面的PreviousPageType指令

<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 
<asp:Button 
  ID="Button1" 
  PostBackUrl="~/TargetPage.aspx"
  runat="server"
  Text="Submit" />
使用指向TargetPage的帖子

SourcePage.aspx

<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 
<asp:Button 
  ID="Button1" 
  PostBackUrl="~/TargetPage.aspx"
  runat="server"
  Text="Submit" />


Server.Transfer(targetPage)

会话!。。。Cookie可能会被禁用,此外,欧盟正在制定新的法规,在该法规中,您必须询问您的目标受众是否允许使用Cookie。Cookie!会话不会在回收过程中保留,也不能很好地扩展到多个服务器。我想这可能会有宗教色彩。投票结束。你如何进入下一页?您可以始终在页面上的post参数/查询字符串中保留数据,而不使用Cookie或session。如何使用session在本例中,我可以创建一个session,但使用一个值,我希望在一个session名称中保存多个值。@AhmedSharkawy,您可以将Trip对象存储到该session,然后将其检索回来,您不需要在会话中单独存储每个值