这是我的方法。创建一个新的BasePage
并从此类而不是 System.Web.UI.Page 继承您的 aspx 页面。
public class BasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
if (!IsPostBack)
{
// I assume you already get the user's profile
if (User.IsSuspended)
Response.Redirect("/SuspendedPage.aspx");
base.OnInit(e);
}
}
}
更新:
在整个应用程序生命周期中,有很多方法可以存储价值。这是其中之一。
// Global.asax.cs
void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User != null &&
HttpContext.Current.User.Identity.IsAuthenticated)
{
HttpContext.Current.Items["User"] =
GetUserByUsername(HttpContext.Current.User.Identity.Name);
}
}