我接到Application_AuthenticateRequest
的电话,我用它来执行一些认证逻辑。类似于:
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (System.Web.HttpContext.Current.Request.IsAuthenticated)
{
....
}
}
这通常很好,但在某些情况下我的控制器操作附加了AllowAnonymous
属性,我不希望代码执行。如果用户未登录,则没有问题,但是,如果用户已登录并且他们尝试访问其中一个视图,则会遇到问题。
我想知道的是,如果有办法我可以在Application_AuthenticateRequest
电话中检测到我的操作设置了哪些属性。或者,如果我甚至可以检测当前页面是否需要验证?
到目前为止,我还没有弄清楚这一点,但似乎它应该相当简单。我想知道是否有人可以指出我缺少的东西?
答案 0 :(得分:1)
这个问题有点老了。但我找到了答案。我使用System.Web.HttpContext.Current.SkipAuthorization
如果操作具有[AllowAnonymous]
属性,则返回true,
否则,如果操作具有[Authorize]
属性,则返回false。