注册 登录
编程论坛 ASP.NET技术论坛

请问后台管理员登陆以后的验证问题

裙裙 发布于 2008-04-11 13:57, 1239 次点击
比如:
if (Session["admin_id"] ==null)
{
     Response.Write("<script>alert('登陆超时!');parent.location = 'Admin_Login.aspx';</script>");
}

现在每个页面都要写这一段代码挺麻烦的,有没有其他简单的方法,需要验证的页面直接调用就可以实现这种功能?
我试用过用户控件来做,但是觉得写的不太严谨,比如有个left.aspx页面加入了这个用户控件,里面有个地方也要显示session["admin_id"]的值,这样的话,session失效的时候是会弹出“登陆超时”的消息框,但是同时这个页面也会出现编译错误,请问该怎么解决这种情况阿?

[[it] 本帖最后由 裙裙 于 2008-4-11 14:17 编辑 [/it]]
3 回复
#2
hebingbing2008-04-11 16:20
新建一个类文件,将这段代码放到类文件的方法中,这样就可以通过类的对象来调用了,其实一般开发的时候常用的代码都是这么处理的……要是你仅仅为了处理这段代码的话,你还可以将方法声明成静态的,那么就可以直接用类名来引用了,因为为了这段代码再声明一个对象感觉也不是很爽……
#3
青格儿2008-04-12 11:53
你可以新建一个Judge.aspx页面,写上
public partial class Judge : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["admin_id"] ==null)
{
     Response.Write("<script>alert('登陆超时!');parent.location = 'Admin_Login.aspx';</script>");
}
    }
}
其它页面用时,就在它的page_load里写一句:
Server.Execute("judge.aspx");
就行了.
#4
september2008-04-12 12:04
[bo]以下是引用 [un]青格儿[/un] 在 2008-4-12 11:53 的发言:[/bo]

你可以新建一个Judge.aspx页面,写上
public partial class Judge : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["admin_id"] ==null)
{
     Respon ...



建议用楼上的做法,我也是这么做的,就是做一个中间判断页judge.aspx,每个登陆后的页面都先用Server.Execute("judge.aspx");来判断,这样代码就少写很多。注意要用,Server.Execute(),因为这个方法是跳转但不显示页面内容,所以看起来是在同一页面内判断。
1