2012-03-19 10 views
0

ログインしたユーザーのプロフィールからPreInitイベントが発生している間、ページにテーマを割り当てるためのHttpModuleを開発しました。しかし、私がアクセスした時点でプロファイルが初期化されていないようです。特定のイベントの後に、私はInitイベント後にアクセスページのcotnrolsに似たユーザーのプロファイルにアクセスする必要がありますか? btw私はASP.NET 2.0とカスタムプロファイルプロバイダの実装を実行しています。UserProfileがいつ初期化されるのですか

public void CurrentPageOnPreInit(object sender, EventArgs e) 
    { 
     //Get the page currently requested 
     Page currentPage = (Page)sender; 

     //Get the user profile 
     ProfileCommon userProfile = HttpContext.Current.Profile as ProfileCommon; 


      //check if user profile has theme set 
      if (userProfile != null && !string.IsNullOrEmpty(userProfile.Theme)) 
      { 
       //retrieve from profile 
       currentPage.Theme = userProfile.Theme; 

上記のメソッドは、アプリケーションの各ページのPreInitステージで実行されます。

答えて

0

クラスのOnPreInitメソッドで初期化する必要があります。

override void OnPreInit(EventArgs e);

メソッドの実行には、どのメソッドがasp.netライフサイクルを呼び出すかについての簡単な説明があります。

+0

私はカスタム実装をしているので、これを明示的に行う必要がありますか? 'ProfileCommon.Create(UserName)'のようなものです。これは、自動的にページ解析中にどこかでasp.netフレームワークによって実行されるので、私は望んでいません。これが実行された正確なイベントを探しています – Deeptechtons

関連する問題