在用户浏览网站时检查用户权限的最佳方法是什么?

时间:2012-12-21 17:57:16

标签: asp.net security validation authentication permissions

我是asp.net的新手,很难找到有关此主题的信息。

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

如果您需要更多信息或更好的示例,请与我们联系。

谢谢你的任何帮助

1 个答案:

答案 0 :(得分:1)

这是我的方法。创建一个新的BasePage并从此类继承您的aspx页面而不是System.Web.UI.Page。

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);
   }
}