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

临沂小学网站建设ssh框架做的家政服务网站

临沂小学网站建设,ssh框架做的家政服务网站,广东建设项目备案公示网站,昆明网站设计公司哪家好本文以一个完整的示例,展示如何在.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/33926/

相关文章:

  • 建设网站需要哪些费用大学部门宣传视频创意
  • 做网站按什么收费安徽建设网证书查询
  • 网络公司网站创建让别人做网站需要注意什么问题
  • 青岛做网站建设的公司做静态网站的开题报告
  • 百度云建站漳州北京网站建设公司
  • 自己做网站难不难长寿网站建设
  • ifront做原型控件的网站天津网
  • 重庆 网站设计国外网站开发技术现状
  • php商城网站的要求与数据html手机网站如何制作
  • 网建网站sem和seo的工作
  • 深圳市罗湖区网站建设网页版游戏排行榜传奇
  • 厦门网站建设公司推荐wordpress取消page
  • 安徽住房和城乡建设厅注册网站seo快速排名软件首页
  • 网站建设注意哪些问题助贷获客系统
  • 专业网站推广公司网站建设与管理的论文
  • 济南网站制作厂家兴安盟住房和城乡建设部网站
  • 服务器网站建设教程视频网站后台更新前台不显示
  • 国外php网站源码北京网络维护公司
  • 做网站销售那里找客户wordpress侧边栏折叠菜单
  • 肇庆企业自助建站wordpress线下安装教程
  • 网站后台登录地址修改京东云服务器怎么做网站
  • 自己建设个人网站要花费多少优化大师下载安装
  • 小城市网站建设学校网站管理系统免费版
  • 专门做国外网站闵行北京网站建设
  • 如何看一个网站的备案在哪里做的wap网站设计
  • 网站开发和网页设计的区别苏州网站建设报价单
  • 完全菜鸟七天学会建网站台州seo排名扣费
  • 做二手网站有哪些微服务网站
  • 做的比较好的时尚网站广州优质网站建设案例
  • 网站建设简洁django做网站好吗