我正在尝试在身份验证模式为“windows”
时在MVC中执行customAuthorization public override void OnAuthorization(AuthorizationContext filterContext)
{
#region if
if (HttpContext.Current.User.Identity.IsAuthenticated)
{ .......}
}
但IsAuthenticated总是返回false。我不知道如何在onAuthorization(..)之前调用windows身份验证。
但是当我喜欢这样的时候:
public override void OnAuthorization(AuthorizationContext filterContext)
{
#region if
if (HttpContext.Current.User.Identity.IsAuthenticated)
{ .......}else{
**base.OnAuthorization(filterContext);**
}
}
onAuthorization()方法由于base.onAuthorization()而重复命中,并且在第二次尝试中IsAuthenticated返回true。
我可以知道这种行为的原因吗?
当我用谷歌搜索结果时,结果表明IsAuthenticated在表单身份验证模式下是真的,但在Windows模式下不行。如下面的链接所述
http://www.anujvarma.com/windows-ad-authentication-and-the-authorize-attributelogin-popup/
请帮助我。
答案 0 :(得分:2)
问题解决了。我在IIS服务器设置中禁用了allowanonymous属性,它开始按预期工作,即用户在进入授权(..)之前进行了身份验证。