【发布时间】:2015-12-23 13:03:02
【问题描述】:
我这里有这个 aspx 代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MSSQLConnector;
using System.Data;
using System.Data.SqlClient;
namespace SoftwareAnalysisAndDesign.SAD
{
public partial class AdministratorPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//If user run this page without logging in, it will redirect the user to the login page
if (Session["adminlogin"] == null)
{
Response.Redirect("LoginPage.aspx", true);
}
}
}
}
当我在会话为空时直接进入管理员页面时,它将进入登录页面。但是当我使用用户名和密码登录时,系统会给我一条消息“浏览器有重定向循环”。当我按下浏览器后退按钮时,我应该进行什么过程以使我的 AdminPage 保持在同一页面上,它只会转到 LoginPage 是会话为空或会话被注销事件处理程序终止。或者,如果可能,如果用户按下 Web 浏览器的后退按钮,系统将通过是或否的决定提醒用户“您要注销”。如果不是,系统将停留在同一页面上,如果是,会话将被终止,系统将重定向到登录页面。
我的登录页面代码:
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using MSSQLConnector;
using System.Data;
namespace SoftwareAnalysisAndDesign.SAD
{
public partial class OnlineAppSyss : System.Web.UI.Page
{
public void Admin()
{
//String decleration
string adminusername = (this.UserName.Value);
string adminpass = (this.Password.Value);
try
{
if (adminusername == "admin" && adminpass == "cmpe1234")
{
Session["adminlogin"] = adminusername;
Response.Redirect("AdministratorPage.aspx");
}
else
{
Response.Write("<script language=javascript>alert('Username and password does not match. Try again');</script>");
}
}
catch
{
Response.Write("<script language=javascript>alert('Username and password does not match. Try again');</script>");
}
}
}
【问题讨论】:
-
您已经在管理员页面上了吗?在这种情况下,
else子句可能会无限期地不断重定向。试试不带else... -
我试过了,没有else函数sir,但是系统会将页面重定向到登录页面,但会话仍然处于活动状态。只希望我的系统仅在会话终止时进入登录页面。
-
我已经编辑了我的帖子,先生。
-
在AdministratorPage 上的
Page_Load事件中,您能否将Session["adminlogin"]分配给一个变量,并设置一个断点来查看它的值是多少?
标签: c# asp.net session pageload