麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

Asp.net中安全退出時清空Session或Cookie的實例代碼

2024-07-10 13:31:35
字體:
來源:轉載
供稿:網友

概覽:

網站中點擊退出,如果僅僅是重定向到登錄/出頁面,此時在瀏覽器地址欄中輸入登錄后的某個頁面地址如主頁,你會發現不用登錄就能訪問。這種所謂的退出并不是安全的。

那么怎樣做到安全退出呢?

那就是點擊退出后清空相應的Session或Cookie。

清空Session的代碼:

Session.Clear();Session.Abandon();

清除Cookie的正確代碼(假設Cookie名稱為UserInfo):

if (Request.Cookies["UserInfo"] != null){Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);}

如果需要清除所有Cookie,則遍歷:

for (int i = 0; i <Response.Cookies.Count; i++){Response.Cookies[i].Expires = DateTime.Now.AddDays(-1);}

清除Cookie的錯誤代碼(假設Cookie名稱為UserInfo):

if (Request.Cookies["UserInfo"] != null){Response.Cookies.Remove("UserInfo");}

你會發現,這樣處理后,Cookie依然存在,為什么就是刪不掉呢?我們去看看.NET的HttpCookieCollection實現源碼:

public void Remove(string name){if (this._response != null){this._response.BeforeCookieCollectionChange();}this.RemoveCookie(name);if (this._response != null){this._response.OnCookieCollectionChange();}}

這個操作在HttpCookieCollection這個集合里面刪除了cookie,當服務器將數據傳輸到客戶端的時候,不會包含這個已經在服務端刪除了的Cookie的任何信息,瀏覽器也就不會對它做任何改變(remove方法只是不讓服務器向客戶機發送那個被刪除的cookie,與此cookie留不留在客戶機里無關)。所以cookie刪除不掉的情況就出現。

既然Response.Cookies.Remove沒有辦法實現我們需要的效果,為什么微軟還有留著呢,因為CookieCollection實現ICollection接口,romove是必須實現的方法,盡管它沒多大的實際價值。而集合的romove也應該是這樣的實現方式,只不過微軟在寫MSDN的時候,描述得太不清楚了,給我們造成了不小的麻煩。

下面就總結下實現安全退出的幾種方式:

1).用Linkbutton,Button等服務器控件實現退出

這種方式最好處理:直接在服務器控件對應的事件里編寫清空Session或Cookie的代碼即可。

2).用<a>注銷</a>等HTML標記實現退出

對于<a></a>這個特殊標記,可以這樣實現: <a href="logout.aspx">注銷</a> ,在logout.aspx的Page_Load事件中編寫清空Session或Cookie的代碼即可。

對于<a></a>等HTML標記,可以在HTML標記的相應client事件中用Js-Ajax,或者jQuery-Ajax,在一般處理程序(.ashx)中編寫清空Session或Cookie的代碼即可。

對于<a></a>等HTML標記,還可以這樣:在當前頁面添加一個服務器控件如Button,用div包含,并讓其隱藏(注意:隱藏不可見,不能通過服務器屬性Visible=False,只能通過設置div的display:none;來實現),在Button的服務器事件Cilck里編寫清空Session或Cookie的代碼;然后在HTML標記的相應client事件中用Js或者jQuery調用Button控件的Click事件即可(通過服務器屬性Visible=False設置Button隱藏,Js或者jQuery調用Button控件的Click事件將失效)。

以上所述是小編給大家介紹的Asp.net中安全退出時清空Session或Cookie的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜精品视频免费观看 | 999精品国产 | 日韩中文字幕三区 | 日本在线免费观看视频 | 55夜色66夜色国产精品视频 | 久久久久免费精品国产小说色大师 | 日韩午夜片 | 亚洲片在线观看 | 九九热九九热 | 99在线啪 | 国产xxxxx在线观看 | 国产精品久久久久久久成人午夜 | 综合国产一区 | 日韩欧美激情视频 | 电影91| 牛牛热这里只有精品 | 日韩黄色免费在线观看 | 夜夜夜操操操 | 色七七久久影院 | 色99久久 | 久久91精品国产91久久yfo | 7777在线视频免费播放 | 黄色大片在线免费看 | hd性videos意大利复古 | 亚洲日本韩国精品 | 在线中文字幕播放 | 国产成人精品一区二区视频免费 | 国产精品久久久久久久模特 | 日本黄色大片免费 | 色婷婷一区二区三区 | 国产18成人免费视频 | 一级大黄毛片 | 97视频一二区 | 一日本道久久久精品国产 | 日韩精品一二三区 | 国产一级毛片在线看 | 男女亲热网站 | 欧美一区在线观看视频 | 在线视频 欧美日韩 | 色播视频网站 | 男女羞羞视频在线免费观看 |