1

当身份验证模式为“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);**
         }
     }

由于 base.onAuthorization() 的原因,onAuthorization() 方法重复命中,并且在第二次尝试中 IsAuthenticated 返回 true。

我可以知道这种行为的原因吗?

当我用谷歌搜索结果时说 IsAuthenticated 在表单身份验证模式下将是真的,但在 Windows 模式下不会。如以下链接所述

http://www.anujvarma.com/windows-ad-authentication-and-the-authorize-attributelogin-popup/

请帮我。

4

1 回答 1

2

问题解决了。我在 IIS 服务器设置中禁用了 allowanonymous 属性,它开始按预期工作,即在点击 onauthorization(..) 之前对用户进行身份验证。

于 2014-07-08T18:57:43.850 回答