语境:
我们有一个内部的 Asp.Net Web 应用程序,它被配置为使用 Windows 身份验证。作为此身份验证方面的一部分,我们有一个 HttpModule,它基本上抓取 HttpContext.Current.Identity.Name 并返回一个 UserInfo 对象,该对象被放入 HttpContext.Items 集合中。
在通过 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);
}
网络配置:
<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>