6)管理员登陆之后会多一项后台管理的功能,由于管理员账户和用户账户是在同一张表中,进入聊天室加载页面时会判断Session中的UserName是否是admin,如果是admin就把后台管理的标签的Visible属性设为true,标签可见就能连接到后台管理界面。如果判断不是admin则把Visible属性设为false。
5.2.2 聊天模块的操作流程
1) 用户登陆:用户登陆并进行信息初始化;
2) 访问聊天页面:用户访问相应的聊天页面进行聊天操作;
3) 页面初始化:聊天页面能够初始化用户信息,包括有多少个用户在此聊天室;
4) 执行聊天操作:用户和一个用户或多个用户进行聊天操作;
5) 存储聊天信息:用户可以选择存储聊天信息或直接离开;
6) 离开聊天室:离开聊天室后需要刷新聊天室信息。
5.3 注册模块
(1)实现目标
注册页面实现为用户注册账户的功能,为进入聊天室提供通行证,主要实现以下功能:
1)无刷新验证用户名是否重复。
2)检验密码强度。
3)为注册用户提供提示功能。
(2)实现过程
1)向页面中添加ScriptManager、UpdatePanel、txtName、RequiredFieldValidator、RegularExpression等主要控件,并设置相应属性。界面设计如图所示:
2)无刷新的验证用户名是否重复,将检测用户名相关的控件放入UpdatePanel中,当文本框的光标移到下一行的时,UpdatePanel异步得查询数据,并不会造成整个页面的刷新,isNameFormar()先判断用户名的格式是否正确,然后使用使用IsName()方法,通过用户填入的用户名和数据库表Userinfo中的UserName对比是否有相同的,如果有则labIsname.text=”用户名已存在”,并且把颜色设置为红色,如果没有就把labIsname.text=”可以注册”,把颜色设置为蓝色。
3)密码强弱的验证是通过JS代码来时实现的,用户输入txtPass的长度如果大于6个字符,就把装入labStrong的表格颜色变成红色,小于6个字符则把装入labEbb的表格颜色变成红色,即实现了密码强度校验。
4)用户注册时右侧的提示信息,利用onFocus()事件,当文本框获取焦点时,调用相应的JS函数,把提示信息输出到一个div中。
5.4 资料与记录模块
(1)实现目标
资料与记录主要是修该用户资料和查看聊天记录模块。
实现如下功能:
1)用户修改密码
2)用户查询群聊记录。
(2)实现过程
1)向页面中添加ScriptManager1、UpdatePanel1、GridView1、SqlDataSource1、Panel等主要控件。
2)修改用户信息,是通过session传的UserName的值,去数据库user信息表中修改,修改密码时先BaseClass.getdata()方法判断用户输入的原始密码是否正确,正确之后通过BaseClass.ExecuteSQL()方法执行update操作,将新的密码保存到user中。修改邮箱与修改问题的方法和修改密码类似,点击页面上相应的button按钮就会出现相应的修改项,此功能是通过panel的隐藏与显示实现的,修改时此项无需判断用户的原始数据,直接进行update操作。由于界面中有ScriptManager控件,修改用户信息的操作全是放入UpdatePanel中的,因此用户提交修改信息之后页面是无刷新的,通过表单上面的lable标签显示是否修改成功。
3) 查看聊天信息,是通过GridView显示,通过配置SqlDataSource,在页面加载的时候就会加载群聊和私聊的记录。群聊是直接查询整张message私聊的时候是通过查询session传的UserName在message表中有关的记录,具体的SQL语句是:
SELECT * FROM [S_Msg] WHERE (([UserName] = @UserName) or ([toOther] = @toOther)); ASP.NET+Ajax技术在Web聊天室中的应用(4):http://www.751com.cn/jisuanji/lunwen_1267.html