我尝试添加会话,然后我在重定向后访问另一个页面,这总是显示为空
Session.Add("pUser_Name", ds_1.Tables[0].Rows[0]["User_Name"].ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.Redirect("DashBoard.aspx", false);
这是我正在访问的另一个页面
protected void Page_Load(object sender, EventArgs e)
{
if (Session["pUser_Name"] == null) ////here is error NULL
{
Response.Redirect("Admin.aspx");
}
}
我试过
protected override void OnInit(EventArgs e)
{
if (Session["pUser_Name"] == null)
{
Response.Redirect("Admin.aspx");
}
base.OnInit(e);
}
以及
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DashBoard.aspx.cs" Inherits="SC.DashBoard" EnableTheming="true"
Theme="Theme1" EnableSessionState="True" %>
和管理页面,为会话分配值
<%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="True" CodeBehind="Admin.aspx.cs" Inherits="SC.Admin" %>
和web.config文件
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<sessionState timeout="12000"/>
</system.web>
但仍然面临同样的会话
答案 0 :(得分:0)
根据此answer基本上引用此msdn article关于http://onlinehelp.tableau.com/current/server/en-us/adminview_bucket.htm
,您可能需要在 Session_Start 上初始化您的会话对象:
SessionID
当会话状态存储在您当前基于web.config使用的cookie中时,这是必需的。原因是ASP.NET在第一次使用之前不会保存会话,因此当您protected void Session_Start(Object sender, EventArgs e)
{
Session["init"] = 0;
}
到另一个页面时,每个新页面请求都会生成一个新的SessionID。