This commit is contained in:
Lin Weiting 2024-05-06 14:09:39 +08:00
parent 83a0b987dd
commit c07b6c1706
84 changed files with 3771 additions and 0 deletions

View 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 註解生成,而不希望因缺少註解而收到警告。

View 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

View File

@ -0,0 +1,6 @@
namespace JWTdemo.Authorization;
[AttributeUsage(AttributeTargets.Method)]
public class AllowAnonymousAttribute : Attribute
{
}

View File

@ -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 };
}
}
}

View 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);
}
}

View 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;
}
}
}

View 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();
}
}
}

View 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; }
}
}

View File

@ -0,0 +1,7 @@
namespace JWTdemo.Helpers
{
public class AppSettings
{
public string? Secret { get; set; }
}
}

View 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>

View 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>

View 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; }
}

View 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;
}
}

View 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();

View 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"
}
}
}
}

View 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
}
}
}

View 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);
}
}

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@ -0,0 +1,12 @@
{
"AppSettings": {
"Secret": "Leo token test jwt park spaces lab 124"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

View 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"
}
}
}

View File

@ -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
}
}
}

View 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.

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@ -0,0 +1,12 @@
{
"AppSettings": {
"Secret": "Leo token test jwt park spaces lab 124"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]

View File

@ -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 類別產生。

View File

@ -0,0 +1 @@
d3e9900f76d0dd0e04ea639f50286e552bb52421

View File

@ -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 =

View File

@ -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;

View File

@ -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 類別產生。

View File

@ -0,0 +1 @@
a1c80da0eecb9ffd1b96345b83fa05496e4fdd33

View File

@ -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

View File

@ -0,0 +1 @@
b5bb088995225207111be3a340bd7e114dd0da16

View 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>

View File

@ -0,0 +1,11 @@
{
"Version": 1,
"Hash": "68tlhrSpWl+eGtrQrXRzGq3dSWKp/KJkA5IlAXq1ruA=",
"Source": "JWTdemo",
"BasePath": "_content/JWTdemo",
"Mode": "Default",
"ManifestType": "Build",
"ReferencedProjectsConfiguration": [],
"DiscoveryPatterns": [],
"Assets": []
}

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="Microsoft.AspNetCore.StaticWebAssets.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="..\build\JWTdemo.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="..\buildMultiTargeting\JWTdemo.props" />
</Project>

View File

@ -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"
}
}
}
}
}

View 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>

View File

@ -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>

File diff suppressed because it is too large Load Diff

View 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": []
}