帮助我如何做到这一点?我已将这段代码写入if .... else if语句,如下所示:
但是现在我已经尝试过试试并抓住它的错误......
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
Label1.Text = Session["StudId"].ToString();
try
{
Label1.Text = Session["FacultyFirstName"].ToString();
try
{
Label1.Text = Session["AccEmployeeName"].ToString();
try
{
Label1.Text = Session["AccEmployeeName"].ToString();
}
}
}
catch (System.NullReferenceException)
{
Response.Redirect("Login.aspx");
throw;
}
}
}
protected void LinkButton1_Click1(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("Login.aspx");
}
}
答案 0 :(得分:0)
首先对于您的许多catch
块,您没有finally
或try
。您需要为catch
块中的每一个设置finally
或try
。
第二次您将每个名称分配给Label1.text
,这似乎是一个逻辑错误。
第三次就这样做:
protected void Page_Load(object sender, EventArgs e)
{
try
{
Label1.Text = Session["StudId"].ToString();
Label1.Text = Session["FacultyFirstName"].ToString();
Label1.Text = Session["AccEmployeeName"].ToString();
Label1.Text = Session["AccEmployeeName"].ToString();
}
catch (System.NullReferenceException)
{
Response.Redirect("Login.aspx");
throw;
}
}
请注意,您正在使用异常来控制程序流,这不是一种好的做法。此外,如果我正确理解您的代码,有很多方法可以在会话过期时将用户重定向到登录页面。请查看表单身份验证等。
一些链接:
http://stackoverflow.com/questions/11988457/check-session-variable-and-redirect-to-login-page-before-page-load
http://csharpdotnetfreak.blogspot.com/2008/11/detecting-session-timeout-and-redirect.html