ASP.NET 使用PageBase来控制用户登陆,有时候发现在Web.Config文件里面写了禁止匿名登录的代码以后,要么就全部都登录不了网页,要么就是知道页面的名称,如Default.Aspx,然后在地址栏直接输入路径然后回车就进入系统了,可能是配置文件没有写好,总之觉得这种方法不是很好,还是使用PageBase来判断IE产生的Session数量要好一点,如下:
这个PageBase类:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
/// <summary>
///PageBase 的摘要说明
/// </summary>
public class PageBase : System.Web.UI.Page
{
public PageBase()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
private string sessionUserName;
private string sessionPassword;
public string SessionUserName
{
get { return this.sessionUserName; }
}
public string SessionPassword
{
get { return this.sessionPassword; }
}
protected override void OnInit(EventArgs e)
{
if (base.Session["UserName"] == null || Session.Count < 2)
{
Response.Redirect("~/Login.aspx");
}
else
{
this.sessionUserName = Session["UserName"].ToString();
this.sessionPassword = Session["Password"].ToString();
}
}
}
然后在主页面里面继承这个PageBase类,
public partial class _Default : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}