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

东台网站制作wordpress给分类做模板

东台网站制作,wordpress给分类做模板,上海浦东网站设计公司,做设计用图片的网站微信公众号#xff1a;趣编程ACE关注可了解.NET日常开发技巧。如需源码#xff0c;请公众号留言 [源码];上文回顾【鉴权/授权】一步一步实现一个简易JWT鉴权自定义身份验证CustomerAuthenticationHandler使用上篇文章我演示了如何利用.net core 里面内置的验证方案-Bearer 进… 微信公众号趣编程ACE关注可了解.NET日常开发技巧。如需源码请公众号留言 [源码];上文回顾【鉴权/授权】一步一步实现一个简易JWT鉴权自定义身份验证CustomerAuthenticationHandler使用上篇文章我演示了如何利用.net core 里面内置的验证方案-Bearer 进行身份验证本文通过一个简单的例子来实现自定义身份验证流程。超清观看哦~首先创建一个登录服务里面有三大步骤1//Step1: 登录接口 需要在内置容器里面依赖注入2public interface ICustomerAuthentication3{4        ...5}67// 接口的实例8public class CustomerAuthentication : ICustomerAuthentication9{ 10   // Step2提供一个登录方法 11   public string Login(string userName, string password) 12   { 13 14   } 15} 16 17// Step3: 容器依赖注入 18builder.Services.AddSingletonICustomerAuthentication,CustomerAuthentication();登录接口实现1// 相当于在内存里面定义一个用户对象集合 模拟从数据库查询获取用户对象 方便check2private readonly IDictionarystring,string users  new Dictionarystring,string3{4    {p1,a1},5    {p2,a2},6};7// 存放token集合8private readonly IDictionarystring,string tokens  new Dictionarystring,string();9public IDictionarystring,string Tokens tokens; // 实现接口 并初始化 10 11public string Login(string userName, string password) 12{ 13   // check 用户真实存在  14   if(!users.Any(uu.KeyuserName  u.Valuepassword)) 15   { 16       return null; 17   } 18   // create token 通过一个Guid 类型的数据来代替token 仅为演示 19   var token  new Guid().ToString(); 20   tokens.Add(token,userName); 21   return token ; 22}创建一个自定义CustomerAuthenticationHandler类1public class CustomerAuthenticationHandler :AuthenticationHandlerBasicAuthenticationOptions 2{ 3   ... 4}其中CustomerAuthenticationHandler需要继承AuthenticationHandler接口这个接口需要一个用于身份验证的Options配置类所以需要定义一下BasicAuthenticationOptions 继承AuthenticationSchemeOptions1public class BasicAuthenticationOptions :AuthenticationSchemeOptions 2{ 3 4}实现HandleAuthenticateAsync方法1protected override async TaskAuthenticateResult HandleAuthenticateAsync()2        {3            // throw new NotImplementedException();4            if(!Request.Headers.ContainsKey(Authorization))5            {6                return AuthenticateResult.Fail(UnAuthorized);7            }89            // 获取请求头里面 Authorization对应的value 10            string authenticationHeader  Request.Headers[Authorization]; 11            if(string.IsNullOrEmpty(authenticationHeader)) 12            { 13                return AuthenticateResult.Fail(UnAuthorized); 14            } 15            if(!authenticationHeader.StartsWith(Bearer,StringComparison.OrdinalIgnoreCase)) 16            { 17                return AuthenticateResult.Fail(UnAuthorized); 18            } 19            // 获取token 20            string token  authenticationHeader.Substring(bearer.Length).Trim(); 21            if(string.IsNullOrEmpty(token)) 22            { 23                return AuthenticateResult.Fail(UnAuthorized); 24            } 25 26            try 27            { 28                // 验证token 调用下方ValidateToken() 这个方法 29                return ValidateToken(token); 30            } 31            catch (System.Exception ex) 32            { 33                // 记录日志 34                return AuthenticateResult.Fail(UnAuthorized); 35            } 36        } 37 38private AuthenticateResult ValidateToken(string token) 39        { 40           var validateToken  _customerAuthentication.Tokens.FirstOrDefault(tt.Key token); 41           if(validateToken.Key is null ) 42           { 43               return AuthenticateResult.Fail(UnAuthorized); 44           } 45           var claims  new ListClaim 46           { 47               new Claim(ClaimTypes.Name,validateToken.Value) 48           }; 49 50           var identity  new ClaimsIdentity(claims,Scheme.Name); 51           var principle  new GenericPrincipal(identity,null); 52           var ticket  new AuthenticationTicket(principle,Scheme.Name); 53           return AuthenticateResult.Success(ticket); 54        }该方法返回一个AuthenticateResult类型的对象来表示身份验证是否成功如果成功需要将这个票据返还给用户。那么为啥需要票据呢因为我们在Http传输协议下需要保证附加在请求头或者请求参数的内容的安全性所以需要将principal对象包裹成AuthenticationTicket对象在后者里面我们可以增加一些安全配置。DI中注册认证服务1// 自定义验证 取名为一个 test 的Scheme方案 2builder.Services.AddAuthentication(test)  3    .AddSchemeBasicAuthenticationOptions,CustomerAuthenticationHandler(test,null);PS:本文来自社区群粉丝投稿~
http://www.huolong8.cn/news/140084/

相关文章:

  • 为什么做织梦网站时图片出不来技术号的网站建设
  • 新公司做网站怎么弄成都微信网站建设推
  • 公司网站制作应该注意些什么做公司网站需要了解哪些东西
  • 医院可以做网站吗新网网站备案流程
  • 抢先注册网站域名卖掉网页设计的岗位叫什么
  • 做耳机套的网站wordpress标签聚合美化
  • 个人网站一年多少钱功能型网页设计
  • 那个网站可教做课件好广东seo加盟
  • 寄生虫网站怎么做destoon 网站后台显示不出模板
  • 个人免费自助建站网站桐城住房和城乡建设局网站
  • 常用搜索网站晋城城乡建设局网站
  • 西宁好的网站建设男的和女的做那种事情网站
  • 网站建站系统有哪些wordpress移动排版修改
  • 天猫优惠券网站怎么做的智慧城市
  • 公司的网站推广珠海建设集团网站首页
  • 重庆公司免费网站建设怎么建立自己的网站平台多少钱
  • 建设网站是公司资产杭州家具网站建设方案
  • 拍拍网站源码手机网站app
  • golang 网站开发 教程模板网站和定制网站有什么区别
  • 宁波网站设计服务小说网站开发思路
  • 网站备案管局审核松滋网站设计
  • 视频解析网站优惠券网站开发
  • 东港网站建设网站建设美工百度百科
  • 网站开发答辩设计预期目标西安做网站商标
  • 建设网站深圳罗湖安徽白云集团网站建设
  • 永康网站建设专业公司网站教育培训机构
  • 网站联系qq代码广告设计专业课程
  • 网站审核备案 几天北京建设集团网站
  • 建设 市民中心网站天津做网站排名
  • 专业做网站路桥wordpress首页自定义缩略图大小