国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C# 中對(duì) Session 的“(string)”、“.ToString()”與“Conv...

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

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

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

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

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

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

它們的值都為 ""。

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

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

 

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

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

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

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

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

 

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

最簡(jiǎn)單的方法就是用 Convert.ToString

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

 

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

 

session有效時(shí)間默認(rèn)為20分鐘,這個(gè)時(shí)間是指,當(dāng)用戶登錄后,如果沒有任何動(dòng)作,即不在web上有請(qǐng)求.將維持這個(gè)用戶的身份有效時(shí)間是20分鐘,如果這個(gè)用戶一直與web有請(qǐng)求操作,那么,這個(gè)時(shí)間一直沒有算在20分鐘內(nèi),即,如果用戶登錄后,即便操作一個(gè)小時(shí),那么也不會(huì)出現(xiàn)超時(shí),除非用戶與服務(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對(duì)象在頁面之間傳值

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

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

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

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

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

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

使用Session驗(yàn)證用戶登錄

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

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

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

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

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

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Jquery 之Ajax方法$.get() 的運(yùn)用,擴(kuò)展鏈接模型的天地
Application, Session, Cookie, Viewstate, Cache對(duì)象用法和區(qū)別(轉(zhuǎn))
EL表達(dá)式的常用方式
同一時(shí)間同一用戶只能登陸一次
JAVA基礎(chǔ):JAVA幾個(gè)常見錯(cuò)誤簡(jiǎn)析
NHibernate快速指南(翻譯
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服