乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C# 中對 Session 的“(string)”、“.ToString()”與“Conv...

       悟靜 2012-01-31

      在實際操作當(dāng)中,我們經(jīng)常會遇到將 Session 的值轉(zhuǎn)為 String 去判斷是否為空或者判斷是否有權(quán)限訪問某頁,這里的轉(zhuǎn)換過程如果用得不恰當(dāng)會拋出異常,給訪問者帶來不好的用戶體驗。這里我把它寫成筆記,以供參考。

      一、當(dāng) Session["a"] == null 時,

      Session["a"].ToString() 拋出異常;

      (string)Session["a"] 為 null;

      Convert.ToString(Session["a"]) 為 ""。

      二、當(dāng) Session["a"] == "" 時,

      它們的值都為 ""。

      所以,在判斷 Session["a"] 是否有值時,如果用“.ToString()”,那么必需按照下面的格式與順序?qū)懀?/P>

      if (Session["a"] != null && Session["a"].ToString() != "")

       

      在這里,要注意判斷的順序:先判斷是否為 null,再判斷是否為 empty。如果 Session["a"] 為 null,則 Session["a"] != null 為 false 自然不會執(zhí)行 .ToString(),也就不會報錯;如果 Session["a"] 不為 null,則執(zhí)行 .ToString() 也不會報錯。

      同理 if (Session["a"] == null || Session["a"].ToString() == "") 此句也合法可用。

      用 .ToString() 的方法寫格式比較固定,如果換成用 (string) 寫,會比較自由:

      if ((string)Session["a"] != null && (string)Session["a"] != "")

      if (Session["a"] != null && (string)Session["a"] != "")

       

      這兩種寫法都是可行的,而且對 null 和 empty 的判斷順序沒有關(guān)系。

      最簡單的方法就是用 Convert.ToString

      if (Convert.ToString(Session["aaa"]) == "")

       

      不管 Session["a"] 為 null 還是 empty,Convert.ToString(Session["aaa"]) 都是 empty。

       

      session有效時間默認為20分鐘,這個時間是指,當(dāng)用戶登錄后,如果沒有任何動作,即不在web上有請求.將維持這個用戶的身份有效時間是20分鐘,如果這個用戶一直與web有請求操作,那么,這個時間一直沒有算在20分鐘內(nèi),即,如果用戶登錄后,即便操作一個小時,那么也不會出現(xiàn)超時,除非用戶與服務(wù)器之間掉線

      Web.config文件中的Session配置信息
      <sessionState
      mode="InProc"
      stateConnectionString="tcpip=127.0.0.1:42424"
      sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
      cookieless="false"
      timeout="20"
      />

       使用Session對象在頁面之間傳值

      使用Session對象可以在頁面之間傳值,但是需要注意的是不能在Session對象中存儲過多的數(shù)據(jù),否則服務(wù)器會不堪重負,另外當(dāng)不再需要seesion對象時,應(yīng)及時釋放該對象。

      例如,使用Session對象來傳送用戶的登錄名,在另一頁中,將用戶的登錄名顯示出來。

      使用Session對象保存用戶登錄名的代碼如下:

           Session.Remove("UserName");
            Session["UserName"] = txtName.Text;
             Response.Redirect("NavigatePage.aspx");

      在NavigatePage.aspx頁面中,將Session對象的值顯示在界面上,其代碼如下:

         if (Session["UserName"] == null)
           {
             Response.Redirect("Default.aspx");
           }
             else
            {
              Label1.Text =Session["UserName"].ToString();
      }

      使用Session驗證用戶登錄

      在ASP.NET中,利用Session對象驗證用戶是否登錄的方法很簡單,例如在本實例中,當(dāng)用戶安全登錄時,可以利用如下代碼保存用戶的登錄名,并跳轉(zhuǎn)到NavigatePage.aspx中。

         if (txtName.Text == "mr" && txtPassword.Text == "mrsoft")
           {
                Session["UserName"] = txtName.Text.Trim();
                Response.Redirect("NavigatePage.aspx");
           }

      在NavigatePage.aspx頁面中,當(dāng)頁面加載時,首先判斷Session對象中是否有值,如果有值,則進行其他操作;否則,則返回到登錄頁中。其主要代碼如下:

           if (Session["UserName"] == null)
                 Response.Redirect("Default.aspx");
            else
              {
                     //其他操作
              }

      注意:Session對象默認失效期為20分鐘,用戶也可以在Web.Config中對其進行設(shè)置,其代碼如下:

           <system.web>
                  <sessionState   timeout="40" />
           </system.web>

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多