见如下实例:

5-13 session对象实例(2)

当文本框中为空时,点击登陆按钮,出现提示对话框,如下图所示:

5-13 session对象实例(2)

该提示窗口有JavaScript编写完成,因为有C#编写的控件放在服务器端,这回增加服务器的负担,而JavaScript编写的控件是放客户端的;

监测控件中是否有内容,通常放在客户端来完成,从而减轻服务器的负担;


点击登陆按钮后的效果图:

跳转到登陆后的页面,Url并为发生变化,说明使用的是server.transfer方法进行的页面跳转,实现了跳转后的页面地址对用户的一个隐藏;

5-13 session对象实例(2)


点击退出登录按钮,返回原页面;

两个问题,如何添加JavaScript代码,如何在按钮中添加客户端事件(之前所学的双加按钮后添加的都是服务器事件,客户端事件)也交给JavaScript来做;

JavaScript用来完成客户端的检测以及客户端事件的编写,C#用来完成服务器事件的编写;

如果文本框只能怪无内容,点击登录按钮,则不发生页面跳转且出现提示窗口。如果文本框中有内容,点击登陆按钮,发生跳转页面,同时用session[uid]来保存文本框中的字符串,传到将要跳转的页面中,并加以显示;

注意:有时用户知道跳转页面的地址后,会省略登陆页面直接登陆跳转页面。为了规避此类情况,我们在跳转的页面中做一个检测,看是否有session[uid]的值,如果不存在,则强制返回登陆页面;


5-13 session对象实例(2)过程分析:


具体实现:

(一)在第一个页面(login)中完成一下内容:

登录按钮-》5-13 session对象实例(2)

此为原来的服务器端处理的控件事件(OnClick为服务器端的代码),如何改为在客户端处理的事件,如下:

添加该语句:5-13 session对象实例(2),这个语句的意思是执行JavaScript代码中的isempty()函数。接收该函数的返回值,如果是true(非空)则继续执行服务器端代码,否则不知心该服务器端代码;

补充:登陆按钮有 OnClientClick事件,用来调用JavaScript当中的函数,获取一个返回值true or false;


在head中添加javascript脚本,定义一个函数,用于在客户端监测文本框的内容是否为空:

如果是空的,返回false,执行客户端代码,如下:

5-13 session对象实例(2)

如果返回的是true,则执行服务器端代码,如下:

5-13 session对象实例(2)  

(二)在第二个页面(default3)完成一下内容:

我们希望在载入第二个页面时检测是否有sessionID,如果没有,说明用户非法登陆,要强制返回登陆页面,代码如下:

代码说明,如果sessionID为空,则返回login页面,否则在default3页面显示欢迎+session中的内容;

5-13 session对象实例(2)





相关文章:

  • 2021-05-02
  • 2022-03-02
  • 2022-01-04
  • 2021-08-01
  • 2021-07-20
  • 2021-09-30
猜你喜欢
  • 2021-11-14
  • 2022-12-23
  • 2021-07-26
  • 2022-12-23
  • 2022-01-08
  • 2021-08-29
  • 2021-07-06
相关资源
相似解决方案