我是asp.net的新手,很难找到有关此主题的信息。
我正在建立一个允许用户上传视频的网站。例如,如果视频不合适或不合适,我可以暂停其帐户,以便下次登录时,系统会将其重定向到“您的帐户已被暂停”页面。我想弄清楚的是处理以下情况的最佳方法:我在他们刚刚登录后暂停用户的帐户。因此他们已经在登录过程中通过了验证。我基本上希望用户在他们执行的下一个操作后被重定向到“您的帐户已被暂停”页面。除了在每次回发时检查数据库(这似乎有点低效),处理这个问题的最佳方法是什么?
如果您需要更多信息或更好的示例,请与我们联系。
谢谢你的任何帮助
答案 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);
}
}