Session_Start 出现一个问题不知如何解决

aspxbbs123 2009-03-28 11:49:35
想得到哪些用户在线 在onlineuser.aspx页面上显示:

在线用户列表为:

张三 2009-01-01 10:10 李四 2009-01-01 11:11
王武 2009-01-01 10:30 王六 2009-01-01 12:10


在 login.cs 中
protected void BtnLogin_Click(object sender, EventArgs e)
{
Session["userName"]=TextBox1.Text;
}

在 Global.asax 中
void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["online"] = Application["online"].ToString() + Session["userName"].ToString();
Application.UnLock();

}

运行 login.aspx 出错为:未将对象引用设置到对象的实例。




...全文
192 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
aspxbbs123 2009-03-29
  • 打赏
  • 举报
回复
login.cs中这样子就可以了,感谢11楼
protected void Button1_Click(object sender, EventArgs e)
{
Session["userName"] = TextBox1.Text;
Application.Lock();
Application["online"] = Application["online"].ToString() + Session["userName"].ToString();
Application.UnLock();
Response.Redirect("Default.aspx");

}
aspxbbs123 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 crazyminds110 的回复:]
session_start事件发生在用户登陆页面的时候,而你的session产生是在button-Click事件时产生的,还没有生成session变量怎么可以进行字符串相加呢
这样如何:
void Session_Start(object sender, EventArgs e)
{
Session.Add("userName", "session的值");
Application.Lock();
Application["online"] = Application["online"].ToString() + Session["userName"].ToStrin();
Application.UnLoc…
[/Quote]

首先大感谢各楼上。
在login.aspx 页面上如果输入用户名和密码正确才登陆到 default.aspx页面,也就是说
在 Session_Start事件发生时先给 Session.Add("userName", ""); 赋值一个空值。然后在login.aspx 页面上如果输入用户名和密码正确时再把 Session["userName"]=TextBox1.Text; 再登陆到 default.aspx页面,这种做法程序虽然没出错,但是Session["userName"]的值始终是空的。因为在Session_Start启动时赋值一个空值,我要得到的用户名是在login.aspx页面中输入的用户名,而不是一个空值。
如何才能得到 哪些用户在线? 有详细点的代码吗? login.cs和 Global.asax 的代码应如何写呢?请指教!
wuyq11 2009-03-28
  • 打赏
  • 举报
回复
http://www.cnblogs.com/luck200803/archive/2007/07/31/837641.html
wuyq11 2009-03-28
  • 打赏
  • 举报
回复
void Session_Start(object sender, EventArgs e)
{
Session.Add("userName", "");
}

判断是否为null
正宗熊猫哥 2009-03-28
  • 打赏
  • 举报
回复
应该不是你的login页面报的错。
syb1045 2009-03-28
  • 打赏
  • 举报
回复
Session["userName"]=TextBox1.Text;

要先判断是否session値为空
加个if条件先判断下
hon 2009-03-28
  • 打赏
  • 举报
回复
login.aspx 里面有什么?说的详细写。或者把代码贴出。
walkghost 2009-03-28
  • 打赏
  • 举报
回复

void Session_Start(object sender, EventArgs e)
{
Application.Lock();
try
{
Application["online"].ToString() ;
}
catch
{
Application["online"]="";
}
try
{
Application["userName"].ToString() ;
}
catch
{
Application["userName"]="";
}
finally
{
Application["online"] = Application["online"].ToString() + Session["userName"].ToString();
Application.UnLock();
}
}



路人乙e 2009-03-28
  • 打赏
  • 举报
回复
session_start并不是发生在用户登陆后,而发生在用户第一次请求该应用程序
所以用户列表赋值应该放在login中
stonehy520 2009-03-28
  • 打赏
  • 举报
回复
帮顶,关注ing
crazyminds110 2009-03-28
  • 打赏
  • 举报
回复
session_start事件发生在用户登陆页面的时候,而你的session产生是在button-Click事件时产生的,还没有生成session变量怎么可以进行字符串相加呢
这样如何:
void Session_Start(object sender, EventArgs e)
{
Session.Add("userName", "session的值");
Application.Lock();
Application["online"] = Application["online"].ToString() + Session["userName"].ToStrin();
Application.UnLock();

}
千山飞鸟绝 2009-03-28
  • 打赏
  • 举报
回复
看看
End 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cai3725 的回复:]
应该不是你的login页面报的错。
[/Quote]
up
jiang_jiajia10 2009-03-28
  • 打赏
  • 举报
回复
Session.Add("key", "value");
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传进度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧