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

网站建设方案范例施工企业施工生产计划

网站建设方案范例,施工企业施工生产计划,建个人网上银行登录入口,北京建网站报价本文以一个完整的示例,展示如何在.NET 6.0 Web API项目中实现基于Token的身份验证。这个例子包括了如何创建和验证JWT Token,以及如何在控制器中使用这些Token。 步骤 1: 创建Web API项目 首先,用Visual Studio 2022创建一个基于.NET6.0的 …

        本文以一个完整的示例,展示如何在.NET 6.0 Web API项目中实现基于Token的身份验证。这个例子包括了如何创建和验证JWT Token,以及如何在控制器中使用这些Token。

步骤 1: 创建Web API项目

首先,用Visual Studio 2022创建一个基于.NET6.0的 Web API项目。

步骤 2: 安装必要的NuGet包

安装Microsoft.AspNetCore.Authentication.JwtBearer包。

步骤 3: 配置身份验证服务

Program.cs中配置身份验证服务:

using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using System.Text;var builder = WebApplication.CreateBuilder(args);// 添加身份验证服务
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>{options.TokenValidationParameters = new TokenValidationParameters{ValidateIssuer = true,ValidateAudience = true,ValidateLifetime = true,ValidateIssuerSigningKey = true,ValidIssuer = builder.Configuration["Jwt:Issuer"],ValidAudience = builder.Configuration["Jwt:Audience"],IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))};});// 添加授权服务
builder.Services.AddAuthorization();var app = builder.Build();// 使用身份验证和授权中间件
app.UseAuthentication();
app.UseAuthorization();// 其他配置和路由设置app.MapControllers();
app.Run();

步骤 4: 配置JWT设置

appsettings.json中配置JWT的相关设置:

{"Jwt": {"Issuer": "YourIssuer","Audience": "YourAudience","Key": "YourVerySecretKey"}
}

步骤 5: 创建Token生成控制器

创建一个控制器来生成Token:

using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;[ApiController]
[Route("[controller]")]
public class AuthController : ControllerBase
{private readonly IConfiguration _configuration;public AuthController(IConfiguration configuration){_configuration = configuration;}[HttpPost("login")]public IActionResult Login([FromBody] LoginModel model){// 假设这里有一个验证逻辑,验证用户名和密码if (model.Username == "test" && model.Password == "password"){var tokenDescriptor = new SecurityTokenDescriptor{Subject = new ClaimsIdentity(new Claim[]{new Claim(ClaimTypes.Name, model.Username)}),Expires = DateTime.UtcNow.AddMinutes(5),SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"])), SecurityAlgorithms.HmacSha256Signature),Issuer = _configuration["Jwt:Issuer"],Audience = _configuration["Jwt:Audience"]};var tokenHandler = new JwtSecurityTokenHandler();var token = tokenHandler.CreateToken(tokenDescriptor);return Ok(new { token = tokenHandler.WriteToken(token) });}else{return Unauthorized();}}
}public class LoginModel
{public string Username { get; set; }public string Password { get; set; }
}

步骤 6: 创建受保护的控制器

创建一个控制器,只有持有有效Token的用户才能访问:

[ApiController]
[Route("[controller]")]
public class SecretController : ControllerBase
{[Authorize][HttpGet]public IActionResult Get(){return Ok("This is a secret message.");}
}

步骤 7: 调用API

要调用API,首先需要获取Token。可以使用Postman或类似的工具发送一个POST请求到/Auth/login,并提供用户名和密码。然后,使用返回的Token在Authorization头部中发送一个GET请求到/Secret

POST /Auth/login HTTP/1.1
Host: localhost:5000
Content-Type: application/json{"Username": "test","Password": "password"
}
GET /Secret HTTP/1.1
Host: localhost:5000
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidGVzdCIsImV4cCI6MTYxODI3MzYwNSwiaXNzIjoiWW91ciJJc3N1ZXIiLCJhdWQiOiJZb3VyQXV0aGVudGljYXRpb24ifQ.6_3QXxZ3VzZvjZ7RnV5NQz-7y_93fY0Y7Y6jV7-XzQ

确保在实际应用中实现安全的用户验证逻辑,并且不要在代码中硬编码敏感信息。此外,根据你的具体需求,可能还需要实现用户注册、Token刷新等功能

http://www.yayakq.cn/news/748721/

相关文章:

  • 网站标题优化 英文wordpress插件用户
  • 设置网站建设方案室内设计网站平面案例
  • 有可以免费建网站的吗表情包生成器在线制作gif
  • 导航网站模板如何提高网站的自然排名
  • 石景山网站建设做视频网站需要什么架构
  • 网站建设工作简介视频拍摄脚本
  • 网站建设应该学什么四省网站建设
  • 重庆忠县网站建设公司哪家好中国镇江网
  • 备案网站ip谷歌网站流量分析
  • 网站建设的需求分析免费的源码分享网站
  • 网站logo在哪里网站cms系统排名
  • 网站建设费用高开发一个平台
  • 做外贸怎么登陆外国网站国家住房和城乡建设厅网站首页
  • 网站域名免费注册注册小程序账号
  • 天津省网站制作厂家saas微信小程序开发工具
  • weui做购物网站的案例东莞做网站seo优化
  • 建设一个大型电影网站费用大型网站建设优化企业
  • 网站单页推广做竞价托管的公司
  • 二手网站建设情况wordpress主题代码编辑教程
  • 品牌网站升级南京小程序开发网站建设公司
  • 网站免费网站免费麻豆网站开发公司的义务
  • 进入兔展网站做PPt手机搭建wap
  • 建站教程wp廊坊做网站教程
  • 信用 网站 建设方案网站建设技术开发
  • 网站项目建设申请汇报大纲沈阳手机网站建设
  • 室内设计网站免费素材企查查企业信用查询
  • 网站空间根目录如何制作网页图片素材
  • 网站建设什么代码最简单seo 网站换程序
  • 软件定制开发网站建设汉中免费做网站
  • 有了网站源码怎么做网站php网站开发的发展前景