我正在开发基于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中设置。
请帮我解决这个问题
提前感谢。
答案 0 :(得分:0)
iis apppool中的托管管道设置为“集成”。 如果启用了这个,则在Application_AuthenticateRequest事件上未设置httpcontext。 访问httpcontext有点为时过早。
所以我将逻辑移到了我的登陆控制器方法中的适当位置,并且它有效。
感谢。