国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Asp.Net使用加密cookie代替session驗(yàn)證用戶登錄狀態(tài) 源碼分享

2019-11-17 01:47:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

asp.net使用加密cookie代替session驗(yàn)證用戶登錄狀態(tài) 源碼分享

首先 session 和 cache 擁有各自的優(yōu)勢(shì)而存在. 他們的優(yōu)劣就不在這里討論了.

本實(shí)例僅存儲(chǔ)用戶id于用戶名,對(duì)于多級(jí)權(quán)限的架構(gòu),可以自行修改增加權(quán)限字段

本實(shí)例采用vs2010編寫,vb和c#的代碼都是經(jīng)過(guò)測(cè)試的;一些童鞋說(shuō)代碼有問(wèn)題的 注意下

什么? 你還在用vs2008 vs2005? 請(qǐng)自行重載 帶有 optional 標(biāo)致的函數(shù)

童鞋們提到的 密碼修改后 要失效的問(wèn)題 當(dāng)時(shí)沒有想到 個(gè)人認(rèn)為 大致方向可以》

》1. 每個(gè)用戶生成1個(gè)xml 里面保存隨機(jī)的幾個(gè)字符 或者修改密碼的時(shí)間戳也行

》2.這個(gè)文件在用戶剛注冊(cè) 或修改密碼時(shí)候生成寫入; 寫入的同時(shí)需要更新當(dāng)前用戶的cookie 否則當(dāng)前用戶也會(huì)失效

》3. 在本實(shí)例的基礎(chǔ)上 加1個(gè)字段 內(nèi)容為 1中的若干字符 本實(shí)例在cookie寫入15分鐘后才會(huì)重新寫入新的cookie;可以在重新寫入cookie前 比對(duì)這幾個(gè)若干字符是否匹配 用 StreamReader 即可

》4. 以上不知 大家看懂了沒有呢

以下類實(shí)現(xiàn)了 使用加密cookie代替session驗(yàn)證用戶登錄狀態(tài) 支持 1小時(shí)/1周 有效期2種模式 (期間有新的請(qǐng)求則更新失效時(shí)間)

項(xiàng)目源碼下載地址http://www.370b.com/bbsx/cookie-login/cookie.rar

csdn下載地址http://download.csdn.net/detail/rayyu1989/4265766

在自定義字符 CustomCode 不被知道的情況下 該加密過(guò)程是相對(duì)安全的.你還可以更改其中 的 2處md5哈希值 生成的方式、DEChar(ENChar)混淆字符 讓代碼更與眾不同

歡迎大家拍磚

加密后的cookie值枚舉:

n=rayyu_EJPSiju2JJNeh5&u=VWpc9dv5v8e4APbbhJmSP+yifwZNEcyRy6V/RwzqV2pmo+x6hNLHI/pLlzl8+KgdWpMHtTTOYpGMe3tCrAIKkmeCrKG7BpSVUYF0piopz757NPb43Z4ehA==&i=56-76-68-35-4A-37-57-35

n=rayyu_P5O7ouiq5JVaMf&u=gWz/itCIlbupWCv7iziBuYCwT1SF4+IbyFbwa5Hmm+up4iuCxKMCl24+bLRb0Y/6RMyfzcpuJwu8gT/Yqg1UV1bd9UqgQYzrLdibP9zaXkYjYyT56gkCBg==&i=5B-65-54-34-6G-35-4C-45

n=rayyu_bNJuGxps3Kqtxl&u=kUorl6z713eYdjkhRidocZKHMh2Mw6j5LowmevsWiKZsn81dzlsPcH4fp1VJsi2dtObeYvMJTCybLrv45TsdLIT7nhZcQJdxKGn1oaK/7a3Ldfte6zoQQg==&i=4H-5B-53-6A-6H-75-32-4H

n=rayyu_TF0hpOgdGhliK8&u=1O9Zi4V9Qj2HH63dEfXaLaoj3X6ea9azIBjuLjFBJqhiTQefz2x161IIDpWaviJr1TTECBdb4NCIiFOEsEY9C4gl+/Equjc7tGpO12ixEkZz70bMg48M9w==&i=4H-4E-65-68-35-7A-5B-35

n=rayyu_9INryZvNo1pCKm&u=wQgRgtf+uy9jKQXJhr7DerZtFeYmm2Lx10Asgf52HTzkar9iHXkVaJJqHtwWA9K635QU4bGLYZPWl3nj0rxOhOe93ew+bIAR8FWr2zPwvfZ++TwB3670LQ==&i=4F-37-6F-75-6A-71-35-4H

客戶端可以獲取cookie的 n值 來(lái)簡(jiǎn)單判斷是否登錄 n為用戶名,配合靜態(tài)頁(yè)和緩存 動(dòng)態(tài)顯示登錄狀態(tài)

VB.NET調(diào)用: (Rayyu 是 namespace)

[vb]view plaincopy
  1. DimuserAsNewRayyu.User()'初始化用戶信息(檢測(cè)當(dāng)前請(qǐng)求用戶是否登錄)
  2. Ifuser.OnlineThen
  3. Response.Write("<br/>name:"&user.Name&",online:"&user.Online&",id:"&user.ID)
  4. EndIf
  5. Dimuser2AsNewRayyu.User(1,"用戶名",False)'初始化(寫入新用戶)

C#調(diào)用:(Rayyu 是 namespace)

[csharp]view plaincopy
  1. Rayyu.Useruser=newRayyu.User();//初始化用戶信息(檢測(cè)當(dāng)前請(qǐng)求用戶是否登錄)
  2. Rayyu.Useruser2=newRayyu.User(1,"用戶名",false);//初始化(寫入新用戶)false表示1小時(shí)true表示1周
  3. if(user.Online)
  4. {
  5. Response.Write("<br/>name:"+user.Name+",online:"+user.Online+",id:"+user.Id);
  6. }

VB.NET 源代碼:

[vb]view plaincopy
  1. ImportsSystem.Web
  2. ImportsSystem.Text.RegularExPRessions
  3. ImportsSystem.Text
  4. ImportsSystem.Security.Cryptography
  5. '''<summary>
  6. '''用戶登錄機(jī)制支持1小時(shí)/1周狀態(tài)
  7. '''</summary>
  8. '''<remarks></remarks>
  9. PublicClassUser
  10. #Region"自定義參數(shù)"
  11. '''<summary>
  12. '''自定義字符用于第一層加解密密匙
  13. '''</summary>
  14. '''<remarks></remarks>
  15. PrivateConstCustomCodeAsString="QQ:867863456"
  16. '''<summary>
  17. '''cookie名
  18. '''</summary>
  19. '''<remarks></remarks>
  20. PrivateConstCookieNameAsString="userinfo"
  21. '''<summary>
  22. '''Cookie作用域
  23. '''</summary>
  24. '''<remarks></remarks>
  25. PrivateConstCookieDomainAsString=".370b.com"
  26. '''<summary>
  27. '''編碼
  28. '''</summary>
  29. '''<remarks></remarks>
  30. PrivateSharedEncoderAsEncoding=Encoding.UTF8
  31. '''<summary>
  32. '''用戶名的正則檢測(cè)我的是:首位由字母或者漢字構(gòu)成,由字母、數(shù)字、下劃線、和漢字的2-20位的字符組合而成的
  33. '''</summary>
  34. '''<remarks></remarks>
  35. PrivateConstRegexUserNameAsString="[a-zA-Z/u4e00-/u9fa5][/w/u4e00-/u9fa5]{1,19}"
  36. '''<summary>
  37. '''區(qū)域化信息設(shè)置
  38. '''</summary>
  39. '''<remarks></remarks>
  40. PrivateSharedReadOnlyFormatAsGlobalization.CultureInfo=NewSystem.Globalization.CultureInfo("zh-CN",True)
  41. #EndRegion
  42. #Region"回調(diào)參數(shù)"
  43. '''<summary>
  44. '''是否在線
  45. '''</summary>
  46. '''<remarks></remarks>
  47. PublicReadOnlyPropertyOnlineAsBoolean
  48. Get
  49. Return_Online
  50. EndGet
  51. EndProperty
  52. Private_OnlineAsBoolean=False
  53. '''<summary>
  54. '''用戶ID(Online=true情況下使用)
  55. '''</summary>
  56. '''<remarks></remarks>
  57. PublicReadOnlyPropertyIdAsInteger
  58. Get
  59. Return_Id
  60. EndGet
  61. EndProperty
  62. Private_IdAsInteger
  63. '''<summary>
  64. '''用戶名(Online=true情況下使用)
  65. '''</summary>
  66. '''<remarks></remarks>
  67. PublicReadOnlyPropertyNameAsString
  68. Get
  69. Return_Name
  70. EndGet
  71. EndProperty
  72. Private_NameAsString
  73. '''<summary>
  74. '''有效期是否為7天
  75. '''</summary>
  76. '''<remarks></remarks>
  77. PublicReadOnlyPropertyIsWeekAsBoolean
  78. Get
  79. Return_IsWeek
  80. EndGet
  81. EndProperty
  82. PrivateReadOnly_IsWeekAsBoolean
  83. #EndRegion
  84. '''<summary>
  85. '''初始化用戶信息(檢測(cè)當(dāng)前請(qǐng)求用戶是否登錄)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 深泽县| 无为县| 长沙县| 伊春市| 鞍山市| 阿克苏市| 镇原县| 保康县| 察哈| 铁力市| 民权县| 嵩明县| 双牌县| 舞阳县| 清流县| 体育| 娱乐| 惠东县| 凌海市| 菏泽市| 湾仔区| 呼玛县| 长垣县| 郴州市| 盐津县| 奉节县| 莎车县| 克山县| 蒙阴县| 盐边县| 颍上县| 马尔康县| 夏河县| 鸡泽县| 娱乐| 鸡西市| 韶关市| 重庆市| 临颍县| 天台县| 十堰市|