バックグラウンド:
Windows認証を使用するMVC3イントラネットアプリケーション。Windows認証が完了すると、HttpModuleはHRデータベースからユーザーのネットワークIDを検索し、ユーザーの従業員情報を返し、それをに設定しHttpContext.Items
ます。この情報を検索し、OnActionExecutingをオーバーライドしてViewBagプロパティを設定するベースコントローラーがあります。
私の質問は、HomeControllerはBaseControllerを継承していますが、このHttpContext.Items["UserInfo"]
情報はHome / Indexでのみ利用可能であり、Home/AboutまたはHome/Helpをクリックすると利用できないようです。なぜこれが起こっているのかを誰かが明らかにすることができますか?
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
if (this.HttpContext.Items["UserInfo"] != null)
{
UserInfo User = (UserInfo)this.HttpContext.Items["UserInfo"];
ViewBag.CurrentUser = User;
}
base.OnActionExecuting(ctx);
}