ASP.net Forms身份验证不适用于iis

时间:2013-06-14 23:36:02

标签: asp.net-mvc windows-authentication

我正在开发基于windows的身份验证,我的配置看起来像这样

web.config

授权

允许角色="管理员"

允许角色="超级用户" />

拒绝用户=" *"

授权


在global.asax.cs

    void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        string message = string.Empty;
        if (HttpContext.Current.User.Identity.IsAuthenticated)
            message = HttpContext.Current.User.Identity.Name + " login successfully !";
        else
            message = HttpContext.Current.Request.UserHostAddress + " login failure !";             
    }

这在卡西尼号中非常完美。我可以登录该应用程序。

当我在启用了Windows身份验证的IIS 7中托管它时。

我的对象引用没有设置为对象的实例。

这是因为出于某种原因HttpContext.Current.User为null

由于某种原因,用户未在httpcontext中设置。

请帮我解决这个问题

提前感谢。

1 个答案:

答案 0 :(得分:0)

iis apppool中的托管管道设置为“集成”。 如果启用了这个,则在Application_AuthenticateRequest事件上未设置httpcontext。 访问httpcontext有点为时过早。

所以我将逻辑移到了我的登陆控制器方法中的适当位置,并且它有效。

感谢。