3

我接到一个电话Application_AuthenticateRequest,我用它来执行一些身份验证逻辑。类似于:

    protected void Application_AuthenticateRequest(Object sender, EventArgs e)
    {
        if (System.Web.HttpContext.Current.Request.IsAuthenticated)
        {
            ....
        }
    }

这通常可以正常工作,但是在某些情况下,我的控制器操作AllowAnonymous附加了属性,并且我不希望代码执行。如果用户未登录,则没有问题,但是,如果用户已登录并且他们尝试访问这些视图之一,我会遇到问题。

我想知道的是,如果有一种方法可以检测我在Application_AuthenticateRequest通话中的操作设置了哪些属性。或者如果我什至可以检测当前页面是否需要身份验证?

到目前为止,我还无法弄清楚这一点,但它似乎应该相当简单。我想知道是否有人可以指出我遗漏的东西?

4

1 回答 1

2

这个问题有点老了。但我偶然发现了一个答案。我通过使用找到了解决方案System.Web.HttpContext.Current.SkipAuthorization

如果操作具有属性,则返回 true [AllowAnonymous],否则,如果操作具有属性,则返回 false [Authorize]

于 2015-12-16T19:26:57.337 回答