一个在Page_Load之前执行的类,可以执行重写页面呈现,使所有页面拥有统一的特性;比如标题后缀和编写身份验证,IP限制访问等最高级别特性。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// 页面基类
/// </summary>
public abstract class PageBase : System.Web.UI.Page
{
#region 重写方法,尽量只添加不修改。
#region 重写页面第一次加载事件
/// <summary>
/// 重写页面第一次加载事件
/// </summary>
/// <param name="e"></param>
protected override void OnPreInit(EventArgs e)
{
this.ForwardOnPreInit();
base.OnPreInit(e);
}
#endregion
#region 重写页面呈现,使所有页面拥有统一的特性
/// <summary>
/// 重写页面呈现,使所有页面拥有统一的特性;比如标题后缀。
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
this.ForwardRender();
base.Render(writer);
}
#endregion
#endregion
#region 重写方法
#region 在页面第一次处理之前过程。
/// <summary>
/// 在页面第一次处理之前过程。
/// </summary>
private void ForwardOnPreInit()
{
//这里编写身份验证,IP限制访问等最高级别特性。
}
#endregion
#region 呈现HTML内容之前过程,对HTML内容进行整改。
/// <summary>
/// 呈现HTML内容之前过程。
/// </summary>
private void ForwardRender()
{
/// 呈现HTML内容之前过程。
this.Title += " - 网站标题后缀名字";
}
#endregion
#endregion
#region 扩展属性
#region 获取当前执行页面名和全部的查询字符串(如有)。
/// <summary>
/// 获取当前执行页面名和全部的查询字符串(如有)。
/// </summary>
protected string PageNameAll
{
get
{
if (ClientQueryString != "")
{
return this.Request.CurrentExecutionFilePath + "?" + ClientQueryString;
}
else
{
return this.Request.CurrentExecutionFilePath;
}
}
}
#endregion
#region 当前执行页面名称。
/// <summary>
/// 当前执行页面名称。
/// </summary>
protected string PageName
{
get
{
string pn = this.Request.CurrentExecutionFilePath;
return pn.Substring(pn.LastIndexOf('/') + 1);
}
}
#endregion
#endregion
}
代码丢App_Code文件夹,再在需用调用的页面继承该类就OK了。
主要参考文章链接:http://www.cnblogs.com/maple-net/articles/651441.html