C# 如何在ASP.NET MVC中根据条件打开/关闭基于身份的身份验证

C# 如何在ASP.NET MVC中根据条件打开/关闭基于身份的身份验证,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我在我的ASP.NET MVC应用程序中使用了基于身份的身份验证,我想打开/关闭基于条件的身份验证,我尝试使用自定义身份验证过滤器,但它进入了无限循环 以下是自定义筛选器的代码: public class CustomAuthenticationFilter : ActionFilterAttribute, IAuthenticationFilter { public void OnAuthentication(AuthenticationContext filterContext)

我在我的ASP.NET MVC应用程序中使用了基于身份的身份验证,我想打开/关闭基于条件的身份验证,我尝试使用自定义身份验证过滤器,但它进入了无限循环

以下是自定义筛选器的代码:

public class CustomAuthenticationFilter : ActionFilterAttribute, IAuthenticationFilter
{
    public void OnAuthentication(AuthenticationContext filterContext)
    {
        if (string.IsNullOrEmpty(Convert.ToString(filterContext.HttpContext.Session["UserName"])))
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }

    public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
    {
        if (filterContext.Result == null || filterContext.Result is HttpUnauthorizedResult)
        {
            // Redirecting the user to the Login View of Account Controller  
            filterContext.Result = new RedirectToRouteResult(
            new RouteValueDictionary
            {
                 { "controller", "Account" },
                 { "action", "Login" }
            });
        }
    }
}
我犯了个错误

错误\u太多\u重定向


听起来你的登录页面需要身份验证,所以它会将你重定向到登录页面。。。(重复重定向)。@ErikPhilips No I没有为登录控制器添加身份验证属性