以前我们做登陆判断是一般情况是通过实现IAuthorizationFilter 这个过滤器来做的

例如

public class CustomAuthorizationFilterAttribute : Attribute, IAuthorizationFilter
{public void OnAuthorization(AuthorizationFilterContext context){//如果方法上面标记了AllowAnonymous特性,则跳过登录校验-以及权限检查if (context.ActionDescriptor.EndpointMetadata.Any(item => item is AllowAnonymousAttribute)){return;}string userCookie = context.HttpContext.Request.Cookies["CurrentUser"]; //获取Cookieif (userCookie == null){context.Result = new RedirectResult("/Home/Login");  //没有Cookie则跳转到登陆页面}else{return;}}
}

控制器

namespace AuthWeb.Controllers
{//[CustomAuthorizationFilter]  //可以将自定义的过滤器写打到类上,或者将这个过滤器在Startup->Configuration方法类做全局注册public class HomeController : Controller{private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;}public IActionResult Index(){return View();}[AllowAnonymous]public IActionResult LogIn(string name,string password){if ("Admin".Equals(name, StringComparison.CurrentCultureIgnoreCase) && password.Equals("123456"))//用户名忽略大小写比对{base.HttpContext.Response.Cookies.Append("CurrentUser", "Admin", new Microsoft.AspNetCore.Http.CookieOptions{Expires = DateTime.UtcNow.AddMinutes(1)//Cookie 30分钟过期});return new JsonResult(new { Result = true, Message = "登录成功" });}else{return new JsonResult(new { Result = false, Message = "登录失败" });}}}
}

全局注册CustomAuthorizationFilterAttribute过滤器

public class Startup
{public Startup(IConfiguration configuration){Configuration = configuration;}public IConfiguration Configuration { get; }public void ConfigureServices(IServiceCollection services){services.AddControllersWithViews(options=> {options.Filters.Add(typeof(CustomAuthorizationFilterAttribute));//全局权限检查过滤器});}
}

Asp.Net Core 鉴权授权相关推荐

  1. [Asp.Net Core]鉴权授权

    鉴权授权 为了拦截一些操作: 传统的授权方式:session/Cookies来完成: 1.在请求某个Action之前去做校验,验证当前操作者是否登录过,登录过就有权限 2.如果没有权限就跳转到登录页中 ...

  2. ASP.NET Core 认证与授权[7]:动态授权

    基于资源的授权 有些场景下,授权需要依赖于要访问的资源,例如:每个资源通常会有一个创建者属性,我们只允许该资源的创建者才可以对其进行编辑,删除等操作,这就无法通过[Authorize]特性来指定授权了 ...

  3. ASP.NET Core 认证与授权[2]:Cookie认证

    ASP.NET Core 认证与授权[2]:Cookie认证 原文:ASP.NET Core 认证与授权[2]:Cookie认证 由于HTTP协议是无状态的,但对于认证来说,必然要通过一种机制来保存用 ...

  4. ASP.NET Core 认证与授权[6]:授权策略是怎么执行的?

    ASP.NET Core 认证与授权[6]:授权策略是怎么执行的? 原文:ASP.NET Core 认证与授权[6]:授权策略是怎么执行的? 在上一章中,详细介绍了 ASP.NET Core 中的授权 ...

  5. Asp.Net Core 中IdentityServer4 授权流程及刷新Token

    一.前言 上面分享了IdentityServer4 两篇系列文章,核心主题主要是密码授权模式及自定义授权模式,但是仅仅是分享了这两种模式的使用,这篇文章进一步来分享IdentityServer4的授权 ...

  6. Asp.Net Core 中IdentityServer4 授权中心之自定义授权模式

    一.前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完美 ...

  7. ASP.NET Core 认证与授权[5]:初识授权

    经过前面几章的姗姗学步,我们了解了在 ASP.NET Core 中是如何认证的,终于来到了授权阶段.在认证阶段我们通过用户令牌获取到用户的Claims,而授权便是对这些的Claims的验证,如:是否拥 ...

  8. ASP.NET Core 认证与授权[3]:OAuth OpenID Connect认证

    在上一章中,我们了解到,Cookie认证是一种本地认证方式,通常认证与授权都在同一个服务中,也可以使用Cookie共享的方式分开部署,但局限性较大,而如今随着微服务的流行,更加偏向于将以前的单体应用拆 ...

  9. 【鉴权/授权】基于角色的简单授权认证

    微信公众号:趣编程ACE 关注可了解.NET日常开发技巧.如需源码,请公众号留言 源码; 上文回顾 [鉴权/授权]一步一步实现一个简易JWT鉴权 [鉴权/授权]自定义一个身份认证Handler 授权小 ...

最新文章

  1. web 前端常用组件【06】Upload 控件
  2. 怎样在Ubuntu 14.04中安装Java
  3. 【Matlab】函数输入个数不定怎么办?
  4. 【网络通信与信息安全】之深入解析TCP连接中如何确定客户端的端口号
  5. react Native 环境安装配置——图解版一目了然
  6. ASP.NET Core MVC 之依赖注入 Controller
  7. 1万亿次、10亿人、10亿张,科技给生活带来多少改变?
  8. 关于在vue中结合数组方法的this的指向问题
  9. 又有大动作?Pokémon Go开发商Niantic收购AR开发平台8th Wall,达成迄今为止金额最大的一笔收购
  10. linux mysql 修改root密码_MySQL忘了root密码,如何修改?
  11. 怎样快速开发属于自己的微信小程序?
  12. 计算机配置时能关机吗,怎么设置时间让电脑自动关机?
  13. 惠普HP Officejet K7103 打印机驱动
  14. 浅谈a++ 与a--
  15. 获取微信公众号临时素材音频并转war格式
  16. 传说对决服务器无响应怎么办,传说对决一直进不去怎么办
  17. 什么是Redis内存碎片率?碎片如何清理?
  18. 华为鸿蒙harmonyos面相全场,关于华为:HDC2020华为鸿蒙HarmonyOS会带来哪些不一样的体验...
  19. 【枚举】项目一。求对称点
  20. 【帆软报表】报表类型简介

热门文章

  1. Linux 安装WebLogic9.2 MP2(图文详解 教程下载)
  2. 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法
  3. 【YOLOv5 数据集划分】训练和验证、训练验证和测试(train、val)(train、val、test)
  4. threejs添加网格辅助线grid
  5. 水安ABC考试多选练习题库
  6. 在上海,有哪些牛逼的互联网公司?
  7. A Zealer:王自如
  8. 记录一道已知是n,(p-1)*(q-2)和(p-2)*(q-1)的RSA题目writeup
  9. 需求预测模型分类与选择
  10. 机器学习算法基础(使用Python代码)