程序员看淘宝,如何用Session保存用户状态

ASP教程 2025-08-30

推荐:ASP.NET七大身份验证方式及解决方案
在B/S系统开发中,经常需要使用身份验证。因为web应用程序非常特殊,和传统的C/S程序不同,默认情况下(不采用任何身份验证方式和权限控制手段),当你的程序在互联网/局域网上公开后,任何人都能够访问你的web应用程序的资源,这样很难保障应用程序安全性。通俗点来说:

网上购物已经成为现在生活不可缺少的一部分。我们上淘宝只是为了消费,今天换一个角度,用程序员的眼光看看淘宝。

如上图:

情况一:当打开一些和账户有关的网页,检测用户没有登录,系统自动会跳转到登录界面。

情况二:当检测到已经有用户登录,页面会自动跳转到目的页面。

问题:系统如何检测用户是否登录,如何保存用户的登录状态?

下面说说自己的理解:利用Session保存用户状态,

解决方案一:每个用户都有一个Session对象相对应,当用户想要跳转到任意跟账户有关的界面(已买到的宝贝页面),每个页面加载的时候都要判断Session对象保存的用户状态。

1. 登录界面的代码:

  1. publicpartialclassLogin:System.Web.UI.Page
  2. {
  3. protectedvoidPage_Load(objectsender,EventArgse)
  4. {
  5. }
  6. protectedvoidLogin1_Authenticate(objectsender,AuthenticateEventArgse)
  7. {
  8. Session[UserFlag]=false;//首先设置会话值UserFlage表示用户是否登录
  9. if(UserVolidate(Login1.UserName,Login1.Password)==true)//调用自定义方法,验证用户是否登录成功
  10. {
  11. Session[UserFlag]=true;//登录成功
  12. e.Authenticated=true;
  13. Response.Redirect(Main.aspx);//跳转主界面
  14. }
  15. else{
  16. Response.Write(未登录);//否则提示未登录
  17. }
  18. }
  19. ///
  20. ///用户登录验证
  21. ///
  22. ///用户名
  23. ///用户密码
  24. ///bool
  25. privateboolUserVolidate(StringuserName,StringuserPassword)
  26. {
  27. //连接数据库
  28. SqlConnectioncon=newSqlConnection(server=.;database=User;uid=sa;pwd=123456;);
  29. con.Open();
  30. SqlCommandcmd=newSqlCommand(select*fromUserInfowhereUserName=+userName+andPassword=+userPassword);
  31. intnum=cmd.ExecuteNonQuery();
  32. if(num>0)
  33. {
  34. returntrue;
  35. }
  36. else
  37. {
  38. returnfalse;
  39. }
  40. }
  41. }

分享:8 种提升 ASP.NET Web API 性能的方法
ASP.NET Web API 是非常棒的技术。编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能。 在本文中,我将介绍8项提高 ASP.NET Web API 性能的技术。 1) 使用最快的 JSON 序列化工具 JSON 的序列化对整个 ASP.NET Web API 的性

共2页上一页12下一页