有一个“AuthenticationFilter”ASP.NET MVC5 可用于此目的。
身份验证过滤器
身份验证筛选器是 ASP.NET MVC 中的一种新型筛选器,它在 ASP.NET MVC 管道中的授权筛选器之前运行,并允许您为每个操作、每个控制器或全局指定所有控制器的身份验证逻辑。身份验证过滤器处理请求中的凭据并提供相应的主体。身份验证过滤器还可以添加身份验证质询以响应未经授权的请求。
请参阅本教程以了解如何使用它。
using System.Web.Mvc;
using System.Web.Mvc.Filters;
namespace VSMMvc5AuthFilterDemo.CustomAttributes
{
public class BasicAuthAttribute : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
}
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
var user = filterContext.HttpContext.User;
if (user == null || !user.Identity.IsAuthenticated)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
}
}