Asp.Net Core 鉴权授权
以前我们做登陆判断是一般情况是通过实现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 鉴权授权相关推荐
- [Asp.Net Core]鉴权授权
鉴权授权 为了拦截一些操作: 传统的授权方式:session/Cookies来完成: 1.在请求某个Action之前去做校验,验证当前操作者是否登录过,登录过就有权限 2.如果没有权限就跳转到登录页中 ...
- ASP.NET Core 认证与授权[7]:动态授权
基于资源的授权 有些场景下,授权需要依赖于要访问的资源,例如:每个资源通常会有一个创建者属性,我们只允许该资源的创建者才可以对其进行编辑,删除等操作,这就无法通过[Authorize]特性来指定授权了 ...
- ASP.NET Core 认证与授权[2]:Cookie认证
ASP.NET Core 认证与授权[2]:Cookie认证 原文:ASP.NET Core 认证与授权[2]:Cookie认证 由于HTTP协议是无状态的,但对于认证来说,必然要通过一种机制来保存用 ...
- ASP.NET Core 认证与授权[6]:授权策略是怎么执行的?
ASP.NET Core 认证与授权[6]:授权策略是怎么执行的? 原文:ASP.NET Core 认证与授权[6]:授权策略是怎么执行的? 在上一章中,详细介绍了 ASP.NET Core 中的授权 ...
- Asp.Net Core 中IdentityServer4 授权流程及刷新Token
一.前言 上面分享了IdentityServer4 两篇系列文章,核心主题主要是密码授权模式及自定义授权模式,但是仅仅是分享了这两种模式的使用,这篇文章进一步来分享IdentityServer4的授权 ...
- Asp.Net Core 中IdentityServer4 授权中心之自定义授权模式
一.前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完美 ...
- ASP.NET Core 认证与授权[5]:初识授权
经过前面几章的姗姗学步,我们了解了在 ASP.NET Core 中是如何认证的,终于来到了授权阶段.在认证阶段我们通过用户令牌获取到用户的Claims,而授权便是对这些的Claims的验证,如:是否拥 ...
- ASP.NET Core 认证与授权[3]:OAuth OpenID Connect认证
在上一章中,我们了解到,Cookie认证是一种本地认证方式,通常认证与授权都在同一个服务中,也可以使用Cookie共享的方式分开部署,但局限性较大,而如今随着微服务的流行,更加偏向于将以前的单体应用拆 ...
- 【鉴权/授权】基于角色的简单授权认证
微信公众号:趣编程ACE 关注可了解.NET日常开发技巧.如需源码,请公众号留言 源码; 上文回顾 [鉴权/授权]一步一步实现一个简易JWT鉴权 [鉴权/授权]自定义一个身份认证Handler 授权小 ...
最新文章
- web 前端常用组件【06】Upload 控件
- 怎样在Ubuntu 14.04中安装Java
- 【Matlab】函数输入个数不定怎么办?
- 【网络通信与信息安全】之深入解析TCP连接中如何确定客户端的端口号
- react Native 环境安装配置——图解版一目了然
- ASP.NET Core MVC 之依赖注入 Controller
- 1万亿次、10亿人、10亿张,科技给生活带来多少改变?
- 关于在vue中结合数组方法的this的指向问题
- 又有大动作?Pokémon Go开发商Niantic收购AR开发平台8th Wall,达成迄今为止金额最大的一笔收购
- linux mysql 修改root密码_MySQL忘了root密码,如何修改?
- 怎样快速开发属于自己的微信小程序?
- 计算机配置时能关机吗,怎么设置时间让电脑自动关机?
- 惠普HP Officejet K7103 打印机驱动
- 浅谈a++ 与a--
- 获取微信公众号临时素材音频并转war格式
- 传说对决服务器无响应怎么办,传说对决一直进不去怎么办
- 什么是Redis内存碎片率?碎片如何清理?
- 华为鸿蒙harmonyos面相全场,关于华为:HDC2020华为鸿蒙HarmonyOS会带来哪些不一样的体验...
- 【枚举】项目一。求对称点
- 【帆软报表】报表类型简介
热门文章
- Linux 安装WebLogic9.2 MP2(图文详解 教程下载)
- 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法
- 【YOLOv5 数据集划分】训练和验证、训练验证和测试(train、val)(train、val、test)
- threejs添加网格辅助线grid
- 水安ABC考试多选练习题库
- 在上海,有哪些牛逼的互联网公司?
- A Zealer:王自如
- 记录一道已知是n,(p-1)*(q-2)和(p-2)*(q-1)的RSA题目writeup
- 需求预测模型分类与选择
- 机器学习算法基础(使用Python代码)