首页 > 其他分享 >.net9 openapi

.net9 openapi

时间:2025-01-03 18:11:54浏览次数:1  
标签:builder openapi net9 Services using app true options

using JwtAuth.Api.Services;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using Scalar.AspNetCore;
using System.Text;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.



// Configure JWT Authentication
builder.Services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
    //options.RequireHttpsMetadata = false;
    //options.SaveToken = true;
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true,
        ValidIssuer = builder.Configuration["Jwt:Issuer"],
        ValidAudience = builder.Configuration["Jwt:Audience"],
        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"] ?? Guid.NewGuid().ToString("N")))
    };
    options.Events = new JwtBearerEvents
    {
        OnAuthenticationFailed = context =>
        {
            Console.WriteLine("Authentication failed: " + context.Exception.Message);
            return Task.CompletedTask;
        }
    }; 
});

builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowAllOrigins",
        builder =>
        {
            builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader();
        });
});

// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
//builder.Services.AddOpenApi();
builder.Services.AddOpenApi(opt =>
{
    opt.AddDocumentTransformer<BearerSecuritySchemeTransformer>();
});

builder.Services.AddSingleton<JwtService>();

builder.Services.AddControllers();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
    app.MapScalarApiReference();
}

app.UseHttpsRedirection();

app.UseRouting();

app.UseCors("AllowAllOrigins");
app.UseAuthentication(); // 启用认证
app.UseAuthorization();  // 启用授权
app.MapControllers();

app.Run();

  

标签:builder,openapi,net9,Services,using,app,true,options
From: https://www.cnblogs.com/zengfeng1013/p/18650686

相关文章

  • 界面控件DevExpress v24.2新版亮点 - 支持.NET9、增强跨平台性
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力......
  • 开发OpenAPI代理的实战指南
    老铁们,今天我们来聊聊如何使用OpenAPI构建一个代理,以便更好地消费各种API。要点是不仅要能够请求API,还要能处理复杂的API调用序列。我们将用到一些技巧,比如分层计划和控制,让API代理行为更为一致。技术背景介绍OpenAPI规范是一种用于描述RESTfulAPI的格式。通过OpenAPI,我......
  • 和OpenApi大模型聊天
    ChatCompletionsAPChat模型将消息列表作为输入,并返回模型生成的消息作为输出-个ChatCompletionsAPl调用的示例看起来如下#penAapibase地址:"https://api.openai.com/v1"#老版本(v1以下的版本)0PENAIAPIBASE#新版本(V1及以上的版本)0PENAIBASEURLimportosfr......
  • MONI后台管理系统-swagger3(springdoc-openapi)集成
    springdoc-openapiJava库有助于使用SpringBoot项目自动生成API文档。springdoc-openapi通过在运行时检查应用程序来根据Spring配置、类结构和各种注释推断API语义。该库会自动生成JSON/YAML和HTML格式的页面文档。生成的文档可以使用swagger-api注释进行补......
  • OpenApi 下达指令
    Completions模型将字符串作为输入,模型将返回一个或多个预测的完成项。大多数开发者应该使用的chatCompletionsAPI来使用OpenAI最好和最新的模型。大部分支持传统Completions端点的模型将在2024年1月4日停止服务ChatCompletionsAPlChatCompletions服务是一种特定的Complet......
  • dotnet9 MAUI + Vue 项目
    MAUI是dotnet的跨平台技术,支持windows平台、android平台、ios平台等。使用MAUI作为基础平台,在其上运行一个前端项目,比如Vue,可以同时享受开发效率与跨平台的好处。使用dotnet9后MAUI提供的组件HybridWebView,可以实现将前端项目嵌入到MAUI项目Page中的效果。支持C#与javascript的互......
  • .NET8升级.NET9,CodeFirst模式迁移Add-Migration执行Update-DataBase报错
    在做netcore开发时,如果net8一直是正常的,只升级了一下框架net9,在使用EntityFrameworkCore的CodeFirst模式进行迁移时,执行Add-Migration后尝试使用Update-DataBase时出现了如下错误。Unhandledexception.System.InvalidOperationException:Anerrorwasgeneratedforwarni......
  • OpenAPI 与 国产 Solon 框架支持,Fast Request 2024.1.9 发布
    FastRequest是一个类似于Postman的IDEA插件。它是一个强大的restfulapi工具包插件,可以根据已有的方法帮助您快速、自动生成url和params。RestfulFastRequest=API调试工具+API管理工具+API搜索工具。它有一个漂亮的界面来完成请求、检查服务器响应、存储你......
  • 【Rust编程】.NET9和Rust的互相调用
    以下文章来源于江湖评谈,作者江湖评谈前言本篇先看下.NET9调用Rust,然后看下Rust调用.NET9。它们相互的一个操作。.NET9调用Rust新建一个Rust动态库名为net的项目,进入到项目根目录#cargonewnet--lib#cdnetCargo.toml文件添加如下代码:[lib]name="net"......
  • 在 .NET 9 中让您的 OpenAPI(Swagger)文档 UI 变得出色
            从.NET9开始,默认模板中不再包含SwaggerUIwebapi。虽然文档仍然包含在内,但现在通过调用MapOpenApi,UI不再存在。很高兴,重新获得文档UI相对容易。但UI本来就很无聊,所以让我们来点更花哨的东西吧!认识Scalar        假设我们已经通过dotnet......