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

南京自助建站软件下列哪些不属于企业网站建设基本原则

南京自助建站软件,下列哪些不属于企业网站建设基本原则,中国古建筑网站,寺庙网站模板微信公众号#xff1a;趣编程ACE关注可了解.NET日常开发技巧。如需源码#xff0c;请公众号留言 源码;**[如果您觉得本公众号对您有帮助#xff0c;欢迎下方扫码加入群聊]鉴权、授权专题之简易鉴权我记得作为实习生去公司上班的时候#xff0c;领导就直接让我熟悉注册、登录… 微信公众号趣编程ACE关注可了解.NET日常开发技巧。如需源码请公众号留言 源码;**[如果您觉得本公众号对您有帮助欢迎下方扫码加入群聊]鉴权、授权专题之简易鉴权我记得作为实习生去公司上班的时候领导就直接让我熟悉注册、登录逻辑emm 用他的话来说就是这部分跟业务关联性不是很大你先看看。。。登录注册是跟业务逻辑不咋挂钩但是对框架得熟悉呀好吧自此咱就开始了搬砖路咯~安装需要的Nuget包1System.IdentityModel.Tokens.Jwt    2 3Microsoft.AspNetCore.Authentication  4 5Microsoft.AspNetCore.Authentication.JwtBearerSystem.IdentityModel.Tokens.Jwt 包含了用于提供创建、序列化、验证Json Web Token的一些类型Microsoft.AspNetCore.Authentication 一个用来各种身份验证中间件的Asp.Net Core的基本类型Microsoft.AspNetCore.Authentication.JwtBearer 这是一个能接受Token的中间件新建一个基于.Net6 的web api项目前言1public interface IAuthenticate 2{ 3        string Login(string userName,string password); // 包含一个登录方法 4}创建一个IAuthenticate的接口里面包含一个登录方法,接着便创建一个实现类实现Login方法与此同时我们需要将这个接口服务在容器里面依赖注入一下。1public class AuthenticateImpl : IAuthenticate 2{ 3     public string Login(string userName, string password) 4     { 5        ..... 6     }; 7}1// Program.cs 文件里面依赖注入 2builder.Services.AddSingletonIAuthenticate(new AuthenticateImpl(key));我们知道在登录逻辑里面我们需要对传递过来的用户名和密码在数据库里面check一下只有真真实实存在这个用户我们才会创建并分发Token。在这里我为了节省代码模拟一下check逻辑1private readonly IDictionarystring,string users  new Dictionarystring,string 2{ 3     {person1,aaaaa}, 4     {person2,bbbbb}, 5};定义一个用户字典key为用户名value为密码 此处不考虑密码编码加密一切从简。接着开始登录验证。。。。1public string Login(string userName, string password) 2{ 3  // check 用户真实存在  4  if(!users.Any(uu.KeyuserName  u.Valuepassword)) 5  { 6       return null; 7  }  8  // 在验证用户成功后开始创建Token 9}创建Token1public string Login(string userName, string password)2{3            // check 用户真实存在 4   if(!users.Any(uu.KeyuserName  u.Valuepassword))5   {6                return null;7   }8   // 创建Token9   var tokenHandle  new JwtSecurityTokenHandler(); // 实例化一个 JwtSecurityTokenHandler 对象 10   var tokenKey  Encoding.ASCII.GetBytes(_key); 11   var tokenDescriptor  new SecurityTokenDescriptor 12   { 13       Subject  new ClaimsIdentity(new Claim[] 14       { 15                    new Claim(ClaimTypes.Name,userName) 16       }), 17       Expires  DateTime.UtcNow.AddHours(1), 18       SigningCredentials  new SigningCredentials( 19            new SymmetricSecurityKey(tokenKey), 20            SecurityAlgorithms.HmacSha256Signature) 21       }; 22       var token  tokenHandle.CreateToken(tokenDescriptor); 23       return tokenHandle.WriteToken(token); 24}详解  首先我们需要实例化一个JwtSecurityTokenHandler 对象这个对象呢提供了创建Token的方法其中一个就是WriteToken()这个方法此方法入参是一个SecurityToken对象那么如何创建这个SecurityToken对象呢从上述代码的22行可以看出利用CreateToken()这个方法可以实现而这个方法又需要一个SecurityTokenDescriptor对象。所以我们将目光移至11行自此就是一个生成Token的全部过程。开启中间件鉴权1// Asp.net core 内置的鉴权方案2builder.Services.AddAuthentication(x3{4    x.DefaultAuthenticateScheme  JwtBearerDefaults.AuthenticationScheme; // 默认是Bearer 方案5    x.DefaultChallengeScheme  JwtBearerDefaults.AuthenticationScheme;6}).AddJwtBearer(x7{8    x.RequireHttpsMetadata false;9    x.SaveToken true; 10    x.TokenValidationParameters  new TokenValidationParameters 11    { 12        ValidateIssuerSigningKey  true, 13        IssuerSigningKey  new SymmetricSecurityKey(Encoding.ASCII.GetBytes(key)), 14        ValidateIssuer  false, 15        ValidateAudience  false 16    }; 17}); 18 19app.UseAuthentication(); // 使用鉴权接口访问我们在Api控制器上加上[Authorize()]特性这样整个控制器都需要经过token验证除非接口上面有[AllowAnonymous]特性修饰1[Authorize()] 2[ApiController] 3[Route(api/[controller])] 4public class TestJwtController : ControllerBase 5{ 6... 7}对于登录接口1[AllowAnonymous]2[HttpPost(login)]3public IActionResult Login(User user)4{5   // 根据用户名和密码验证用户并生成Token6   var token _authenticate.Login(user?.UserName,user?.Password);7   if(token is null)8   {9     return Unauthorized();  // 返回401 10   } 11   return Ok(token); // 返回token 登录成功 12}
http://www.zqtcl.cn/news/433104/

相关文章:

  • html制作网站推广最有效的办法
  • 做网站推广的工作内容凡客诚品创始人
  • 网站开发pc端和手机端外贸建设网站公司
  • 长沙哪家网站设计好上海成品网站
  • wordpress商城插件收费哪里可以做网站优化
  • 中国建设银行u盾下载假网站吗wordpress有没有付费
  • 海南哪家公司做网站开发一套管理系统多少钱
  • 做网站建设费用百姓网
  • 西安建设厅网站wpf做网站教程
  • 好的网页网站设计wordpress对外发邮件
  • 湖北网站建设贴吧信用宁波企业网查询
  • 佛山市官网网站建设多少钱网站建设与管理书籍
  • 网站建设佰金手指科杰二八佛山有那几家做网站
  • 网站建设刂搜金手指下拉贰伍wordpress 外链自动nofflow
  • 搭建一个网站多少钱手机软件开发用什么语言
  • 太原专业网站建设杭州网络推广专员
  • 广西专业建网站橙米网站建设
  • 百度做的网站能优化吗html网站系统
  • php素材网站源码免费下载网站维护的内容有哪些
  • 打鱼跟电子游戏网站怎么做佛山微网站开发哪家好
  • 知名的网站建设网站在工信部备案
  • 网站首页的快照更新慢爆wordpress密码
  • dw做网站背景图片设置铺平微博通 wordpress
  • 勉县网站建设电商网站要素
  • 重庆旅游seo整站优化网站制作的一般步骤是什么
  • 网站建设评估体系p2p网站建设框架
  • .net 快速网站开发东莞网站建设公司哪家好
  • 东莞个人网站设计潍坊专业人员继续教育
  • 网站建设如何创业建设招标网官网
  • 公司没有销售网站怎么做业务怎么做微信推送 网站