JWT
This commit is contained in:
parent
83a0b987dd
commit
c07b6c1706
12
C_shape/WEBAPI/JWT/API註解操作說明(必看).txt
Normal file
12
C_shape/WEBAPI/JWT/API註解操作說明(必看).txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
JWTdemo資料夾→JWTdemo.csproj 開啟
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings> //新增這兩行
|
||||||
|
<GenerateDocumentationFile>true</GenerateDocumentationFile> //新增這兩行
|
||||||
|
<NoWarn>$(NoWarn);1591</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
1.<GenerateDocumentationFile>true</GenerateDocumentationFile>:這個設定告訴編譯器生成 XML 註解檔案。當您的專案編譯時,它會將 XML 註解嵌入到組件中,以供 Swagger 或其他工具使用。
|
||||||
|
2.<NoWarn>$(NoWarn);1591</NoWarn>:這個設定用來抑制編譯器警告 1591。警告 1591 是指程式碼中的缺少 XML 註解的警告。這裡的設定的意思是告訴編譯器忽略這個特定的警告,因為您已經啟用了 XML 註解生成,而不希望因缺少註解而收到警告。
|
25
C_shape/WEBAPI/JWT/JWTdemo.sln
Normal file
25
C_shape/WEBAPI/JWT/JWTdemo.sln
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.7.34031.279
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JWTdemo", "JWTdemo\JWTdemo.csproj", "{4C54D743-8EE0-44C9-8C9D-010A306C4AE7}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{4C54D743-8EE0-44C9-8C9D-010A306C4AE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4C54D743-8EE0-44C9-8C9D-010A306C4AE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4C54D743-8EE0-44C9-8C9D-010A306C4AE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4C54D743-8EE0-44C9-8C9D-010A306C4AE7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {5537568D-28F4-41EA-A9EE-89BAF86E4808}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
@ -0,0 +1,6 @@
|
|||||||
|
namespace JWTdemo.Authorization;
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Method)]
|
||||||
|
public class AllowAnonymousAttribute : Attribute
|
||||||
|
{
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc.Filters;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using JWTdemo.Entities;
|
||||||
|
|
||||||
|
namespace JWTdemo.Authorization;
|
||||||
|
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
|
||||||
|
public class AuthorizeAttribute : Attribute, IAuthorizationFilter
|
||||||
|
{
|
||||||
|
public void OnAuthorization(AuthorizationFilterContext context)
|
||||||
|
{
|
||||||
|
// skip authorization if action is decorated with [AllowAnonymous] attribute
|
||||||
|
var allowAnonymous = context.ActionDescriptor.EndpointMetadata.OfType<AllowAnonymousAttribute>().Any();
|
||||||
|
if (allowAnonymous)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// authorization
|
||||||
|
var user = (User?)context.HttpContext.Items["User"];
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
// not logged in or role not authorized
|
||||||
|
context.Result = new JsonResult(new { message = "Unauthorized" }) { StatusCode = StatusCodes.Status401Unauthorized };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
23
C_shape/WEBAPI/JWT/JWTdemo/Authorization/JwtMiddleware.cs
Normal file
23
C_shape/WEBAPI/JWT/JWTdemo/Authorization/JwtMiddleware.cs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
namespace JWTdemo.Authorization;
|
||||||
|
public class JwtMiddleware
|
||||||
|
{
|
||||||
|
private readonly RequestDelegate _next;
|
||||||
|
|
||||||
|
public JwtMiddleware(RequestDelegate next)
|
||||||
|
{
|
||||||
|
_next = next;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Invoke(HttpContext context, IUserService userService, IJwtUtils jwtUtils)
|
||||||
|
{
|
||||||
|
var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last();
|
||||||
|
var userId = jwtUtils.ValidateJwtToken(token);
|
||||||
|
if (userId != null)
|
||||||
|
{
|
||||||
|
// attach user to context on successful jwt validation
|
||||||
|
context.Items["User"] = userService.GetById(userId.Value);
|
||||||
|
}
|
||||||
|
//var stop = "1";
|
||||||
|
await _next(context);
|
||||||
|
}
|
||||||
|
}
|
106
C_shape/WEBAPI/JWT/JWTdemo/Authorization/JwtUtils.cs
Normal file
106
C_shape/WEBAPI/JWT/JWTdemo/Authorization/JwtUtils.cs
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
namespace JWTdemo.Authorization;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
using System.IdentityModel.Tokens.Jwt;
|
||||||
|
using System.Security.Claims;
|
||||||
|
using System.Text;
|
||||||
|
using JWTdemo.Entities;
|
||||||
|
using JWTdemo.Helpers;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IJwtUtils
|
||||||
|
{
|
||||||
|
public string GenerateJwtToken(User user);
|
||||||
|
public int? ValidateJwtToken(string? token);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JwtUtils : IJwtUtils
|
||||||
|
{
|
||||||
|
private readonly AppSettings _appSettings;
|
||||||
|
|
||||||
|
public JwtUtils(IOptions<AppSettings> appSettings)
|
||||||
|
{
|
||||||
|
_appSettings = appSettings.Value;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(_appSettings.Secret))
|
||||||
|
throw new Exception("JWT secret not configured");
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GenerateJwtToken(User user)
|
||||||
|
{
|
||||||
|
// generate token that is valid for 7 days
|
||||||
|
var tokenHandler = new JwtSecurityTokenHandler(); //實例化JWT令牌
|
||||||
|
var key = Encoding.ASCII.GetBytes(_appSettings.Secret!); //從配置中獲取應用程序密鑰,用於簽名令牌以確保其完整性和安全性
|
||||||
|
var tokenDescriptor = new SecurityTokenDescriptor //定義令牌格式,其包含header(SigningCredentials).payload(expires和subject).signature(簽在header裡面)
|
||||||
|
{
|
||||||
|
Subject = new ClaimsIdentity(new[] { new Claim("id", user.Id.ToString()) }), //payload
|
||||||
|
Expires = DateTime.UtcNow.AddDays(7), //payload,令牌過期時間
|
||||||
|
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) //header
|
||||||
|
};
|
||||||
|
var token = tokenHandler.CreateToken(tokenDescriptor); //創建JWT令牌
|
||||||
|
return tokenHandler.WriteToken(token); //將JWT令牌轉為base64編碼
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? ValidateJwtToken(string? token)
|
||||||
|
{
|
||||||
|
if (token == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var tokenHandler = new JwtSecurityTokenHandler();
|
||||||
|
var key = Encoding.ASCII.GetBytes(_appSettings.Secret!);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tokenHandler.ValidateToken(token, new TokenValidationParameters
|
||||||
|
{
|
||||||
|
ValidateIssuerSigningKey = true,
|
||||||
|
IssuerSigningKey = new SymmetricSecurityKey(key),
|
||||||
|
ValidateIssuer = false,
|
||||||
|
ValidateAudience = false,
|
||||||
|
// set clockskew to zero so tokens expire exactly at token expiration time (instead of 5 minutes later)
|
||||||
|
ClockSkew = TimeSpan.Zero
|
||||||
|
}, out SecurityToken validatedToken);
|
||||||
|
|
||||||
|
var jwtToken = (JwtSecurityToken)validatedToken;
|
||||||
|
var userId = int.Parse(jwtToken.Claims.First(x => x.Type == "id").Value);
|
||||||
|
|
||||||
|
// return user id from JWT token if validation successful
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// return null if validation fails
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//0523
|
||||||
|
public bool ValidateToken(string token)
|
||||||
|
{
|
||||||
|
var tokenHandler = new JwtSecurityTokenHandler();
|
||||||
|
var jwtSecret = "your_jwt_secret"; // JWT 密钥,应与生成令牌时使用的密钥相匹配
|
||||||
|
|
||||||
|
var validationParameters = new TokenValidationParameters
|
||||||
|
{
|
||||||
|
ValidateIssuerSigningKey = true,
|
||||||
|
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSecret)),
|
||||||
|
ValidateIssuer = false,
|
||||||
|
ValidateAudience = false,
|
||||||
|
ValidateLifetime = true,
|
||||||
|
ClockSkew = TimeSpan.Zero // 设置为零以确保令牌过期时立即失效
|
||||||
|
};
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SecurityToken validatedToken;
|
||||||
|
tokenHandler.ValidateToken(token, validationParameters, out validatedToken);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
28
C_shape/WEBAPI/JWT/JWTdemo/Controllers/UserController.cs
Normal file
28
C_shape/WEBAPI/JWT/JWTdemo/Controllers/UserController.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using JWTdemo.Services;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using JWTdemo.Models;
|
||||||
|
using JWTdemo.Authorization;
|
||||||
|
|
||||||
|
namespace JWTdemo.Controllers
|
||||||
|
{
|
||||||
|
[Authorize] //有token才能使用class
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class UserController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly SqlContext _context;
|
||||||
|
public UserController(SqlContext context)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 測試註解
|
||||||
|
/// </summary>
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<ActionResult<IEnumerable<JWTdemo.Entities.User>>> Getuser()
|
||||||
|
{
|
||||||
|
return await _context.chatuser.ToListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
14
C_shape/WEBAPI/JWT/JWTdemo/Entities/User.cs
Normal file
14
C_shape/WEBAPI/JWT/JWTdemo/Entities/User.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace JWTdemo.Entities
|
||||||
|
{
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public string? Username { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore] //這個就是當有人要get這個資料時,會自動將其隱藏
|
||||||
|
public string? Password { get; set; }
|
||||||
|
}
|
||||||
|
}
|
7
C_shape/WEBAPI/JWT/JWTdemo/Helpers/AppSettings.cs
Normal file
7
C_shape/WEBAPI/JWT/JWTdemo/Helpers/AppSettings.cs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
namespace JWTdemo.Helpers
|
||||||
|
{
|
||||||
|
public class AppSettings
|
||||||
|
{
|
||||||
|
public string? Secret { get; set; }
|
||||||
|
}
|
||||||
|
}
|
20
C_shape/WEBAPI/JWT/JWTdemo/JWTdemo.csproj
Normal file
20
C_shape/WEBAPI/JWT/JWTdemo/JWTdemo.csproj
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
<NoWarn>$(NoWarn);1591</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.7" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.7" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.11" />
|
||||||
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.11" />
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
|
||||||
|
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.30.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
7
C_shape/WEBAPI/JWT/JWTdemo/JWTdemo.csproj.user
Normal file
7
C_shape/WEBAPI/JWT/JWTdemo/JWTdemo.csproj.user
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
|
||||||
|
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
13
C_shape/WEBAPI/JWT/JWTdemo/Models/AuthenticateRequest.cs
Normal file
13
C_shape/WEBAPI/JWT/JWTdemo/Models/AuthenticateRequest.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
namespace JWTdemo.Models;
|
||||||
|
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
|
||||||
|
public class AuthenticateRequest
|
||||||
|
{
|
||||||
|
[Required]
|
||||||
|
public string? Username { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public string? Password { get; set; }
|
||||||
|
}
|
20
C_shape/WEBAPI/JWT/JWTdemo/Models/AuthenticateResponse.cs
Normal file
20
C_shape/WEBAPI/JWT/JWTdemo/Models/AuthenticateResponse.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
namespace JWTdemo.Models;
|
||||||
|
|
||||||
|
using JWTdemo.Entities;
|
||||||
|
|
||||||
|
public class AuthenticateResponse
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public string? Username { get; set; }
|
||||||
|
public string Token { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public AuthenticateResponse(User user, string token)
|
||||||
|
{
|
||||||
|
Id = user.Id;
|
||||||
|
Name = user.Name;
|
||||||
|
Username = user.Username;
|
||||||
|
Token = token;
|
||||||
|
}
|
||||||
|
}
|
130
C_shape/WEBAPI/JWT/JWTdemo/Program.cs
Normal file
130
C_shape/WEBAPI/JWT/JWTdemo/Program.cs
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using JWTdemo.Authorization;
|
||||||
|
using JWTdemo.Helpers;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Reflection;
|
||||||
|
using JWTdemo.Services;
|
||||||
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.OpenApi.Models;
|
||||||
|
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
builder.Services.AddCors();
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
|
||||||
|
// Add services to the container.
|
||||||
|
//builder.Services.AddControllersWithViews();
|
||||||
|
|
||||||
|
//*------------------------------連線PostgreSQL資料庫-----------------------------------------------
|
||||||
|
var connectionString = "Server=localhost;UserID=postgres;Password=vip125125;Database=postgres;port=5432;";
|
||||||
|
builder.Services.AddDbContext<SqlContext>(opt => opt.UseNpgsql(connectionString));
|
||||||
|
|
||||||
|
//*---------------------------------JWT身分驗證-------------------------------------------------------
|
||||||
|
{
|
||||||
|
var services = builder.Services;
|
||||||
|
services.AddCors();
|
||||||
|
services.AddControllers();
|
||||||
|
services.Configure<AppSettings>(builder.Configuration.GetSection("AppSettings"));
|
||||||
|
var jwtSettings = builder.Configuration.GetSection("AppSettings").Get<AppSettings>();
|
||||||
|
|
||||||
|
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.TokenValidationParameters = new TokenValidationParameters
|
||||||
|
{
|
||||||
|
ValidateIssuer = false,
|
||||||
|
ValidateAudience = false,
|
||||||
|
ValidateIssuerSigningKey = true,
|
||||||
|
//ValidIssuer = "your_issuer",
|
||||||
|
// ValidAudience = "your_audience",
|
||||||
|
ClockSkew = TimeSpan.Zero,
|
||||||
|
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Secret))
|
||||||
|
};
|
||||||
|
});
|
||||||
|
services.AddSwaggerGen(c =>
|
||||||
|
{
|
||||||
|
c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebApi_data_value", Version = "v1" });
|
||||||
|
|
||||||
|
// Configure Swagger to use JWT authentication
|
||||||
|
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
|
||||||
|
{
|
||||||
|
Description = "JWT Authorization header using the Bearer scheme",
|
||||||
|
Name = "Authorization",
|
||||||
|
In = ParameterLocation.Header,
|
||||||
|
Type = SecuritySchemeType.ApiKey,
|
||||||
|
Scheme = "Bearer"
|
||||||
|
});
|
||||||
|
|
||||||
|
// 将JWT令牌作为所有端点的要求添加到Swagger文档
|
||||||
|
c.AddSecurityRequirement(new OpenApiSecurityRequirement
|
||||||
|
{
|
||||||
|
{
|
||||||
|
new OpenApiSecurityScheme
|
||||||
|
{
|
||||||
|
Reference = new OpenApiReference
|
||||||
|
{
|
||||||
|
Type = ReferenceType.SecurityScheme,
|
||||||
|
Id = "Bearer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new string[] { }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// configure DI for application services
|
||||||
|
services.AddScoped<IJwtUtils, JwtUtils>();
|
||||||
|
services.AddScoped<IUserService, UserService>();
|
||||||
|
// 注册 HttpClient 服务
|
||||||
|
services.AddHttpClient();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//*---------------------------創專案就有--------------------------
|
||||||
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
|
builder.Services.AddSwaggerGen();
|
||||||
|
|
||||||
|
//*---------------------------WebAPI註解設定--------------------------
|
||||||
|
builder.Services.AddSwaggerGen(options =>
|
||||||
|
{
|
||||||
|
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
|
||||||
|
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));
|
||||||
|
});
|
||||||
|
var app = builder.Build();
|
||||||
|
//*---------------------------JWT身分驗證------------------------------
|
||||||
|
{
|
||||||
|
// global cors policy
|
||||||
|
//在 ASP.NET Core 中啟用 CORS (跨原始來源要求)
|
||||||
|
// Shows UseCors with CorsPolicyBuilder.
|
||||||
|
app.UseCors(x => x
|
||||||
|
.AllowAnyOrigin()
|
||||||
|
.AllowAnyMethod()
|
||||||
|
.AllowAnyHeader());
|
||||||
|
|
||||||
|
// custom jwt auth middleware
|
||||||
|
app.UseMiddleware<JwtMiddleware>();
|
||||||
|
|
||||||
|
app.MapControllers();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------Swagger初始化-------------------------------------
|
||||||
|
if (app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseSwagger();
|
||||||
|
app.UseSwaggerUI(c =>
|
||||||
|
{
|
||||||
|
c.SwaggerEndpoint("/swagger/v1/swagger.json", "JWTdemo"); //API註解開啟
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
|
||||||
|
app.UseAuthorization();
|
||||||
|
|
||||||
|
app.MapControllers();
|
||||||
|
|
||||||
|
app.Run();
|
31
C_shape/WEBAPI/JWT/JWTdemo/Properties/launchSettings.json
Normal file
31
C_shape/WEBAPI/JWT/JWTdemo/Properties/launchSettings.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:23800",
|
||||||
|
"sslPort": 44344
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"JWTdemo": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "https://localhost:7079;http://localhost:5246",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
25
C_shape/WEBAPI/JWT/JWTdemo/Services/SqlContext.cs
Normal file
25
C_shape/WEBAPI/JWT/JWTdemo/Services/SqlContext.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using JWTdemo.Entities;
|
||||||
|
|
||||||
|
|
||||||
|
namespace JWTdemo.Services
|
||||||
|
{
|
||||||
|
public class SqlContext : DbContext
|
||||||
|
{
|
||||||
|
public SqlContext(DbContextOptions<SqlContext> options) : base(options)
|
||||||
|
{
|
||||||
|
//連接PostgreSQL
|
||||||
|
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||||
|
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
|
||||||
|
}
|
||||||
|
public DbSet<User>chatuser { get; set; } = null!;
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
base.OnModelCreating(builder);
|
||||||
|
|
||||||
|
builder.Entity<User>().HasKey(o => new { o.Id }); //Primary Key
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
70
C_shape/WEBAPI/JWT/JWTdemo/Services/UserService.cs
Normal file
70
C_shape/WEBAPI/JWT/JWTdemo/Services/UserService.cs
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
using JWTdemo.Authorization;
|
||||||
|
using JWTdemo.Services;
|
||||||
|
using JWTdemo.Entities;
|
||||||
|
using JWTdemo.Models;
|
||||||
|
|
||||||
|
public interface IUserService
|
||||||
|
{
|
||||||
|
AuthenticateResponse? Authenticate(AuthenticateRequest model);
|
||||||
|
IEnumerable<User> GetAll();
|
||||||
|
User? GetById(int id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UserService : IUserService
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
// users hardcoded for simplicity, store in a db with hashed passwords in production applications
|
||||||
|
private List<User> user_test = new List<User>
|
||||||
|
{
|
||||||
|
new User { Id = 1, FirstName = "Test", LastName = "User", Username = "test", Password = "test" },
|
||||||
|
new User { Id = 2, FirstName = "Test", LastName = "User", Username = "admin", Password = "admin" }
|
||||||
|
};
|
||||||
|
|
||||||
|
public DbSet<User> user_test { get; set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
public List<User> GetUsers ()
|
||||||
|
{
|
||||||
|
return _dbContext.user_test.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
private readonly IJwtUtils _jwtUtils;
|
||||||
|
|
||||||
|
public UserService(IJwtUtils jwtUtils, SqlContext dbContext)
|
||||||
|
{
|
||||||
|
_jwtUtils = jwtUtils;
|
||||||
|
_dbContext = dbContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private readonly SqlContext _dbContext;
|
||||||
|
|
||||||
|
|
||||||
|
public AuthenticateResponse? Authenticate(AuthenticateRequest model)
|
||||||
|
{
|
||||||
|
var user = _dbContext.chatuser.SingleOrDefault(x => x.Username == model.Username && x.Password == model.Password);
|
||||||
|
|
||||||
|
// return null if user not found
|
||||||
|
if (user == null) return null;
|
||||||
|
|
||||||
|
// authentication successful so generate jwt token
|
||||||
|
var token = _jwtUtils.GenerateJwtToken(user);
|
||||||
|
|
||||||
|
return new AuthenticateResponse(user, token);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<User> GetAll()
|
||||||
|
{
|
||||||
|
return _dbContext.chatuser;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User? GetById(int id)
|
||||||
|
{
|
||||||
|
return _dbContext.chatuser.FirstOrDefault(x => x.Id == id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
8
C_shape/WEBAPI/JWT/JWTdemo/appsettings.Development.json
Normal file
8
C_shape/WEBAPI/JWT/JWTdemo/appsettings.Development.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
C_shape/WEBAPI/JWT/JWTdemo/appsettings.json
Normal file
12
C_shape/WEBAPI/JWT/JWTdemo/appsettings.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"AppSettings": {
|
||||||
|
"Secret": "Leo token test jwt park spaces lab 124"
|
||||||
|
},
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
655
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.deps.json
Normal file
655
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.deps.json
Normal file
@ -0,0 +1,655 @@
|
|||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v6.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v6.0": {
|
||||||
|
"JWTdemo/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.7",
|
||||||
|
"Microsoft.AspNetCore.Authorization": "6.0.7",
|
||||||
|
"Microsoft.EntityFrameworkCore": "7.0.11",
|
||||||
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.11",
|
||||||
|
"Swashbuckle.AspNetCore": "6.5.0",
|
||||||
|
"System.IdentityModel.Tokens.Jwt": "6.30.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"JWTdemo.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer/6.0.7": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.10.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": {
|
||||||
|
"assemblyVersion": "6.0.7.0",
|
||||||
|
"fileVersion": "6.0.722.32205"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authorization/6.0.7": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.Metadata": "6.0.7",
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Options": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.AspNetCore.Authorization.dll": {
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.722.32205"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Metadata/6.0.7": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.AspNetCore.Metadata.dll": {
|
||||||
|
"assemblyVersion": "6.0.0.0",
|
||||||
|
"fileVersion": "6.0.722.32205"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.CSharp/4.5.0": {},
|
||||||
|
"Microsoft.EntityFrameworkCore/7.0.11": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.EntityFrameworkCore.Abstractions": "7.0.11",
|
||||||
|
"Microsoft.EntityFrameworkCore.Analyzers": "7.0.11",
|
||||||
|
"Microsoft.Extensions.Caching.Memory": "7.0.0",
|
||||||
|
"Microsoft.Extensions.DependencyInjection": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Logging": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.EntityFrameworkCore.dll": {
|
||||||
|
"assemblyVersion": "7.0.11.0",
|
||||||
|
"fileVersion": "7.0.1123.40906"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore.Abstractions/7.0.11": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "7.0.11.0",
|
||||||
|
"fileVersion": "7.0.1123.40906"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore.Analyzers/7.0.11": {},
|
||||||
|
"Microsoft.EntityFrameworkCore.Relational/7.0.11": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.EntityFrameworkCore": "7.0.11",
|
||||||
|
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll": {
|
||||||
|
"assemblyVersion": "7.0.11.0",
|
||||||
|
"fileVersion": "7.0.1123.40906"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {},
|
||||||
|
"Microsoft.Extensions.Caching.Abstractions/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Caching.Memory/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Caching.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Options": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/7.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection": "7.0.0",
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Options": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Logging.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Options/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
|
||||||
|
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Options.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Primitives/7.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Primitives.dll": {
|
||||||
|
"assemblyVersion": "7.0.0.0",
|
||||||
|
"fileVersion": "7.0.22.51805"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Abstractions/6.30.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "6.30.1.0",
|
||||||
|
"fileVersion": "6.30.1.40510"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.JsonWebTokens/6.30.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Tokens": "6.30.1",
|
||||||
|
"System.Text.Encoding": "4.3.0",
|
||||||
|
"System.Text.Encodings.Web": "4.7.2",
|
||||||
|
"System.Text.Json": "4.7.2"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
|
||||||
|
"assemblyVersion": "6.30.1.0",
|
||||||
|
"fileVersion": "6.30.1.40510"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Logging/6.30.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Abstractions": "6.30.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.IdentityModel.Logging.dll": {
|
||||||
|
"assemblyVersion": "6.30.1.0",
|
||||||
|
"fileVersion": "6.30.1.40510"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols/6.10.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Logging": "6.30.1",
|
||||||
|
"Microsoft.IdentityModel.Tokens": "6.30.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll": {
|
||||||
|
"assemblyVersion": "6.10.0.0",
|
||||||
|
"fileVersion": "6.10.0.20330"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols.OpenIdConnect/6.10.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Protocols": "6.10.0",
|
||||||
|
"System.IdentityModel.Tokens.Jwt": "6.30.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {
|
||||||
|
"assemblyVersion": "6.10.0.0",
|
||||||
|
"fileVersion": "6.10.0.20330"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Tokens/6.30.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.CSharp": "4.5.0",
|
||||||
|
"Microsoft.IdentityModel.Logging": "6.30.1",
|
||||||
|
"System.Security.Cryptography.Cng": "4.5.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Microsoft.IdentityModel.Tokens.dll": {
|
||||||
|
"assemblyVersion": "6.30.1.0",
|
||||||
|
"fileVersion": "6.30.1.40510"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/1.1.0": {},
|
||||||
|
"Microsoft.NETCore.Targets/1.1.0": {},
|
||||||
|
"Microsoft.OpenApi/1.2.3": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
|
||||||
|
"assemblyVersion": "1.2.3.0",
|
||||||
|
"fileVersion": "1.2.3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql/7.0.6": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
|
||||||
|
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Npgsql.dll": {
|
||||||
|
"assemblyVersion": "7.0.6.0",
|
||||||
|
"fileVersion": "7.0.6.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql.EntityFrameworkCore.PostgreSQL/7.0.11": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.EntityFrameworkCore": "7.0.11",
|
||||||
|
"Microsoft.EntityFrameworkCore.Abstractions": "7.0.11",
|
||||||
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.11",
|
||||||
|
"Npgsql": "7.0.6"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": {
|
||||||
|
"assemblyVersion": "7.0.11.0",
|
||||||
|
"fileVersion": "7.0.11.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore/6.5.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.ApiDescription.Server": "6.0.5",
|
||||||
|
"Swashbuckle.AspNetCore.Swagger": "6.5.0",
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerGen": "6.5.0",
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerUI": "6.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.Swagger/6.5.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.OpenApi": "1.2.3"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll": {
|
||||||
|
"assemblyVersion": "6.5.0.0",
|
||||||
|
"fileVersion": "6.5.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerGen/6.5.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Swashbuckle.AspNetCore.Swagger": "6.5.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
|
||||||
|
"assemblyVersion": "6.5.0.0",
|
||||||
|
"fileVersion": "6.5.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerUI/6.5.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
|
||||||
|
"assemblyVersion": "6.5.0.0",
|
||||||
|
"fileVersion": "6.5.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.IdentityModel.Tokens.Jwt/6.30.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.JsonWebTokens": "6.30.1",
|
||||||
|
"Microsoft.IdentityModel.Tokens": "6.30.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/System.IdentityModel.Tokens.Jwt.dll": {
|
||||||
|
"assemblyVersion": "6.30.1.0",
|
||||||
|
"fileVersion": "6.30.1.40510"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime/4.3.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||||
|
"Microsoft.NETCore.Targets": "1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Runtime.CompilerServices.Unsafe/6.0.0": {},
|
||||||
|
"System.Security.Cryptography.Cng/4.5.0": {},
|
||||||
|
"System.Text.Encoding/4.3.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||||
|
"Microsoft.NETCore.Targets": "1.1.0",
|
||||||
|
"System.Runtime": "4.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Text.Encodings.Web/4.7.2": {},
|
||||||
|
"System.Text.Json/4.7.2": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"JWTdemo/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer/6.0.7": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-gO4G2lp4//xoLsxuJ01BwQjaY5yuRzY+8UWXONDcz0dBBFeKSU10mIFWVae928DQCb9FuMgptWI1MpMkj3EbjQ==",
|
||||||
|
"path": "microsoft.aspnetcore.authentication.jwtbearer/6.0.7",
|
||||||
|
"hashPath": "microsoft.aspnetcore.authentication.jwtbearer.6.0.7.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authorization/6.0.7": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-tFVhR/obKzKWKT359cF+jEm2Bs2ytWwAkDwj0CsPwXIKkTZENSmgGP3pAkKW8vf+4RSFZNUYNt8s9OGTVfgBqA==",
|
||||||
|
"path": "microsoft.aspnetcore.authorization/6.0.7",
|
||||||
|
"hashPath": "microsoft.aspnetcore.authorization.6.0.7.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Metadata/6.0.7": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-lRYA9dAPRhstA1x9RN0Y7O+28SeIwjASRL64mtuAb4Lywe7GykgFM2sK4cDrNedCOiCt2R6FretfNGjFeP9pRA==",
|
||||||
|
"path": "microsoft.aspnetcore.metadata/6.0.7",
|
||||||
|
"hashPath": "microsoft.aspnetcore.metadata.6.0.7.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.CSharp/4.5.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==",
|
||||||
|
"path": "microsoft.csharp/4.5.0",
|
||||||
|
"hashPath": "microsoft.csharp.4.5.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore/7.0.11": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-r7YGITjQ7v1hYtUXIavjSx+T1itKVPUFAIBN7HaKNjbR8x+gep8w9H3NEchglJOh1woZR4b2MhbSo2YFRZwZDg==",
|
||||||
|
"path": "microsoft.entityframeworkcore/7.0.11",
|
||||||
|
"hashPath": "microsoft.entityframeworkcore.7.0.11.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore.Abstractions/7.0.11": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-IoOnhycZ0/VtLowf0HgB0cujxwksokzkS3/5108AHOcbntHUTqwxtCjG4E4FCly/45G+mxb+4PxBdFZhA49lwQ==",
|
||||||
|
"path": "microsoft.entityframeworkcore.abstractions/7.0.11",
|
||||||
|
"hashPath": "microsoft.entityframeworkcore.abstractions.7.0.11.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore.Analyzers/7.0.11": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-Qexum5safSSfijx6P1QSq5bVJPPTM/uf7lQmpL/shkiozEC/0FzqNaVUfFpbNN8zsO1jMFYbeDMF4cxJMlTT9w==",
|
||||||
|
"path": "microsoft.entityframeworkcore.analyzers/7.0.11",
|
||||||
|
"hashPath": "microsoft.entityframeworkcore.analyzers.7.0.11.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore.Relational/7.0.11": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-yHEEyah1XARStV1SJOsdKj8ieoMCZ0MkNuQaLfWONMWmbqwuDohfGQZk/FuzdT4aO/lJrUYiXbBSFv0ACzphEw==",
|
||||||
|
"path": "microsoft.entityframeworkcore.relational/7.0.11",
|
||||||
|
"hashPath": "microsoft.entityframeworkcore.relational.7.0.11.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==",
|
||||||
|
"path": "microsoft.extensions.apidescription.server/6.0.5",
|
||||||
|
"hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Caching.Abstractions/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==",
|
||||||
|
"path": "microsoft.extensions.caching.abstractions/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.caching.abstractions.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Caching.Memory/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-xpidBs2KCE2gw1JrD0quHE72kvCaI3xFql5/Peb2GRtUuZX+dYPoK/NTdVMiM67Svym0M0Df9A3xyU0FbMQhHw==",
|
||||||
|
"path": "microsoft.extensions.caching.memory/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.caching.memory.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==",
|
||||||
|
"path": "microsoft.extensions.configuration.abstractions/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==",
|
||||||
|
"path": "microsoft.extensions.dependencyinjection/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-h3j/QfmFN4S0w4C2A6X7arXij/M/OVw3uQHSOFxnND4DyAzO1F9eMX7Eti7lU/OkSthEE0WzRsfT/Dmx86jzCw==",
|
||||||
|
"path": "microsoft.extensions.dependencyinjection.abstractions/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==",
|
||||||
|
"path": "microsoft.extensions.logging/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.logging.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-kmn78+LPVMOWeITUjIlfxUPDsI0R6G0RkeAMBmQxAJ7vBJn4q2dTva7pWi65ceN5vPGjJ9q/Uae2WKgvfktJAw==",
|
||||||
|
"path": "microsoft.extensions.logging.abstractions/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Options/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-lP1yBnTTU42cKpMozuafbvNtQ7QcBjr/CcK3bYOGEMH55Fjt+iecXjT6chR7vbgCMqy3PG3aNQSZgo/EuY/9qQ==",
|
||||||
|
"path": "microsoft.extensions.options/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.options.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Primitives/7.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==",
|
||||||
|
"path": "microsoft.extensions.primitives/7.0.0",
|
||||||
|
"hashPath": "microsoft.extensions.primitives.7.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Abstractions/6.30.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-1YVmnuYYz53M+KGa7HvZ+Vvqchwp97ngDk2I4QoiQi+HL7rpifvyaMyVMFhdlmoRlQcnSwJbNp7ulPctGnFfkQ==",
|
||||||
|
"path": "microsoft.identitymodel.abstractions/6.30.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.abstractions.6.30.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.JsonWebTokens/6.30.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-H9o5zbuxfRKCEVULmxLCv1LTz1hmzaqG2Gk6X9Yq0QeJ1HeUQo1fwjaj+N1H55TQnZ8LNbmMdMCl/VqW3cJWvw==",
|
||||||
|
"path": "microsoft.identitymodel.jsonwebtokens/6.30.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.jsonwebtokens.6.30.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Logging/6.30.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-zE6TG08T8MPZfkXqOWegvvIhKZRiYyj2xgr4QQuWyXypSGPyZrkBwJf5IXU4T3aIKqVfALSnAYCW/IqMaCY4gA==",
|
||||||
|
"path": "microsoft.identitymodel.logging/6.30.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.logging.6.30.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols/6.10.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-DFyXD0xylP+DknCT3hzJ7q/Q5qRNu0hO/gCU90O0ATdR0twZmlcuY9RNYaaDofXKVbzcShYNCFCGle2G/o8mkg==",
|
||||||
|
"path": "microsoft.identitymodel.protocols/6.10.0",
|
||||||
|
"hashPath": "microsoft.identitymodel.protocols.6.10.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols.OpenIdConnect/6.10.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-LVvMXAWPbPeEWTylDrxunlHH2wFyE4Mv0L4gZrJHC4HTESbWHquKZb/y/S8jgiQEDycOP0PDQvbG4RR/tr2TVQ==",
|
||||||
|
"path": "microsoft.identitymodel.protocols.openidconnect/6.10.0",
|
||||||
|
"hashPath": "microsoft.identitymodel.protocols.openidconnect.6.10.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Tokens/6.30.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-iLEwF/zEopanfMQcIcq190S/bBjSj3v6UfqN37KqRqsKB9kkm3/tYCrIQOtvLKbEe/znQXC6HoQhknDTszPz2Q==",
|
||||||
|
"path": "microsoft.identitymodel.tokens/6.30.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.tokens.6.30.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/1.1.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
|
||||||
|
"path": "microsoft.netcore.platforms/1.1.0",
|
||||||
|
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Targets/1.1.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
|
||||||
|
"path": "microsoft.netcore.targets/1.1.0",
|
||||||
|
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.OpenApi/1.2.3": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-Nug3rO+7Kl5/SBAadzSMAVgqDlfGjJZ0GenQrLywJ84XGKO0uRqkunz5Wyl0SDwcR71bAATXvSdbdzPrYRYKGw==",
|
||||||
|
"path": "microsoft.openapi/1.2.3",
|
||||||
|
"hashPath": "microsoft.openapi.1.2.3.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Npgsql/7.0.6": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-TAqvwRnm3NJ0QvN7cvu6geJkbI0XPzGVRElVY5hF4gsgA+BnE12x6GM1TLhdeq+7ZKvvo3BD8jXKnXmr3tvdEw==",
|
||||||
|
"path": "npgsql/7.0.6",
|
||||||
|
"hashPath": "npgsql.7.0.6.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Npgsql.EntityFrameworkCore.PostgreSQL/7.0.11": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-cHEgEz0ldXc9wVANs8sJqC+3eilqefrkasCBgaVT0tyj8tb1p3/pwy2ngjboNkDG3M0z+xJsJ4jC5p8wySAM3w==",
|
||||||
|
"path": "npgsql.entityframeworkcore.postgresql/7.0.11",
|
||||||
|
"hashPath": "npgsql.entityframeworkcore.postgresql.7.0.11.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore/6.5.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-FK05XokgjgwlCI6wCT+D4/abtQkL1X1/B9Oas6uIwHFmYrIO9WUD5aLC9IzMs9GnHfUXOtXZ2S43gN1mhs5+aA==",
|
||||||
|
"path": "swashbuckle.aspnetcore/6.5.0",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.6.5.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.Swagger/6.5.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-XWmCmqyFmoItXKFsQSwQbEAsjDKcxlNf1l+/Ki42hcb6LjKL8m5Db69OTvz5vLonMSRntYO1XLqz0OP+n3vKnA==",
|
||||||
|
"path": "swashbuckle.aspnetcore.swagger/6.5.0",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerGen/6.5.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-Y/qW8Qdg9OEs7V013tt+94OdPxbRdbhcEbw4NiwGvf4YBcfhL/y7qp/Mjv/cENsQ2L3NqJ2AOu94weBy/h4KvA==",
|
||||||
|
"path": "swashbuckle.aspnetcore.swaggergen/6.5.0",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerUI/6.5.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw==",
|
||||||
|
"path": "swashbuckle.aspnetcore.swaggerui/6.5.0",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.IdentityModel.Tokens.Jwt/6.30.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-THhcemCnzUJnrCojmNmafJGluAmfumVFT18oSPa+epEfVuiXXdmitu7UvmayMq6FrBJKrZzHdVfh7CXg+uvBPQ==",
|
||||||
|
"path": "system.identitymodel.tokens.jwt/6.30.1",
|
||||||
|
"hashPath": "system.identitymodel.tokens.jwt.6.30.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Runtime/4.3.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
|
||||||
|
"path": "system.runtime/4.3.0",
|
||||||
|
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
|
||||||
|
"path": "system.runtime.compilerservices.unsafe/6.0.0",
|
||||||
|
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/4.5.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==",
|
||||||
|
"path": "system.security.cryptography.cng/4.5.0",
|
||||||
|
"hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Text.Encoding/4.3.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
|
||||||
|
"path": "system.text.encoding/4.3.0",
|
||||||
|
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Text.Encodings.Web/4.7.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==",
|
||||||
|
"path": "system.text.encodings.web/4.7.2",
|
||||||
|
"hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Text.Json/4.7.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==",
|
||||||
|
"path": "system.text.json/4.7.2",
|
||||||
|
"hashPath": "system.text.json.4.7.2.nupkg.sha512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.dll
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.dll
Normal file
Binary file not shown.
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.exe
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.exe
Normal file
Binary file not shown.
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.pdb
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.pdb
Normal file
Binary file not shown.
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net6.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "6.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "6.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Reflection.NullabilityInfoContext.IsSupported": true,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
13
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.xml
Normal file
13
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/JWTdemo.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>JWTdemo</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="M:JWTdemo.Controllers.UserController.Getuser">
|
||||||
|
<summary>
|
||||||
|
測試註解
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/Npgsql.dll
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/Npgsql.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/appsettings.json
Normal file
12
C_shape/WEBAPI/JWT/JWTdemo/bin/Debug/net6.0/appsettings.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"AppSettings": {
|
||||||
|
"Secret": "Leo token test jwt park spaces lab 124"
|
||||||
|
},
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
|
@ -0,0 +1,23 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 這段程式碼是由工具產生的。
|
||||||
|
// 執行階段版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
|
||||||
|
// 變更將會遺失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("JWTdemo")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("JWTdemo")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("JWTdemo")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// 由 MSBuild WriteCodeFragment 類別產生。
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
d3e9900f76d0dd0e04ea639f50286e552bb52421
|
@ -0,0 +1,17 @@
|
|||||||
|
is_global = true
|
||||||
|
build_property.TargetFramework = net6.0
|
||||||
|
build_property.TargetPlatformMinVersion =
|
||||||
|
build_property.UsingMicrosoftNETSdkWeb = true
|
||||||
|
build_property.ProjectTypeGuids =
|
||||||
|
build_property.InvariantGlobalization =
|
||||||
|
build_property.PlatformNeutralAssembly =
|
||||||
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
|
build_property.RootNamespace = JWTdemo
|
||||||
|
build_property.RootNamespace = JWTdemo
|
||||||
|
build_property.ProjectDir = C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\
|
||||||
|
build_property.RazorLangVersion = 6.0
|
||||||
|
build_property.SupportLocalizedComponentNames =
|
||||||
|
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
||||||
|
build_property.MSBuildProjectDirectory = C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo
|
||||||
|
build_property._RazorSourceGeneratorDebug =
|
@ -0,0 +1,17 @@
|
|||||||
|
// <auto-generated/>
|
||||||
|
global using global::Microsoft.AspNetCore.Builder;
|
||||||
|
global using global::Microsoft.AspNetCore.Hosting;
|
||||||
|
global using global::Microsoft.AspNetCore.Http;
|
||||||
|
global using global::Microsoft.AspNetCore.Routing;
|
||||||
|
global using global::Microsoft.Extensions.Configuration;
|
||||||
|
global using global::Microsoft.Extensions.DependencyInjection;
|
||||||
|
global using global::Microsoft.Extensions.Hosting;
|
||||||
|
global using global::Microsoft.Extensions.Logging;
|
||||||
|
global using global::System;
|
||||||
|
global using global::System.Collections.Generic;
|
||||||
|
global using global::System.IO;
|
||||||
|
global using global::System.Linq;
|
||||||
|
global using global::System.Net.Http;
|
||||||
|
global using global::System.Net.Http.Json;
|
||||||
|
global using global::System.Threading;
|
||||||
|
global using global::System.Threading.Tasks;
|
@ -0,0 +1,17 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 這段程式碼是由工具產生的。
|
||||||
|
// 執行階段版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
|
||||||
|
// 變更將會遺失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Swashbuckle.AspNetCore.SwaggerGen")]
|
||||||
|
|
||||||
|
// 由 MSBuild WriteCodeFragment 類別產生。
|
||||||
|
|
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.assets.cache
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.assets.cache
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
a1c80da0eecb9ffd1b96345b83fa05496e4fdd33
|
@ -0,0 +1,116 @@
|
|||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\appsettings.Development.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\appsettings.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.exe
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.deps.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.runtimeconfig.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.pdb
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Relational.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Caching.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Caching.Memory.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Configuration.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Logging.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Logging.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Options.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Primitives.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.OpenApi.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Npgsql.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Swashbuckle.AspNetCore.Swagger.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerGen.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerUI.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.csproj.AssemblyReference.cache
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.AssemblyInfoInputs.cache
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.AssemblyInfo.cs
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.csproj.CoreCompileInputs.cache
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.MvcApplicationPartsAssemblyInfo.cs
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.MvcApplicationPartsAssemblyInfo.cache
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.JWTdemo.Microsoft.AspNetCore.StaticWebAssets.props
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.build.JWTdemo.props
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.buildMultiTargeting.JWTdemo.props
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.buildTransitive.JWTdemo.props
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets.pack.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets.build.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets.development.json
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\scopedcss\bundle\JWTdemo.styles.css
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.csproj.CopyComplete
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\refint\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.pdb
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.genruntimeconfig.cache
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\ref\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.AspNetCore.Authorization.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.AspNetCore.Metadata.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.JsonWebTokens.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Logging.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Protocols.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Tokens.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\System.IdentityModel.Tokens.Jwt.dll
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.xml
|
||||||
|
C:\Users\pc\Desktop\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.xml
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\appsettings.Development.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\appsettings.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.exe
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.deps.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.runtimeconfig.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.pdb
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\JWTdemo.xml
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.AspNetCore.Authorization.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.AspNetCore.Metadata.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Relational.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Caching.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Caching.Memory.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Configuration.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Logging.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Logging.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Options.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.Extensions.Primitives.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Abstractions.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.JsonWebTokens.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Logging.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Protocols.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.IdentityModel.Tokens.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Microsoft.OpenApi.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Npgsql.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Swashbuckle.AspNetCore.Swagger.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerGen.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\Swashbuckle.AspNetCore.SwaggerUI.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\bin\Debug\net6.0\System.IdentityModel.Tokens.Jwt.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.csproj.AssemblyReference.cache
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.AssemblyInfoInputs.cache
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.AssemblyInfo.cs
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.csproj.CoreCompileInputs.cache
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.MvcApplicationPartsAssemblyInfo.cs
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.MvcApplicationPartsAssemblyInfo.cache
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.JWTdemo.Microsoft.AspNetCore.StaticWebAssets.props
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.build.JWTdemo.props
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.buildMultiTargeting.JWTdemo.props
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets\msbuild.buildTransitive.JWTdemo.props
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets.pack.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets.build.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\staticwebassets.development.json
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\scopedcss\bundle\JWTdemo.styles.css
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.csproj.CopyComplete
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\refint\JWTdemo.dll
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.xml
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.pdb
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\JWTdemo.genruntimeconfig.cache
|
||||||
|
C:\Users\pc\Desktop\Demo\JWTdemo\JWTdemo\obj\Debug\net6.0\ref\JWTdemo.dll
|
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.dll
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.dll
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
b5bb088995225207111be3a340bd7e114dd0da16
|
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.pdb
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.pdb
Normal file
Binary file not shown.
13
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.xml
Normal file
13
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/JWTdemo.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>JWTdemo</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="M:JWTdemo.Controllers.UserController.Getuser">
|
||||||
|
<summary>
|
||||||
|
測試註解
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/apphost.exe
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/apphost.exe
Normal file
Binary file not shown.
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/ref/JWTdemo.dll
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/ref/JWTdemo.dll
Normal file
Binary file not shown.
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/refint/JWTdemo.dll
Normal file
BIN
C_shape/WEBAPI/JWT/JWTdemo/obj/Debug/net6.0/refint/JWTdemo.dll
Normal file
Binary file not shown.
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"Version": 1,
|
||||||
|
"Hash": "68tlhrSpWl+eGtrQrXRzGq3dSWKp/KJkA5IlAXq1ruA=",
|
||||||
|
"Source": "JWTdemo",
|
||||||
|
"BasePath": "_content/JWTdemo",
|
||||||
|
"Mode": "Default",
|
||||||
|
"ManifestType": "Build",
|
||||||
|
"ReferencedProjectsConfiguration": [],
|
||||||
|
"DiscoveryPatterns": [],
|
||||||
|
"Assets": []
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
<Project>
|
||||||
|
<Import Project="Microsoft.AspNetCore.StaticWebAssets.props" />
|
||||||
|
</Project>
|
@ -0,0 +1,3 @@
|
|||||||
|
<Project>
|
||||||
|
<Import Project="..\build\JWTdemo.props" />
|
||||||
|
</Project>
|
@ -0,0 +1,3 @@
|
|||||||
|
<Project>
|
||||||
|
<Import Project="..\buildMultiTargeting\JWTdemo.props" />
|
||||||
|
</Project>
|
@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"C:\\Users\\pc\\Desktop\\Demo\\JWTdemo\\JWTdemo\\JWTdemo.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"C:\\Users\\pc\\Desktop\\Demo\\JWTdemo\\JWTdemo\\JWTdemo.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "C:\\Users\\pc\\Desktop\\Demo\\JWTdemo\\JWTdemo\\JWTdemo.csproj",
|
||||||
|
"projectName": "JWTdemo",
|
||||||
|
"projectPath": "C:\\Users\\pc\\Desktop\\Demo\\JWTdemo\\JWTdemo\\JWTdemo.csproj",
|
||||||
|
"packagesPath": "C:\\Users\\pc\\.nuget\\packages\\",
|
||||||
|
"outputPath": "C:\\Users\\pc\\Desktop\\Demo\\JWTdemo\\JWTdemo\\obj\\",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"fallbackFolders": [
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||||
|
],
|
||||||
|
"configFilePaths": [
|
||||||
|
"C:\\Users\\pc\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net6.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net6.0": {
|
||||||
|
"targetAlias": "net6.0",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net6.0": {
|
||||||
|
"targetAlias": "net6.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[6.0.7, )"
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authorization": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[6.0.7, )"
|
||||||
|
},
|
||||||
|
"Microsoft.EntityFrameworkCore": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[7.0.11, )"
|
||||||
|
},
|
||||||
|
"Npgsql.EntityFrameworkCore.PostgreSQL": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[7.0.11, )"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[6.5.0, )"
|
||||||
|
},
|
||||||
|
"System.IdentityModel.Tokens.Jwt": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[6.30.1, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.AspNetCore.App": {
|
||||||
|
"privateAssets": "none"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.401\\RuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
C_shape/WEBAPI/JWT/JWTdemo/obj/JWTdemo.csproj.nuget.g.props
Normal file
24
C_shape/WEBAPI/JWT/JWTdemo/obj/JWTdemo.csproj.nuget.g.props
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\pc\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.7.0</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<SourceRoot Include="C:\Users\pc\.nuget\packages\" />
|
||||||
|
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props')" />
|
||||||
|
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore\6.5.0\build\Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore\6.5.0\build\Swashbuckle.AspNetCore.props')" />
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\7.0.11\buildTransitive\net6.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\7.0.11\buildTransitive\net6.0\Microsoft.EntityFrameworkCore.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">C:\Users\pc\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\7.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\7.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
2076
C_shape/WEBAPI/JWT/JWTdemo/obj/project.assets.json
Normal file
2076
C_shape/WEBAPI/JWT/JWTdemo/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
49
C_shape/WEBAPI/JWT/JWTdemo/obj/project.nuget.cache
Normal file
49
C_shape/WEBAPI/JWT/JWTdemo/obj/project.nuget.cache
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"dgSpecHash": "mFj0MqZIhD4dW5CwFa1ijIpi0IiLnbaxktGJqepPHyB/sPR0nGLnxV8O3JaR5UTxKNREKF/oXrVl2rWZQBbaCA==",
|
||||||
|
"success": true,
|
||||||
|
"projectFilePath": "C:\\Users\\pc\\Desktop\\Demo\\JWTdemo\\JWTdemo\\JWTdemo.csproj",
|
||||||
|
"expectedPackageFiles": [
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.aspnetcore.authentication.jwtbearer\\6.0.7\\microsoft.aspnetcore.authentication.jwtbearer.6.0.7.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.aspnetcore.authorization\\6.0.7\\microsoft.aspnetcore.authorization.6.0.7.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.aspnetcore.metadata\\6.0.7\\microsoft.aspnetcore.metadata.6.0.7.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.csharp\\4.5.0\\microsoft.csharp.4.5.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.entityframeworkcore\\7.0.11\\microsoft.entityframeworkcore.7.0.11.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\7.0.11\\microsoft.entityframeworkcore.abstractions.7.0.11.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\7.0.11\\microsoft.entityframeworkcore.analyzers.7.0.11.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\7.0.11\\microsoft.entityframeworkcore.relational.7.0.11.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\7.0.0\\microsoft.extensions.caching.abstractions.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.caching.memory\\7.0.0\\microsoft.extensions.caching.memory.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\7.0.0\\microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\7.0.0\\microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\7.0.0\\microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.logging\\7.0.0\\microsoft.extensions.logging.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\7.0.0\\microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.options\\7.0.0\\microsoft.extensions.options.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.extensions.primitives\\7.0.0\\microsoft.extensions.primitives.7.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.identitymodel.abstractions\\6.30.1\\microsoft.identitymodel.abstractions.6.30.1.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\6.30.1\\microsoft.identitymodel.jsonwebtokens.6.30.1.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.identitymodel.logging\\6.30.1\\microsoft.identitymodel.logging.6.30.1.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.identitymodel.protocols\\6.10.0\\microsoft.identitymodel.protocols.6.10.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.identitymodel.protocols.openidconnect\\6.10.0\\microsoft.identitymodel.protocols.openidconnect.6.10.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.identitymodel.tokens\\6.30.1\\microsoft.identitymodel.tokens.6.30.1.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\microsoft.openapi\\1.2.3\\microsoft.openapi.1.2.3.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\npgsql\\7.0.6\\npgsql.7.0.6.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\7.0.11\\npgsql.entityframeworkcore.postgresql.7.0.11.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\swashbuckle.aspnetcore\\6.5.0\\swashbuckle.aspnetcore.6.5.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.5.0\\swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.5.0\\swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.5.0\\swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.identitymodel.tokens.jwt\\6.30.1\\system.identitymodel.tokens.jwt.6.30.1.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.security.cryptography.cng\\4.5.0\\system.security.cryptography.cng.4.5.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.text.encodings.web\\4.7.2\\system.text.encodings.web.4.7.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\pc\\.nuget\\packages\\system.text.json\\4.7.2\\system.text.json.4.7.2.nupkg.sha512"
|
||||||
|
],
|
||||||
|
"logs": []
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user