程序员看淘宝,如何用Session保存用户状态(2)_ASP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

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

2. 跳转界面的代码:(防止用户通过URL直接跳转到该界面,每次界面都要进行判断)

  1. public partial class Main : System.Web.UI.Page  
  2.    {  
  3.        //窗体加载  
  4.        protected void Page_Load(object sender, EventArgs e)  
  5.        {  
  6.            //根据Session对象保存的用户登陆状态判断用户是否登录  
  7.            if (Session["UserFlag"].ToString () == "false")  
  8.            {  
  9.                //如果未登录,则直接跳转到登录界面  
  10.                Response.Redirect ("Login.aspx");  
  11.            }  
  12.        }  
  13.    } 

解决方案二:通过提供一个中介judge.aspx界面,每个跟账户有关的界面跳转之前都跳转到该界面,通过该界面加载的时判断用户的登录状态。

1. 登录页面代码不变

2. judge.aspx页面代码:

  1. public partial class judge : System.Web.UI.Page  
  2.     {  
  3.         protected void Page_Load(object sender, EventArgs e)  
  4.         {  
  5.             //对Session对象进行判断用户的状态  
  6.  
  7.             if (Session["flag"].ToString()=="false")  
  8.             {  
  9.                 Response.Write("未登录");  
  10.             }  
  11.  
  12.             /*else  
  13.             {  
  14.                 Response.Redirect("Main.aspx");//加上这句话会造成死循环  
  15.             }*/ 
  16.         }  
  17.     } 

3. 跳转界面代码:

  1. public partial class Main : System.Web.UI.Page  
  2.     {  
  3.         protected void Page_Load(object sender, EventArgs e)  
  4.         {  
  5.             //跳转页面必须经过判断,防止直接登录该页面,而不进行登录。  
  6.             Server.Execute("judge.aspx");//通过执行Server对象的Execute方法  
  7.         }  
  8.     } 

总结:两种解决方案原理相同,通过Session对象保存用户状态,不同页面都可以通过访问该用户的Session对象的会话值来判断该用户的状态。解决方案二只是简化了判断过程,通过Server对象的Execute方法先执行中介判断界面,然后回归到原程序执行顺序。

补充:

Server对象

语法:Server.Execute(path)

用途:这个方法是 IIS5.0 新增的功能,用途类似程序语言中的函数调用,也就是说,您可以在 ASP 程序中使用 Server.Execute(path)方法调用 Path 指定的 ASP 程序,待被调用的程序执行完毕之后再返回原来的程序,继续执行接下来的指令。

Session对象

在网站中,每个新访问的用户都将产生自己的session(回话)对象。这个session对象在服务器端进行管理,只能为当前访问的用户服务。如果另一个用户进入网站,也将拥有自己的session对象,两个用户的session对象即使同名,也不能共享。

        :更多精彩教程请关注模板无忧电脑教程栏目,模板无忧电脑办公群:189034526欢迎你的加入

分享: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下一页
来源:模板无忧//所属分类:ASP教程/更新时间:2015-06-11
相关ASP教程