Startup 中 ConfigureServices 插入

services.AddAuthentication(options =>{options.DefaultAuthenticateScheme = "MyCookieAuthenticationScheme";options.DefaultChallengeScheme = "MyCookieAuthenticationScheme";options.DefaultSignInScheme = "MyCookieAuthenticationScheme";}).AddCookie("MyCookieAuthenticationScheme", options =>{options.AccessDeniedPath ="/Home";options.LoginPath = "/Home";});

Configure 中增加

app.UseAuthentication();

控制器中使用

public JsonResult LoginCheck(string username, string password){var user = _***.***(username, password); //检测用户是否正确if (user.code == 0){var claims = new List<Claim>(){new Claim(ClaimTypes.Sid,Convert.ToString(user.data.id)),new Claim(ClaimTypes.Name,user.data.username),                    //new Claim(ClaimTypes.Role,user.data.usergroup)
                };string groupstr = user.data.usergroup; //通过后台调用权限属性string[] GroupSplit = groupstr.Split(',');if (GroupSplit != null){for (int i = 0; i < GroupSplit.Length; i++){claims.Add(new Claim(ClaimTypes.Role, GroupSplit[i]));}}var identity = new ClaimsIdentity(claims, "Login");var userPrincipal = new ClaimsPrincipal(identity);HttpContext.SignInAsync("MyCookieAuthenticationScheme", userPrincipal, new AuthenticationProperties{ExpiresUtc = DateTime.UtcNow.AddMinutes(20),IsPersistent = false,AllowRefresh = false});}return Json(new { code = user.code, msg = user.result, data = user.data });}

获取结果

var userId = User.FindFirst(ClaimTypes.Sid).Value;var userName = User.Identity.Name;var rolelist = User.FindAll(ClaimTypes.Role);HttpContext.Response.WriteAsync($"测试结果  {userId}---{userName}--{rolelist}");

退出登录

public async Task<IActionResult> Logout(){await HttpContext.SignOutAsync("MyCookieAuthenticationScheme");return RedirectToAction("Index", "Home");}

  

转载于:https://www.cnblogs.com/almmm/p/11533154.html

authorize(权限验证)相关推荐

  1. Authorize权限验证

    项目中需要用到权限验证,但是没做过,经过一番学习,找到了个简单的实现,这里记录一下,防走丢. 项目使用的是.net freamwork 框架. 用户请求时,需要在请求头中带权限验证参数. 首先,建一个 ...

  2. shopnc 支持 支付宝快捷登陆 shopnc权限验证原理说明

    为目前使用的是shopnc商场二次开发,shopnc本身做了qq互联和微博快捷登陆的api,做成了集成通用的接口 首先说下基本的这种类型的api访问方式,首先,的有个配置文件,配置你申请的id和key ...

  3. Swagger生成的接口需要权限验证的处理方法

    通常开发API的时候需要对接口进行权限验证,而我们在使用Swagger生成接口文档界面的时候,直接调用需要权限验证的接口会提示"当前用户没有登陆" 为了解决此问题,我们需要更改一下 ...

  4. [Abp 源码分析]权限验证

    点击上方蓝字关注我们 0.简介 Abp 本身集成了一套权限验证体系,通过 ASP.NET Core 的过滤器与 Castle 的拦截器进行拦截请求,并进行权限验证.在 Abp 框架内部,权限分为两块, ...

  5. 跟我一起学.NetCore之熟悉的接口权限验证不能少(Jwt)

    前言 权限管控对于一个系统来说是非常重要的,最熟悉不过的是菜单权限和数据权限,上一节通过Jwt实现了认证,接下来用它实现接口权限的验证,为什么不是菜单权限呢?对于前后端分离而言,称其为接口权限感觉比较 ...

  6. 【 .NET Core 3.0 】框架之五 || JWT权限验证

    前言 关于JWT一共三篇 姊妹篇,内容分别从简单到复杂,一定要多看多想: 一.Swagger的使用 3.3 JWT权限验证[修改] 二.解决JWT权限验证过期问题 三.JWT完美实现权限与接口的动态分 ...

  7. WebApi权限验证流程的设计和实现

    前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权 ...

  8. Rails权限验证工具Pundit

    在人们开始使用Rails 4之后, cancan的复杂以及兼容性修复不及时而遭人诟病,大家将目光投向了新的工具 Pundit. Pundit是一个纯ruby的gem,用于权限验证. 基本思路 Pund ...

  9. ASP.NET MVC使用Authorize过滤器验证用户登录

    ASP.NET MVC使用Authorize过滤器验证用户登录.Authorize过滤器首先运行在任何其它过滤器或动作方法之前,主要用来做登录验证或者权限验证. 示例:使用Authorize过滤器实现 ...

最新文章

  1. 企业品牌竞争力研究(二):提高企业品牌竞争力的要素(创新SPR理论)
  2. 不同Activity之间传递数据--Bundle对象和startActivityForResult方法的实现
  3. 跟我一起写 Makefile(六)
  4. Flask-请求上下文
  5. mint-UI引用后样式不对
  6. Unity Android解决信息流广告关闭报错
  7. python excel模板 插件_python脚本——自动推送txt,EXCEL等文件模板
  8. java web 有哪些标签库_java web中jsp常用标签
  9. python开课吧1980课程_开课吧的课程怎么样?
  10. block chain
  11. sql 孩子兄弟表示法 所有子节点_数据结构,二叉树遍历,孩子兄弟表示法,算法设计题...
  12. 非对称加密 DH算法
  13. excel如何把顺序倒过来_Excel中表格进行颠倒顺序的操作方法
  14. matlab堆积式玫瑰图,[转帖]堆积式南丁格尔玫瑰图模板
  15. 最新杭州地铁开通时间表
  16. js 打开指定的浏览器_如何实现一个谷歌浏览器插件
  17. requestLayout() improperly called by
  18. hazelcast_使用Hazelcast发布和订阅
  19. 常见的传输介质及其特性
  20. Error: spawn cmd ENOENT at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19

热门文章

  1. Win10微信查看图片卡顿或发送图片卡顿的原因和解决方法
  2. xml文件基本格式与解析
  3. Linux查询磁盘空间命令
  4. Python爬虫系列之爬取某奢侈品小程序店铺商品数据
  5. 人活着的意义是什么?
  6. 用html做个猜字游戏,HTML5 Canvas API制作简单的猜字游戏
  7. 十道必问的软件测试面试题(含答案解析)
  8. 数字电路反相器符号_数字电路知识总结
  9. SpringBoot+Vue实现前后端分离的小而学在线考试系统
  10. 边际效用递减推导需求曲线_软件需求曲线