This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

HttpSessionState الفئة

Visual Studio 2010

يوفر الوصول إلى قيم الولاية جلسة عمل أيضا جلسة ذات المستوى إعدادات و طرق إدارة مدة بقاء.

مساحة الاسم:  System.Web.SessionState
التجميع:  System.Web (في System.Web.dll)

public sealed class HttpSessionState : ICollection, 
	IEnumerable

ASP.NET توفر إدارة الولاية جلسة عمل إلى تتيح لك إلى معلومات sإلىre المقترن بجلسة عمل مستعرض فريداً عبر عدة طلبات. يمكنك تخزين مجموعة من قيم المشار إليها بواسطة اسم المفتاح أو الفهرس الرقمي. يتوفر الوصول إلى جلسة عمل قيم ووظائف استخدام HttpSessionStateفئة، والتي يمكن الوصول إليها من خلال Sessionالخاصية الحالي HttpContext، أو Sessionخاصية Page.

بيانات جلسة العمل هو المقترن بجلسة عمل مستعرض معين باستخدام معرّف فريد. بشكل افتراضي، th هو معرّف هو المخزنة في ملف تعريف ارتباط جلسة عمل غير انتهاء في مستعرض، ولكن يمكنك أيضا تكوين تطبيق الخاص بك بتخزين معرّف جلسة العمل في URL بتعيين cookielessالسمة إلى trueأو UseUriفي العنصر sessionState من تكوين تطبيق الخاص بك. يمكن أن تحدد ما إذا كانت ملفات تعريف الارتباط التي يدعمها مستعرض بواسطة تحديد القيمة من ASP.NET UseDeviceProfilecookielessسمة. يمكنك أيضا الحصول على تحديد ما إذا كان يتم ممكّن ملفات تعريف الارتباط الخاصة بالمستعرض ASP.NET بواسطة تحديد القيمة من AutoDetectcookielessالسمة. إذا كان يتم اعتماد ملفات تعريف الارتباط عند UseDeviceProfileهو محدد، أو ممكّن متى AutoDetectهو ثم تحديد معرّف جلسة عمل التي سيتم تخزينها في ملف تعريف ارتباط؛ otherwهوe معرّف جلسة عمل التي سيتم تخزينها في URL.

جلسات العمل التي تم بدء تشغيلها أثناء الطلب أول وقيم جلسة سوف persهوt كما طويلة كطلب جديد هو التي تمت بواسطة مستعرض قبل عدد الدقائق المعين في Timeoutpass. خاصية عند جلسة عمل جديدة تبدأ، جلسة Startحدث هو raهوed. يمكنك استخدام هذا حدث إلى القيام بأي عمل إضافي في بداية جلسة عمل، مثل إعداد الافتراضي قيم جلسة العمل. جلسة عمل عند انقضاء المهلة المحددة، Abandonأسلوب هو يسمى، تطبيق ASP.NET أو هو إيقاف، جلسة العمل Endحدث هو raهوed. يمكنك استخدام هذا حدث إلى تنفيذ أي تنظيف الضرورية. End حدث هو raهوed فقط عند الولاية جلسة عمل modeهو تعيين إلى InProc.

لتحسين الأداء، جلسات العمل التي تستخدم ملفات تعريف الارتباط لا يخصص التخزين جلسة عمل إلى أن بيانات هو المخزن بالفعل في Sessionالكائن. لمزيد من المعلومات، انظر الخاصية SessionID.

لم تستمر الولاية جلسة عمل عبر حدود تطبيق ASP.NET. إذا كان مستعرض بالانتقال إلى تطبيق آخر، والمعلومات جلسة هو غير متوفرة للتطبيق الجديد.

يتم تخزين قيم جلسة عمل في ذاكرة تشغيل الخادم ويب، بواسطة الافتراضي. يمكنك أيضا تخزين قيم جلسة عمل في قاعدة بيانات SQL الخادم أو الخادم الولاية ASP.NET على الخادم مخصص. يتيح لك ذلك إلى المحافظة على جلسة عمل قيم في الحالات الموقع إعادة تطبيق ASP.NET أو عملية ASP.NET أو IIS و إلى توفير القيم جلسة العمل عبر الجميع الملقمات في تكتل ويب. Th هو سلوك هو المكونة بتعيين modeالسمة لصالح SessionStateModeالقيمة في العنصر sessionState من تكوين تطبيق الخاص بك. لمزيد من المعلومات، راجع أوضاع حالة جلسة العمل.

بدائل لالولاية جلسة عمل تضمين الولاية التطبيق (راجع Applicationالخاصية) و ذاكرة تخزين مؤقت ASP.NET (راجع System.Web.Cachingمساحة الاسم)، متغيرات مخزن التي يمكن الوصول إليها من قبل الجميع مستخدمين من تطبيق ASP.NET؛ يحلل ASP.NET (انظر System.Web.Profileمساحة الاسم)، التي استمرت القيم مستخدم في مخزن بيانات دون انتهاء باستخدام مهلة؛ ASP.NET System.Web.UI.WebControls، التي تستمر قيم عناصر تحكم في ViewStateCookies؛ QueryStringالخاصية؛ و الحقول في نموذج HTML التي توفرها HTTP POSTاستخدام Formمجموعة. للحصول على تفاصيل أكثر حول الاختلافات بين الولاية جلسة عمل و بدائل إدارة الحالات الأخرى، راجع توصيات إدارة حالة ASP.NET.

مجموعات مثال التعليمة البرمجية التالية و استرجاع قيم من الولاية جلسة عمل.

ملاحظة الأمانملاحظة الأمان

يحتوي هذا المثال على مربع نص يقبل إدخال المستخدم و الذي يعد تهديد أمان محتمل. بشكل افتراضي، تتحقق صفحات ويب ASP.NET من أن مُدخلات المستخدم لا تتضمن برنامج نصي أو عناصر HTML. لمزيد من المعلومات، راجع نظرة عامة حول عمليات استغلال البرنامج النصي.


<%@ Page Language="C#" %>
<%@ Import Namespace="System.Collections" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  public void Page_Load(object sender, EventArgs args)
  {
    if (!IsPostBack)
    {
      if (Session["address"] == null)
      {
        enterUserInfoPanel.Visible = true;
        userInfoPanel.Visible = false;
      }
      else
      {
        enterUserInfoPanel.Visible = false;
        userInfoPanel.Visible = true;

        SetLabels();
      }
    }
  }

  protected void SetLabels()
  {
    firstNameLabel.Text = Session["firstName"].ToString();
    lastNameLabel.Text = Session["lastName"].ToString();
    addressLabel.Text = Session["address"].ToString();
    cityLabel.Text = Session["city"].ToString();
    stateOrProvinceLabel.Text = Session["stateOrProvince"].ToString();
    zipCodeLabel.Text = Session["zipCode"].ToString();
    countryLabel.Text = Session["country"].ToString();
  }

  protected void EnterInfoButton_OnClick(object sender, EventArgs e)
  {
    Session["firstName"] = Server.HtmlEncode(firstNameTextBox.Text);
    Session["lastName"] = Server.HtmlEncode(lastNameTextBox.Text);
    Session["address"] = Server.HtmlEncode(addressTextBox.Text);
    Session["city"] = Server.HtmlEncode(cityTextBox.Text);
    Session["stateOrProvince"] = Server.HtmlEncode(stateOrProvinceTextBox.Text);
    Session["zipCode"] = Server.HtmlEncode(zipCodeTextBox.Text);
    Session["country"] = Server.HtmlEncode(countryTextBox.Text);

    enterUserInfoPanel.Visible = false;
    userInfoPanel.Visible = true;

    SetLabels();
  }

  protected void ChangeInfoButton_OnClick(object sender, EventArgs args)
  {
    enterUserInfoPanel.Visible = true;
    userInfoPanel.Visible = true;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <meta http-equiv="Content-Type" content="text/html" />
  <title>User Information</title>
</head>
<body>
  <form id="form1" runat="server">
    <h3>
      User information</h3>
    <asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br />
    <asp:Panel ID="enterUserInfoPanel" runat="server">
      <table cellpadding="3" border="0">
        <tr>
          <td>
            First name:</td>
          <td>
            <asp:TextBox ID="firstNameTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Last name:</td>
          <td>
            <asp:TextBox ID="lastNameTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Address:</td>
          <td>
            <asp:TextBox ID="addressTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            City:</td>
          <td>
            <asp:TextBox ID="cityTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            State or Province:</td>
          <td>
            <asp:TextBox ID="stateOrProvinceTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Zip Code/Postal Code:</td>
          <td>
            <asp:TextBox ID="zipCodeTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Country:</td>
          <td>
            <asp:TextBox ID="countryTextBox" runat="server" /></td>
        </tr>
        <tr>
          <td>
            &nbsp;</td>
          <td>
            <asp:Button ID="enterInfoButton" runat="server" Text="Enter user information" OnClick="EnterInfoButton_OnClick" /></td>
        </tr>
      </table>
    </asp:Panel>
    <asp:Panel ID="userInfoPanel" runat="server">
      <table cellpadding="3" border="0">
        <tr>
          <td>
            Name:</td>
          <td>
            <asp:Label ID="firstNameLabel" runat="server" />
            <asp:Label ID="lastNameLabel" runat="server" />
          </td>
        </tr>
        <tr>
          <td valign="top">
            address:</td>
          <td>
            <asp:Label ID="addressLabel" runat="server" /><br />
            <asp:Label ID="cityLabel" runat="server" />,
            <asp:Label ID="stateOrProvinceLabel" runat="server" />
            <asp:Label ID="zipCodeLabel" runat="server" /><br />
            <asp:Label ID="countryLabel" runat="server" />
          </td>
        </tr>
        <tr>
          <td>
            &nbsp;</td>
          <td>
            <asp:Button ID="changeInfoButton" runat="server" Text="Change user information" OnClick="ChangeInfoButton_OnClick" /></td>
        </tr>
      </table>
    </asp:Panel>
  </form>
</body>
</html>


System.Object
  System.Web.SessionState.HttpSessionState

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0, 1.1, 1.0
إظهار: