環境:
Windows認証を使用するように構成された内部Asp.Net Webアプリケーションがあります。この認証の側面の一部として、基本的に HttpContext.Current.Identity.Name を取得し、HttpContext.Items コレクションにドロップされる UserInfo オブジェクトを返す HttpModule があります。
これを MVC3 経由で移行すると、ベース コントローラーと OnActionExecuting があり、コレクションにこの UserInfo アイテムがまったく表示されません。どんな洞察も素晴らしいでしょう。これが私のセットアップです:
ベースコントローラー:
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
if (ctx.HttpContext.Items["UserInfo"] != null)
{
UserInfo currentUser = (UserInfo)ctx.HttpContext.Items["UserInfo"];
dynamic viewBag = ctx.Controller.ViewBag;
viewBag.CurrentUser = currentUser;
}
else
{
// Unauthorized do something
}
base.OnActionExecuting(ctx);
}
web.config:
<system.web>
<httpModules>
<add type="WFS.SIG.Client.Security.Authentication.WindowsAuthentication, WFS.SIG.Client.Security" name="AuthenticationModule"/>
</httpModules>
</system.web>....
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="AuthenticationModule" type="WFS.SIG.Client.Security.Authentication.WindowsAuthentication, WFS.SIG.Client.Security" />
</modules>
</system.webServer>