0

私はasp.netにかなり慣れていないので、このトピックに関する情報を見つけるのに苦労しています。

ユーザーが動画をアップロードできるウェブサイトを構築しています。たとえば、ビデオが不適切またはトピックから外れている場合、アカウントを一時停止して、次回サインインしたときに「アカウントが一時停止されました」ページにリダイレクトされるようにすることができます. 私が把握しようとしているのは、次の状況を処理するための最良の方法は何ですか: サインインしたばかりのユーザーのアカウントを一時停止します。したがって、サインインプロセス中に既に検証に合格しています。基本的に、ユーザーが次のアクションを実行した後、「アカウントが停止されました」ページにリダイレクトされるようにしたいと考えています。ポストバックごとにデータベースをチェックする以外に (これは少し非効率的です)、これを処理する最善の方法は何でしょうか?

より多くの情報やより良い例が必要な場合はお知らせください。

助けてくれてありがとう

4

1 に答える 1

1

これが私のアプローチです。BasePageSystem.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);     
      }    
   }
}

更新しました:

アプリケーションのライフサイクルを通して値を保存する方法はたくさんあります。ここにそれらの1つがあります。

// 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 に答える