【发布时间】:2015-11-15 12:29:07
【问题描述】:
我正在修复我朋友的代码。我对母版页中的会话值有疑问。 我正在检查主页面中的会话是否为空或为空,如果为空,请转到登录页面。 但是母版页创建的其他页面永远无法正常工作。
if (Session["user"] != null && Session["user"] != "")
{ }
else
{
Response.Redirect("/Account/Login.aspx?link=" + System.Web.HttpContext.Current.Request.Url.PathAndQuery);
}
我尝试使用 Session["user"].ToString() 但结果相同。
并且其他页面通过此会话具有其他控件,因此如果您未登录,它总是会出错。
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
MaintainScrollPositionOnPostback="true" CodeFile="document.aspx.cs" Inherits="document" %>
【问题讨论】:
-
您能否指定在哪个 page 事件中创建/使用会话的控件。此外,您在哪个 masterpage 事件中检查会话
-
例如,我正在创建名为 back.master 的母版页,并且在 page_load 事件中我编写了会话控制事件。然后我创建了一个名为 default.aspx 的普通 aspx 页面,由 back.master 派生,我还在 page_load 事件中编写了一些检查代码。例如。 label.text = session["user"].tostring();但是 back.master 的 page_load 中的会话控制在 default.aspx page_load 之后触发,所以它给了我“会话为空”的错误。但是如果我创建新的网络项目没关系,那没问题。
标签: c# asp.net session .net-4.0