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

网站改了关键词怎么建立网站 个人热点

网站改了关键词,怎么建立网站 个人热点,我做的网站有时打开很慢什么原因呢,烟台元和网络科技有限公司目录 Session的缺点 JWT#xff08;Json Web Token#xff09; 优点#xff1a; 登录流程 JWT的基本使用 生成JWT 解码JWT 用JwtSecurityTokenHandler对JWT解码 注意 Session的缺点 对于分布式集群环境#xff0c;Session数据保存在服务器内存中就不合适了#…目录 Session的缺点 JWTJson Web Token 优点 登录流程 JWT的基本使用 生成JWT 解码JWT 用JwtSecurityTokenHandler对JWT解码 注意 Session的缺点 对于分布式集群环境Session数据保存在服务器内存中就不合适了应该放到一个中心状态服务器上。ASP.NET Core支持Session采用Redis、Memcached。中心状态服务器有性能问题。 JWTJson Web Token JWT把登录信息也称作令牌保存在客户端。为了防止客户端的数据造假保存在客户端的令牌经过了签名处理而签名的密钥只有服务器端才知道每次服务器端收到客户端提交过来的令牌的时候都要检查一下签名。 优点 状态保存在客户端适合分布式系统。签名保证了客户端无法数据造假。性能更高不需要和中心状态服务器通讯纯内存计算。 登录流程 客户端向服务器端发送用户名密码等请求登录。服务器端校验用户名密码如果校验成功则从数据库中取出这个用户的ID、角色等用户相关信息。服务器端采用只有服务器端才知道的密钥来对用户信息的JSON字符串进行签名形成签名数据。服务器端把用户信息的JSON字符串和签名拼接到一起形成JWT然后发送给客户端。客户端保存服务器端返回的JWT并且在客户端每次向服务器端发送请求的时候都带上这个JWT。每次服务器端收到浏览器请求中携带的JWT后服务器端用密钥对JWT的签名进行校验如果校验成功服务器端则从JWT中的JSON字符串中读取用户的信息。这样服务器端就知道这个请求对应的用户了。 JWT的基本使用 NuGetSystem.IdentityModel.Tokens.Jwt 生成JWT using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text;//claim是一个键值对用来存储用户信息比如用户id用户名角色等 var claims new ListClaim() {new Claim(ClaimTypes.NameIdentifier, 123),new Claim(ClaimTypes.Name, ljy),new Claim(ClaimTypes.Role, admin),new Claim(ClaimTypes.Role, user),new Claim(Passport, E90000082),new Claim(Id, E90000082) }; string key jddsjf54$$%45445%^$gvdfgd8d454dgji34jk; //设置过期时间30分钟后过期 DateTime expires DateTime.Now.AddMinutes(30); byte[] keyBytes Encoding.UTF8.GetBytes(key); //对称秘钥 var secKey new SymmetricSecurityKey(keyBytes); //签名凭据 var credentials new SigningCredentials(secKey, SecurityAlgorithms.HmacSha256Signature); //创建jwtSecurityToken var tokenDescriptor new JwtSecurityToken(claims: claims,//声明expires: expires,//过期时间signingCredentials: credentials//签名凭据); //生成token string jwt new JwtSecurityTokenHandler().WriteToken(tokenDescriptor); Console.WriteLine(jwt); 解码JWT using System.Text;string jwt eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjEyMyIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiJsankiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiYWRtaW4iLCJ1c2VyIl0sIlBhc3Nwb3J0IjoiRTkwMDAwMDgyIiwiSWQiOiJFOTAwMDAwODIiLCJleHAiOjE3Mzg4MzAxMTB9.frI1BwyedlIfuIcWgkxfNsbXkaJJ01M3iNo7wXt6Fy8;string[] strs jwt.Split(.); string header JwtDecode(strs[0]); string payload JwtDecode(strs[1]); Console.WriteLine(---head---); Console.WriteLine(header); Console.WriteLine(---payload---); Console.WriteLine(payload);string JwtDecode(string s) {s s.Replace(-, ).Replace(_, /);switch (s.Length % 4){case 2:s ;break;case 3:s ;break;}var bytes Convert.FromBase64String(s);return Encoding.UTF8.GetString(bytes); } 用JwtSecurityTokenHandler对JWT解码 using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text;string jwt eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjEyMyIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiJsankiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiYWRtaW4iLCJ1c2VyIl0sIlBhc3Nwb3J0IjoiRTkwMDAwMDgyIiwiSWQiOiJFOTAwMDAwODIiLCJleHAiOjE3Mzg4MzAxMTB9.frI1BwyedlIfuIcWgkxfNsbXkaJJ01M3iNo7wXt6Fy8;string secKey jddsjf54$$%45445%^$gvdfgd8d454dgji34jk; JwtSecurityTokenHandler tokenHandler new(); //设置验证参数 TokenValidationParameters valParam new(); SymmetricSecurityKey securityKey new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secKey)); //获取或设置用于签名验证的 SecurityKey valParam.IssuerSigningKey securityKey; //不验证发行者 valParam.ValidateIssuer false; //不验证接受者 valParam.ValidateAudience false; ClaimsPrincipal claimsPrincipal tokenHandler.ValidateToken(jwt,valParam, out SecurityToken secToken); foreach (Claim claim in claimsPrincipal.Claims) {Console.WriteLine(${claim.Type}{claim.Value}); }注意 负载中的内容是明文形式保存的 不要把不能被客户端知道的信息放到JWT中
http://www.hkea.cn/news/14561619/

相关文章:

  • 免费手机网站建站济南软件优化网站建设
  • 做网站那个公司好网络服务提供者发现用户利用其网络
  • 笔趣阁 网站开发网站建设推广接单语
  • 如何自己做彩票网站网站搜索引擎优化方案范文
  • 惠来网站建设网站建设协议书 印花税
  • 网站建设案例 算命网站手机做网站的教程
  • 建设银行jo 办网站用卡怎么进行网站推广
  • 怎么做通知维护网站网站建设软件下载
  • 收费网站模板查看网站被恶意镜像
  • 黄村网站开发公司电话1千万人网站维护成本
  • 怀化网站优化联系方式wordpress用户后台插件
  • 东营网站seo外包phpnow安装wordpress
  • 塘厦网站建设公司城乡建设部门户网站
  • 网站速度优化工具建筑公司网站平台
  • 制作公司网站公司代理赚钱
  • 做网站一定要用云解析吗公司对比网站
  • 天站网站建设wordpress quiz
  • 沙井网站建设公司宜昌网站建设平台
  • 注册成立一个公司需要多少钱SEO优化网站建设价格
  • 专业微网站建设大型建设网站
  • 建设网站带后台管理十大软件排行榜
  • 那里可以建网站推广网站的公司
  • 网站建设与维护一年多少钱wordpress编辑和作者的权限区别
  • 襄樊市网站建设信息流广告投放是什么
  • 免费制作企业网站哪个网站做推广效果好
  • 建筑国企招聘信息网seo搜索优化服务
  • 西安曲江文化园区建设开发有限公司网站wordpress 3.8漏洞
  • 页面好看的蛋糕网站怀化电视台网站
  • 怎么制作一个网站及小程序怎么把代码添加网站
  • 用c 做的网站怎么打开子域名ip