求助:session问题!!!

hongjiazwf 2009-10-30 11:52:32
我在index页面的protected void Page_Load(object sender, EventArgs e)里初始化 this.Session["UserName"] = "www.silverfin.com";
在Login.ascx.cs里的一部分代码是这样的
public partial class Login : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{

{
string Uname = txtUname.Text;
string Upwd = txtUPwd.Text;
string yanzhengma = txtYanZhenMa.Text;

if (Uname == "" || Uname == null)
lblMessage.Text = "请输入用户名";
else if (Upwd == "" || Upwd == null)
lblMessage.Text = "请输入密码";
else if (yanzhengma == "" || yanzhengma == null)
lblMessage.Text = "请输入验证码";
else if (yanzhengma.ToString().ToLower() != Session["VerifyCode"].ToString().ToLower())
lblMessage.Text = "验证码错误";
else
{

bool b = UserBLL.FindUser(Uname, Upwd);
if (b)
{
User u = UserBLL.getUser(Uname, Upwd);
int UId = u.UId;

int RoleId = UserBLL.selectRoleId(UId);
if (RoleId == 1)
{
lblMessage.Text = "管理员请从后台登录";
}
else if (RoleId == 3)
{
lblMessage.Text = "用户名或密码错误";
}
else
{
Session["UserName"] = Uname;
Session["UserId"] = u.UId;

Response.Redirect("Default.aspx");

在母板 MasterPage2.master.cs里的部分代码是:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] == null)
{
Response.Redirect("Index.aspx");
}
else
{
if (Session["UserName"].ToString() == "www.silverfin.com")
{
Label1.Text = "你好,欢迎光临银枫居家饰有限公司!";
LinkButton1.Text = "登录";

}
else
{
Label1.Text = Session["UserName"].ToString() + "你好,欢迎光临银枫居家饰有限公司!";
int uid = Convert.ToInt32(Session["UserId"]);
LinkButton1.Text = "注销";
}

}

当用户登录成功的时候,转换到default页面可是并没有显示 Label1.Text = Session["UserName"].ToString() + "你好,欢迎光临银枫居家饰有限公司!";这个结果!!!。在default和index页面里都加载了MasterPage2.master了的。index有this.Session["UserName"] = "www.silverfin.com",可在登录的时候给session重新赋值了,Session["UserName"] =Uname(string Uname = txtUname.Text;);为什么感觉系统默认为Session["UserName"] = "www.silverfin.com,对重新赋值怎么没用啊,我就是参照别的网站这样做的,请大家帮帮我啊,昨天已经搞了一天了。session的值到底有什么讲究方法?

...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
周公 2009-10-30
  • 打赏
  • 举报
回复
ASP.NET2.0 母版页和内容页中的事件


母版页和内容页都可以包含控件的事件处理程序。对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。控件事件不会从内容页发送到母版页。同样,也不能在内容页中处理来自母版页控件的事件。

在某些情况下,内容页和母版页中会引发相同的事件。例如,两者都引发 Init 和 Load 等事件。

引发事件的一般规则是初始化事件从最里面的控件向最外面的控件引发,所有其他事件则从最外面的控件向最里面的控件引发。请记住,母版页会合并到内容页中并被视为内容页中的一个控件,这一点十分有用。

母版页和内容页中的事件顺序对于页面开发人员并不重要。但是,如果您创建的事件处理程序取决于某些事件的可用性,那么您将发现,了解母版页和内容页中的事件顺序很有帮助。


由于我自己经常需要取决于某些事件的可用性,下面是我测试中提取到的事件的发生顺序:

页面首次显示,事件发生顺序:
2006-10-23 11:23:58 9880 内容页 Page_PreInit (在页初始化开始时发生。)
2006-10-23 11:23:58 9981 母版页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 0081 内容页控件 Button_Init
2006-10-23 11:23:59 0481 内容页控件 Label_Init
2006-10-23 11:23:59 0582 内容页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 0782 母版页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 0882 内容页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 1082 内容页 Page_InitComplete (在页初始化完成时发生。)
2006-10-23 11:23:59 1182 内容页 Page_PreLoad (在页 Load 事件之前发生。)
2006-10-23 11:23:59 1483 内容页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1583 母版页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1783 母版页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1883 内容页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1984 内容页控件 Button_Load
2006-10-23 11:23:59 2084 内容页控件 Label_Load
2006-10-23 11:23:59 2284 内容页 Page_LoadComplete (在页生命周期的加载阶段结束时发生。)
2006-10-23 11:23:59 2484 内容页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2685 母版页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2785 母版页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2885 内容页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2985 内容页控件 Button_PreRender
2006-10-23 11:23:59 3085 内容页控件 Label_PreRender
2006-10-23 11:23:59 3285 内容页 Page_PreRenderComplete (在呈现页内容之前发生。)
2006-10-23 11:23:59 3386 内容页 Page_SaveStateComplete (在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。)
2006-10-23 11:23:59 3586 母版页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:23:59 3786 内容页控件 Button_Unload
2006-10-23 11:23:59 3886 内容页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:23:59 3986 母版页 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:23:59 4087 内容页 Page_Unload (当服务器控件从内存中卸载时发生。)

母版页控件Button_Click后,事件发生顺序:
2006-10-23 11:24:03 4044 内容页 Page_PreInit (在页初始化开始时发生。)
2006-10-23 11:24:03 4244 母版页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 4344 内容页控件 Button_Init
2006-10-23 11:24:03 4445 内容页控件 Label_Init
2006-10-23 11:24:03 4745 内容页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 4945 母版页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 5045 内容页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 5146 内容页 Page_InitComplete (在页初始化完成时发生。)
2006-10-23 11:24:03 5246 内容页 Page_PreLoad (在页 Load 事件之前发生。)
2006-10-23 11:24:03 5346 内容页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5546 母版页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5646 母版页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5847 内容页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5947 内容页控件 Button_Load
2006-10-23 11:24:03 6147 内容页控件 Label_Load
2006-10-23 11:24:03 6247 母版页UC控件 Button_Click
2006-10-23 11:24:03 6347 内容页 Page_LoadComplete (在页生命周期的加载阶段结束时发生。)
2006-10-23 11:24:03 6447 内容页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6648 母版页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6748 母版页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6848 内容页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6948 内容页控件 Button_PreRender
2006-10-23 11:24:03 7148 内容页控件 Label_PreRender
2006-10-23 11:24:03 7249 内容页 Page_PreRenderComplete (在呈现页内容之前发生。)
2006-10-23 11:24:03 7349 内容页 Page_SaveStateComplete (在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。)
2006-10-23 11:24:03 7549 母版页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:03 7649 内容页控件 Button_Unload
2006-10-23 11:24:03 7749 内容页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:03 7849 母版页 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:03 7950 内容页 Page_Unload (当服务器控件从内存中卸载时发生。)

内容页控件Button_Click后,事件发生顺序:
2006-10-23 11:24:05 5174 内容页 Page_PreInit (在页初始化开始时发生。)
2006-10-23 11:24:05 5275 母版页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 5475 内容页控件 Button_Init
2006-10-23 11:24:05 5575 内容页控件 Label_Init
2006-10-23 11:24:05 5675 内容页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 5875 母版页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 5976 内容页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 6076 内容页 Page_InitComplete (在页初始化完成时发生。)
2006-10-23 11:24:05 6276 内容页 Page_PreLoad (在页 Load 事件之前发生。)
2006-10-23 11:24:05 6376 内容页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6476 母版页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6677 母版页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6777 内容页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6877 内容页控件 Button_Load
2006-10-23 11:24:05 6977 内容页控件 Label_Load
2006-10-23 11:24:05 7177 内容页控件 Button_Click
2006-10-23 11:24:05 7277 内容页 Page_LoadComplete (在页生命周期的加载阶段结束时发生。)
2006-10-23 11:24:05 7378 内容页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7478 母版页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7678 母版页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7778 内容页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7878 内容页控件 Button_PreRender
2006-10-23 11:24:05 7978 内容页控件 Label_PreRender
2006-10-23 11:24:05 8179 内容页 Page_PreRenderComplete (在呈现页内容之前发生。)
2006-10-23 11:24:05 8279 内容页 Page_SaveStateComplete (在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。)
2006-10-23 11:24:05 8379 母版页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:05 8479 内容页控件 Button_Unload
2006-10-23 11:24:05 8679 内容页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:05 8780 母版页 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:05 8880 内容页 Page_Unload (当服务器控件从内存中卸载时发生。)
hongjiazwf 2009-10-30
  • 打赏
  • 举报
回复
求助啊,帮帮我这个菜鸟,我将万分感激!
abaochan 2009-10-30
  • 打赏
  • 举报
回复
谢了,执行顺序的问题怎么解决啊,我就是参考网上下载的网站源代码,哪块区域该放什么代码就放什么代码,对于加载的不懂。。。
hongjiazwf 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
执行顺序问题
母版页中控件的Init;
内容页控件的Init;
母版页的Init;
内容页的Init;
内容页的Load;
母版页的Load;
内容页中控件的Load;
内容页的PreRender;
母版页的PreRender;
母版页控件的PreRender;
内容页中控件的PreRender

[/Quote]
谢谢了,执行顺序的问题怎么解决啊,我就是参考网上下载的网站源代码,哪块区域该放什么代码就放什么代码,对于加载的不懂。。。
hongjiazwf 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoufoxcn 的回复:]
1、看看母版页和内容页的加载顺序对你设置Session有没有影响;感觉你的问题似乎在这里,如果的Index页面也使用了母版页的话。
2、看你自己的程序逻辑是否有些混乱。你的逻辑看起来也很混乱。
至少在Index页面应该首先判断一下Session["UserName"]是否为空,为空才会使用默认值,不为空就不能更改了(这时候是应经登录了),你不分青红皂白都改成初始值造成永远不会有登录的状态。
3、给Session["UserName"]设默认值的做法个人感觉有点多此一举。
[/Quote]
怎么控制他们的顺序啊,我就是按照参考的网站源代码,哪块地方该放什么代码就放什么,对于加载顺序该怎么执行啊??
hongjiazwf 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoufoxcn 的回复:]
1、看看母版页和内容页的加载顺序对你设置Session有没有影响;感觉你的问题似乎在这里,如果的Index页面也使用了母版页的话。
2、看你自己的程序逻辑是否有些混乱。你的逻辑看起来也很混乱。
至少在Index页面应该首先判断一下Session["UserName"]是否为空,为空才会使用默认值,不为空就不能更改了(这时候是应经登录了),你不分青红皂白都改成初始值造成永远不会有登录的状态。
3、给Session["UserName"]设默认值的做法个人感觉有点多此一举。
[/Quote]
谢谢啊,内容好多啊。。。那不设初始值,貌似系统提示未初始化实例对象之类的错误。。。
wuyq11 2009-10-30
  • 打赏
  • 举报
回复
执行顺序问题
母版页中控件的Init;
内容页控件的Init;
母版页的Init;
内容页的Init;
内容页的Load;
母版页的Load;
内容页中控件的Load;
内容页的PreRender;
母版页的PreRender;
母版页控件的PreRender;
内容页中控件的PreRender
LutzMark 2009-10-30
  • 打赏
  • 举报
回复
up楼上
还有就是看看什么时候给Session["UserName"]赋的初始值
把逻辑顺序整顺
周公 2009-10-30
  • 打赏
  • 举报
回复
1、看看母版页和内容页的加载顺序对你设置Session有没有影响;感觉你的问题似乎在这里,如果的Index页面也使用了母版页的话。
2、看你自己的程序逻辑是否有些混乱。你的逻辑看起来也很混乱。
至少在Index页面应该首先判断一下Session["UserName"]是否为空,为空才会使用默认值,不为空就不能更改了(这时候是应经登录了),你不分青红皂白都改成初始值造成永远不会有登录的状态。
3、给Session["UserName"]设默认值的做法个人感觉有点多此一举。

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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