ASP.NET Tutorial/Sessions/Session class
Содержание
- 1 Session.Abandon()
- 2 Session.CodePage
- 3 Session.Contents.RemoveAll()
- 4 Session.CopyTo
- 5 Session.IsCookieless
- 6 Session.IsNewSession
- 7 Session.IsReadOnly
- 8 Session.Item
- 9 Session.Keys
- 10 Session.LCID
- 11 Session.Mode
- 12 Session.Remove
- 13 Session.RemoveAll
- 14 Session.RemoveAt
- 15 Session.StaticObjects
- 16 Session.Timeout
- 17 Use Session and Server.Transfer to create a wizard
Session.Abandon()
<source lang="csharp">
<%@ Page %> <script language="C#" runat="server"> private void Page_PreRender(object sender, EventArgs e) {
if(Session["UserName"] != null) UserNameLabel.Text = Session["UserName"].ToString();
} private void SaveButton_Click(object sender, System.EventArgs e) {
Session["UserName"] = UserNameTextBox.Text;
} private void AbandonButton_Click(object sender, System.EventArgs e) {
Session.Abandon();
} </script> <html>
<body> <form id="form1" method="post" runat="server"> Update UserName in Session: <asp:TextBox id="UserNameTextBox" runat="server"></asp:TextBox> <asp:Button id="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click"></asp:Button> Current Session Contents:
<asp:Label ID="UserNameLabel" Runat="server" EnableViewState="False"></asp:Label>
<asp:Button id="RefreshButton" runat="server" Text="Refresh Without Saving"></asp:Button>
Abandon Session - takes effect on *next* request since current request is still referring to Session.
<asp:Button id="AbandonButton" runat="server" Text="Abandon Session" OnClick="AbandonButton_Click"></asp:Button> <a href="Default.aspx">VB Version - same session</a> </form> </body>
</html></source>
Session.CodePage
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Message.Text = "Current Code Page is: " & Session.CodePage End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.Contents.RemoveAll()
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Session.Contents.RemoveAll() Message.Text = "Removed all items from current Session." End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.CopyTo
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() If Session.Count > 0 Then Dim myArray As Array = Array.CreateInstance(GetType(Object), _ Session.Count) Session.CopyTo(myArray, 0) Message.Text = "The first item in the array is: " & myArray(0) End If End Sub </script> </head>
<body>
<form runat="server"> <asp:label id="Message" runat="server"/> </form>
</body> </html></source>
Session.IsCookieless
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() If Session.IsCookieless Then Message.Text = "The current Session does not use cookies." Else Message.Text = "The current Session uses cookies." End If End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.IsNewSession
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() If Session.IsNewSession Then "Session("foo") = "foo" Message.Text = "The current Session (SessionID: " & _ Session.SessionID & ") was created with this request." Else Message.Text = "The current Session (SessionID: " & _ Session.SessionID & ") existed prior to this request." End If End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.IsReadOnly
<source lang="csharp">
<%@ Page Language="vb" EnableSessionState="ReadOnly" %> <html>
<head> <script runat="server"> Sub Page_Load() If Session.IsReadOnly Then Message.Text = "The current Session (SessionID: " & _ Session.SessionID & ") is read-only for this page." Else Session("foo") = "foo" Message.Text = "The current Session (SessionID: " & _ Session.SessionID & ") can be written to from this page." End If End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.Item
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Session.Item("foo") = "foo" Session.Item("foo2") = "foo2" Message.Text = Session.Item("foo") & "</br>" Message.Text &= Session.Item(1) End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.Keys
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Dim Key As String Message.Text = "Session Keys:" For Each Key in Session.Keys Message.Text &= "</br>Key:" & Key Message.Text &= "</br>Value:" & Session(Key) Next End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.LCID
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Message.Text = "Current locale ID is: " & Session.LCID & "</br>" Message.Text &= "Current date and time is: " & DateTime.Now() & "</br>" Session.LCID = 1036 "France Message.Text &= "Current locale ID is: " & Session.LCID & "</br>" Message.Text &= "Current date and time is: " & DateTime.Now() & "</br>" End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.Mode
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>Session property example</title> <script runat="server"> Sub Page_Load() Message.Text = "Current Session State Mode: " & Session.Mode.ToString() End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Session.Remove
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() If Not Session("foo") Is Nothing Then Session.Remove("foo") Message.Text = "Item "foo" was removed." Else Message.Text = "Item "foo" does not exist." End If End Sub </script> </head>
<body>
<form runat="server"> <asp:label id="Message" runat="server"/> </form>
</body> </html></source>
Session.RemoveAll
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() If Session.Count > 0 Then Session.RemoveAll() Message.Text = "Session collection cleared." Else Message.Text = "Session collection is already empty." End If End Sub </script> </head>
<body>
<form runat="server"> <asp:label id="Message" runat="server"/> </form>
</body> </html></source>
Session.RemoveAt
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() If Session.Count > 0 Then Session.RemoveAt(0) Message.Text = "The item at index 0 was removed." Else Message.Text = "The item at index 0 does not exist." End If End Sub </script> </head>
<body>
<form runat="server"> <asp:label id="Message" runat="server"/> </form>
</body> </html></source>
Session.StaticObjects
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Message.Text = "There are " & Session.StaticObjects.Count & _ " objects declared with the " & _ "<object runat="server"> syntax in Session scope." Dim myobj As Object For Each myObj in Session.StaticObjects If myObj.Value.GetType.ToString() = _ "System.Web.UI.WebControls.TextBox" Then myForm.Controls.Add(myObj.Value) End If Next End Sub </script> </head>
<body>
<form id="myForm" runat="server"> <asp:label id="Message" runat="server"/> </form>
</body> </html></source>
Session.Timeout
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <script runat="server"> Sub Page_Load() Message.Text = "Current Session timeout value is " & _ Session.Timeout & " minutes." End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Use Session and Server.Transfer to create a wizard
<source lang="csharp">
<%@Page language="c#" runat="server" Debug="true" %> <script runat="server"> protected void Page_Load(object o, EventArgs e) {
if(IsPostBack) { Session["theName"] = (string)theName.Text; Server.Transfer("Default.aspx", false); }
} </script> <form runat="server">
Name: <asp:textbox id="theName" runat="server" /> <asp:button type="submit" id="submitStep1" runat="server" Text="Go"/>
</form> File: Default.aspx
<%@Page language="c#" runat="server" %> <script runat="server"> protected void Page_Load(object o, EventArgs e) {
if(IsPostBack) { Session["theHobby"] = theHobby.Text; Server.Transfer("NextPage.aspx"); }
} </script> <form runat="server">
Hobby: <asp:textbox id="theHobby" runat="server"/> <asp:button type="submit" id="submitStep2" runat="server" Text="Go"/>
</form> File: NextPage.aspx <%@Page language="c#" runat="server" %> <script runat="server"> protected void Page_Load(object o, EventArgs e) {
theFinalName.Text = (string)Session["theName"]; theFinalHobby.Text = (string)Session["theHobby"];
}
</script>
<form runat="server">
Done!
Name: <asp:label id="theFinalName" runat="server" />
Hobby: <asp:label id="theFinalHobby" runat="server" />
</form></source>