Authentication跟Authorization的区别
这两个单词长的十分相似,而且还经常一起出现,很多时候容易搞混了
Authentication(认证)
明确是你谁,确认是不是合法用户。常用的认证方式有用户名密码认证。
Authorization(授权)
明确你是否有某个权限。当用户需要使用某个功能的时候,系统需要校验用户是否需要这个功能的权限。
所以这两个单词是不同的概念,不同层次的东西。UseAuthorization在asp.net core 2.0中是没有的。在3.0之后微软明确的把授权功能提取到了Authorization中间件里,所以我们需要在UseAuthentication之后再次UseAuthorization。否则,当你使用授权功能比如使用[Authorize]属性的时候系统就会报错。
不 添加认证中间件的话 在swagger页面右上角的锁输入[ Bearer 密匙 ]提示401未授权
添加认证中间件UseAuthentication()才正确提示forbidden(密码错时)