Asp.net mvc 3 ASP.NET MVC基本身份验证计数尝试?

Asp.net mvc 3 ASP.NET MVC基本身份验证计数尝试?,asp.net-mvc-3,authentication,.net-4.0,routes,Asp.net Mvc 3,Authentication,.net 4.0,Routes,VS 2010.NET Framework 4上的ASP.NET MVC 3: 我将web.config设置为“无”以进行身份验证。我有一些自定义属性和代码,可以实现基本身份验证(基于我在这里从专家那里找到的内容-谢谢)。尝试3次失败后,IIS将显示自己的“auth denied”消息。我正在尝试将计数更改为5次尝试,并显示我自己的错误页面。到目前为止我还不知道怎么做 auth类的摘录: CustomBasicAuthorizeAttribute: AuthorizeAttribute ...

VS 2010.NET Framework 4上的ASP.NET MVC 3:

我将web.config设置为“无”以进行身份验证。我有一些自定义属性和代码,可以实现基本身份验证(基于我在这里从专家那里找到的内容-谢谢)。尝试3次失败后,IIS将显示自己的“auth denied”消息。我正在尝试将计数更改为5次尝试,并显示我自己的错误页面。到目前为止我还不知道怎么做

auth类的摘录:

CustomBasicAuthorizeAttribute: AuthorizeAttribute
...
public override void OnAuthorization(AuthorizationContext filterContext)
{
    if (filterContext == null) throw new ArgumentNullException("filterContext");
    if (!Authenticate(filterContext.HttpContext))
    {
        filterContext.Result = new HttpCustomBasicUnauthorizedResult();
    }
    else
    {
        if (AuthorizeCore(filterContext.HttpContext))
        {
            HttpCachePolicyBase cachePolicy = filterContext.HttpContext.Response.Cache;
            cachePolicy.SetProxyMaxAge(new TimeSpan(0));
            cachePolicy.AddValidationCallback(CacheValidateHandler, null /* data */);
        }
        else
        {
            filterContext.Result = new RedirectToRouteResult(
            new RouteValueDictionary
                    {
                            { "client", filterContext.RouteData.Values[ "client" ] },
                            { "controller", "Account" },
                            { "action", "Login" },
                            { "ReturnUrl", filterContext.HttpContext.Request.RawUrl }
                    } );

        }
    }
}

谢谢。

这不是IIS显示的,您的浏览器是,因此无法更改。加载fiddler,您应该能够确认第四个请求从未从您的浏览器发出,第三个请求的IIS响应不是您看到的页面。

您只显示了部分代码,这部分与验证尝试失败的计数无关。例如,您还没有展示Authenticate和AuthorizeCore方法的外观。我还没有任何计数代码,因为我认为这是应该进行计数的地方,但我不确定。我在这段代码中加入了断点,并在运行时探索了调试器中的属性/事件/方法,但没有显示任何内容。。。如果这是Forms auth,那么我可以知道用户最终被拒绝的时间,并显示特定页面。我在想,使用Basic,我可以在第三次尝试时“接受”拒绝的凭据,并将它们重定向到未经授权的用户页面,清除登录历史记录,以便用户可以稍后返回并再次尝试身份验证。