第5章:认证与授权

学习分享 丨作者 / 郑 子 铭 丨公众号 / DotNet NB / CloudNative NB

任务31:课时介绍

  • 1.Cookie-based认证与授权

  • 2.Cookie-based认证实现

  • 3.Jwt认证与授权介绍

  • 4.Jwt认证与授权实现

  • 5.Jwt认证与授权

  • 6.Role based授权

  • 7.Claims-based授权

任务32:Cookie-based认证介绍

任务34:Cookie-based认证实现

在Controllers文件夹新增AdminController.cs

在Views文件夹新增Admin文件夹,在Admin文件夹新增Index.cshtml

启动项目,浏览器访问https://localhost:5001/Admin

实际情况不应该直接让用户访问到Admin页面,所以应当跳转到登陆界面

AdminController.cs

startup.cs

再次访问https://localhost:5001/Admin,跳转到登陆界面https://localhost:5001/Account/Login?ReturnUrl=%2FAdmin

在Controllers文件夹新增AccountController.cs

启动项目

登出:localhost:5000/account/logout 访问admin:localhost:5000/admin,跳转到account/login 登陆:localhost:5000/account/makelogin 再次访问admin:localhost:5000/admin,登陆成功访问admin

任务35:JWT 认证授权介绍

可在官网解密:https://jwt.ioarrow-up-right

任务36:应用Jwtbearer Authentication

打开postman调用 http://localhost:5000/api/valuesarrow-up-right

ValuesController.cs

新增一个Models文件夹,在文件夹中新增JwtSettings.cs

appsettings.json

Startup.cs

postman调用 http://localhost:5000/api/valuesarrow-up-right 返回401,未授权

任务37:生成 JWT Token

新建文件夹ViewModels,在文件夹中新建LoginViewModel.cs

AuthorizeController.cs

Startup.cs

appsettings.json

postman调用 http://localhost:5000/Authorize/Tokenarrow-up-right 返回Token

加上token调用 http://localhost:5000/api/valuesarrow-up-right

token可在官网解密:https://jwt.ioarrow-up-right

输入正确的SecretKey:Hello-key.jessetalk

任务38:JWT 设计解析及定制

新建文件MyTokenValidator.cs

Startup.cs

AuthorizeController.cs

ValuesController.cs

输入一个错误的mytoken,返回403 Forbidden,禁止访问

输入一个正确的mytoken,返回200 OK

任务39:Role以及Claims授权

Role授权

AuthorizeController.cs

ValuesController.cs

带着token访问,返回403 Forbidden,禁止访问

AuthorizeController.cs修改为user,可访问

Claims授权

Startup.cs

ValuesController.cs

AuthorizeController.cs

带着token访问,返回200 Ok

Last updated