首页 > 网站 > 建站经验 > 正文

程序员看淘宝,如何用Sessi!on保存用户状态

2019-11-02 15:49:24
字体:
来源:转载
供稿:网友

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

如上图:

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

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

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

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

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

1. 登录界面的代码:

public partial class Login : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {         }         protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)         {             Session["UserFlag"] = false;//首先设置会话值UserFlage表示用户是否登录             if (UserVolidate(Login1.UserName, Login1.Password) == true)//调用自定义方法,验证用户是否登录成功             {                 Session["UserFlag"] = true; //登录成功                 e.Authenticated = true;                 Response.Redirect("Main.aspx"); //跳转主界面             }             else{                 Response.Write("未登录"); //否则提示未登录             }         }         /// <summary>         /// 用户登录验证         /// </summary>         /// <param name="userName">用户名</param>         /// <param name="userPassword">用户密码</param>         /// <returns>bool</returns>         private bool  UserVolidate(String userName, String userPassword)         {             //连接数据库             SqlConnection con = new SqlConnection("server=.;database=User;uid=sa;pwd=123456;");             con.Open();             SqlCommand cmd=new SqlCommand ("select * from UserInfo where UserName="+userName +" and Password="+userPassword );             int num=cmd.ExecuteNonQuery ();             if (num>0)             {                return true;             }             else            {                 return false;             }         }              } 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表