0

我对 asp.net 相当陌生,并且很难找到有关此主题的信息。

我正在建立一个允许用户上传视频的网站。例如,如果视频不合适或离题,我可以暂停他们的帐户,以便他们下次登录时,他们将被重定向到“您的帐户已被暂停”页面。我想弄清楚的是处理以下情况的最佳方法是:我在用户刚刚登录后暂停了用户的帐户。所以他们在登录过程中已经通过了验证。我基本上希望用户在执行下一个操作后被重定向到“您的帐户已被暂停”页面。除了在每次回发时检查数据库(这似乎有点低效),处理这个问题的最佳方法是什么?

如果您需要更多信息或更好的示例,请告诉我。

谢谢你的任何帮助

4

1 回答 1

1

这是我的方法。创建一个新的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);
   }
}
于 2012-12-21T18:50:46.040 回答