当前位置: 首页 > news >正文

asp.net core自定义授权过滤器

1.记录点击页面的地址,如果点击页面时未登录,直接跳转到登录页面,登录后直接跳转到自己点击的页面
2.创建授权过滤器

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System.Web;namespace Log4NetTest
{//授权过滤器public class CustomerAuthorizeAttribute : Attribute, IAuthorizationFilter{public void OnAuthorization(AuthorizationFilterContext context){//获取目前地址var controller = context.RouteData.Values["controller"];var action = context.RouteData.Values["action"];//判断是否登录if (!context.HttpContext.User.Identity!.IsAuthenticated){//记录要跳转的页面路径context.Result = newRedirectToActionResult("Login", "WeatherForecast",new { RedirectUrl = HttpUtility.UrlEncode($"/{controller}/{action}") });}}}
}

2.登录接口

[HttpPost]public async Task<IActionResult> Login(string usename, string pwd, string RedirectUrl){var user = await _userManager.FindByNameAsync(usename);if (user != null){var re = await _signInManager.PasswordSignInAsync(user, pwd, false, false);if (re.Succeeded){if (!string.IsNullOrEmpty(RedirectUrl)){//进行页面跳转return Redirect(HttpUtility.HtmlDecode(RedirectUrl));}return Ok();}return Ok();}return Ok();}
http://www.lryc.cn/news/226575.html

相关文章:

  • SW如何显示样条曲线的控标
  • CSS 的 link 标签放在 head 标签之间的作用
  • 【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法
  • 国际版腾讯云/阿里云:云解析DNS是什么
  • 深度学习之基于Django+Tensorflow商品识别管理系统
  • postman 参数化使用csv导入外部数据
  • C语言概述
  • elasticsearch分词器
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • C++17中std::optional的使用
  • c++求三个数的最小公倍数
  • Flink 基础 -- 尝试Flink
  • kubeadm部署k8s及高可用
  • GEE:将鼠标变成十字指针,点击获取影像值,显示值到UI中
  • SpringBoot 项目公共字段填充
  • 分布式搜索引擎ES
  • 2023年05月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • @KafkaListener注解详解(一)| 常用参数详解
  • 蓝桥杯算法双周赛心得——被替换的身份证(分类讨论)
  • 实验一:人工智能之启发式搜索算法(含源码+实验报告)
  • C++学习 --类和对象之封装
  • 在Spring Boot中使用JTA实现对多数据源的事务管理
  • 介绍YOLO-NAS Pose:姿势估计的技术
  • 计算机毕业设计 基于SpringBoot的实训管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Python开发运维:Python3.7使用QQ邮箱发送不同类型邮件
  • 二十三种设计模式全面解析-解密迭代器模式:探索遍历之道
  • kubernetes istio
  • 25期代码随想录算法训练营第十四天 | 二叉树 | 递归遍历、迭代遍历
  • 常用布局以及其优缺点
  • 海康工业相机如何提高相机帧率