最近一直在忙于项目的事,所有没有时间来打理这个博客.现在项目终于上线了,自己也抽点时间来总结一下:
第一点:关于在所有页面实现没有登录就转到登录页面的功能.
说句实话,这个问题很简单,但我却折腾了很久.网上也有很多这样的讨论,但都不是很实用.有的人用form验证,也有人直接在页面上写如下代码:
if(Session["UserInfo"]==null)
{
Response.Redirect("/login.aspx");
}
当然这里的Session["UserInfo"]是保存的用户登录信息,login.aspx是登录页面.后来有以下解决方法,希望能给大家有点启发.
首先,我写了一个类,继承了System.UI.Page,然后重写了Page里面的OnLoad方法,如下代码:
public class PageBase:System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
if (Session["userInfo"] == null)
{
Response.Redirect("~/ErrorPage/Skip.htm");
}
base.OnLoad(e);
}
}
这里有一句很重要,base.OnLoad(e),不用我说,大家都知道这人意思,调用父类的方法,skip.htm是我做的一个跳转页面,如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript">
window.parent.location="../BackgroundManage/Login.aspx";
</script>
</head>
<body>
</body>
</html>
其实大家一看就知道,这是一个跳转页面,目的是为了跳出当前的框架,然后所有的页面都继承这个PageBase类,就行了.