aspnet-mvc5中的身份验证和授权过滤器之间的区别

时间:2016-09-01 07:15:12

标签: asp.net asp.net-mvc asp.net-mvc-5

为什么mvc 5中包含身份验证过滤器? mvc 5中的身份验证过滤器和授权过滤器之间的主要区别是什么?

2 个答案:

答案 0 :(得分:3)

我发现了以下博文:hide Report if subreport have no result

基本上是关于分离关注点。

身份验证:找出世卫组织发出的请求。

授权:查明是否允许已知用户执行某项操作。

答案 1 :(得分:2)

要回答这个问题,您必须了解身份验证授权之间的区别。简单地说,

  • 身份验证是尝试识别用户的服务器(即询问“你是谁”的问题)。通常这涉及输入用户名,密码和/或访问令牌。
  • 授权是确定声明的用户是否可以执行某些操作的服务器。

鉴于上述定义,授权必须在身份验证之后进行,因为您必须能够在确定哪些操作对该特定用户合法之前识别用户。

对于ASP.NET MVC,身份验证过滤器在授权过滤器之前运行,如上所述。它们都允许您分别指定自定义身份验证(通过IAuthenticationFilter.OnAuthenticationIAuthenticationFilter.OnAuthenticationChallenge)和授权逻辑(通过IAuthorizationFilter.OnAuthorization)。