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

asp与php做网站哪个好国内品牌备案建站

asp与php做网站哪个好,国内品牌备案建站,专业外贸公司网站,wordpress 模板教程使用 System.IdentityModel.Tokens.Jwt 直接实现基于 JWT 的鉴权和授权#xff0c;可以在 ASP.NET Core 中手动生成、解析、验证 JWT Token。System.IdentityModel.Tokens.Jwt 提供了 JWT 的生成和解析的 API。以下是如何使用该库实现鉴权授权的详细步骤。 步骤 1: 安装 NuGe…使用 System.IdentityModel.Tokens.Jwt 直接实现基于 JWT 的鉴权和授权可以在 ASP.NET Core 中手动生成、解析、验证 JWT Token。System.IdentityModel.Tokens.Jwt 提供了 JWT 的生成和解析的 API。以下是如何使用该库实现鉴权授权的详细步骤。 步骤 1: 安装 NuGet 包 确保安装了以下包来使用 JWT dotnet add package System.IdentityModel.Tokens.Jwt步骤 2: 生成 JWT Token 使用 JwtSecurityTokenHandler 来生成 JWT Token。一般情况下会在用户登录成功后生成 Token 并返回给客户端。 生成 Token 的代码示例 using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text;public class JwtTokenService {private readonly IConfiguration _configuration;public JwtTokenService(IConfiguration configuration){_configuration configuration;}public string GenerateToken(string username){// 从配置中读取密钥var key new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration[JwtSettings:Secret]));var creds new SigningCredentials(key, SecurityAlgorithms.HmacSha256);// 定义 Token 的声明可以存储用户的标识信息var claims new[]{new Claim(JwtRegisteredClaimNames.Sub, username),new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())// 可以添加更多的自定义声明如角色等};// 创建 Tokenvar token new JwtSecurityToken(issuer: _configuration[JwtSettings:Issuer],audience: _configuration[JwtSettings:Audience],claims: claims,expires: DateTime.Now.AddMinutes(120), // 设置过期时间signingCredentials: creds);// 生成 JWT 并返回return new JwtSecurityTokenHandler().WriteToken(token);} }步骤 3: 验证 JWT Token 客户端在请求时会携带 JWT Token通常在 HTTP 请求的 Authorization 头中服务器端需要验证 Token 的有效性。在验证 JWT 时我们可以使用 JwtSecurityTokenHandler.ValidateToken 方法。 验证 Token 的代码示例 using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; using System.Text;public class JwtTokenValidator {private readonly IConfiguration _configuration;public JwtTokenValidator(IConfiguration configuration){_configuration configuration;}public ClaimsPrincipal ValidateToken(string token){var tokenHandler new JwtSecurityTokenHandler();var key Encoding.UTF8.GetBytes(_configuration[JwtSettings:Secret]);try{// 验证 Token 的参数设置var validationParameters new TokenValidationParameters{ValidateIssuerSigningKey true,IssuerSigningKey new SymmetricSecurityKey(key),ValidateIssuer true,ValidateAudience true,ValidIssuer _configuration[JwtSettings:Issuer],ValidAudience _configuration[JwtSettings:Audience],ValidateLifetime true, // 验证 Token 是否过期ClockSkew TimeSpan.Zero // 不允许时间偏差};// 验证 Token 并返回解析后的 ClaimsPrincipalvar principal tokenHandler.ValidateToken(token, validationParameters, out SecurityToken validatedToken);// 验证通过返回解析后的 Token 信息return principal;}catch (Exception){// 验证失败返回 nullreturn null;}} }步骤 4: 使用 JWT 鉴权授权 在 ASP.NET Core 中集成 JWT 鉴权时通常会在 HTTP 请求的 Authorization 头中传递 Token格式为 Bearer Token。如果你要手动处理 Token 的验证可以在控制器或中间件中直接调用 JwtTokenValidator 类来验证 Token。 客户端请求的示例 GET /api/protected/data HTTP/1.1 Host: yourdomain.com Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...在控制器中使用手动验证 Token [ApiController] [Route(api/[controller])] public class ProtectedController : ControllerBase {private readonly JwtTokenValidator _tokenValidator;public ProtectedController(JwtTokenValidator tokenValidator){_tokenValidator tokenValidator;}[HttpGet(data)]public IActionResult GetProtectedData(){var token Request.Headers[Authorization].ToString().Replace(Bearer , );// 验证 Token 的有效性var principal _tokenValidator.ValidateToken(token);if (principal null){// Token 无效或验证失败return Unauthorized(new { message Invalid Token });}// 返回受保护的数据return Ok(new { message This is protected data, user principal.Identity.Name });} }步骤 5: 添加授权逻辑 在 JWT Token 中可以加入自定义的 Claim如角色或权限之后根据这些 Claim 执行角色或权限的授权检查。 添加角色到 JWT 在生成 JWT 时可以添加角色到 Token 中 var claims new[] {new Claim(JwtRegisteredClaimNames.Sub, username),new Claim(ClaimTypes.Role, Admin), // 添加角色信息new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) };根据角色进行授权 在验证 Token 后你可以通过检查 ClaimsPrincipal 中的角色来决定是否授权用户访问某些资源。 public IActionResult GetAdminData() {var token Request.Headers[Authorization].ToString().Replace(Bearer , );var principal _tokenValidator.ValidateToken(token);if (principal null){return Unauthorized(new { message Invalid Token });}// 检查用户是否拥有 Admin 角色if (!principal.IsInRole(Admin)){return Forbid(new { message You do not have access to this resource });}// 返回管理员数据return Ok(new { message This is admin data }); }System.IdentityModel.Tokens.Jwt 提供了完整的 JWT 生成和验证功能适用于手动处理 Token 逻辑的场景。
http://www.w-s-a.com/news/869382/

相关文章:

  • 2008r2网站建设张店网站建设方案
  • 企业网站首页学生做的网站成品
  • 网站开发 架构设计企业信息管理系统的组成不包括
  • 网站维护模式网页传奇游戏平台排行
  • 企业网站改自适应蛋糕方案网站建设
  • 网站开发技术职责网站升级中html
  • 天网网站建设百度权重高的网站
  • 明年做哪些网站致富网站站长 感受
  • 东莞营销网站建设优化怎么做微信网站推广
  • 网站建设一个多少钱php网站服务器怎么来
  • 引流用的电影网站怎么做2012服务器如何做网站
  • 什么网站可以做推广广州安全信息教育平台
  • 网站开发具备的相关知识wordpress简约文字主题
  • asp网站伪静态文件下载seo外包公司哪家好
  • 淘宝客网站根目录怎么建个废品网站
  • 网站备案更改需要多久百度免费网站空间
  • 外发加工是否有专门的网站wordpress主页 摘要
  • 企业网站优化系统浙江建设信息港证书查询
  • 很多年前的51网站如何做跨境电商需要哪些条件
  • 网站建设中 请稍后访问互联网营销设计
  • 软文网站名称用户浏览网站的方式
  • 大兴模版网站搭建哪家好网站建设与管理管理课程
  • 四川成都网站制作微信广告平台推广
  • 网站价格网页制作网站开发实训步骤
  • cms 导航网站鹤壁做网站价格
  • 微信营销软件免费版郑州关键词优化费用
  • 邢台专业做网站哪家好临沂网站建设中企动力
  • 建设网站是主营成本吗wordpress 后台
  • 猎头可以做单的网站企业网站建设
  • 建小程序需要网站吗在putty上怎样安装wordpress