WebAPI.QuickNet 1.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package WebAPI.QuickNet --version 1.1.0                
NuGet\Install-Package WebAPI.QuickNet -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WebAPI.QuickNet" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WebAPI.QuickNet --version 1.1.0                
#r "nuget: WebAPI.QuickNet, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install WebAPI.QuickNet as a Cake Addin
#addin nuget:?package=WebAPI.QuickNet&version=1.1.0

// Install WebAPI.QuickNet as a Cake Tool
#tool nuget:?package=WebAPI.QuickNet&version=1.1.0                
using NLog;
using NLog.Web;
using WebAPI.QuickNet.Web.Core;
using WebAPI.QuickNet.Web.Core.Extends;
using WebAPI.QuickNet.Web.Core.Models;
using WebAPI.Test.Controllers;


var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
try
{
    var builder = WebApplication.CreateBuilder(args);
    builder.InjectRun(options =>
        {
            //配置JWT验证
            options.JwtOptions = new QuickJwtOptions
            {
                //JWT验证签发者
                ValidIssuer = "QuickNet",
                //JWT验证接收者
                ValidAudience = "QuickNet.Client",
                //JWT签名密钥
                IssuerSigningKey = "This is a signature string with a length of 256",
                //自定义JWT验证成功处理
                OnTokenValidated = (c) => { logger.Info("JWT token authentication succeeded!"); },
                //自定义JWT验证失败处理
                OnChallenge = (c) => { logger.Error("JWT token validation failed!"); }
            };
            
            //限流配置
            options.ThrottleOptions = new QuickThrottleOptions
            {
                //redis配置
                RedisOption = new QuickThrottleRedisOption
                {
                    Host = "localhost",
                    Port = 6379,
                    Password = "3333",
                    Database = 0, 
                },
                //redis key前缀
                KeyPrefix = "QuickNet", 
                
                //获取用户唯一标识,用于限流,只有 Policy.UserIdentity 才会生效
                OnUserIdentity = (httpContext) =>
                {
                    var loginProfile = httpContext.LoginProfile<UserInfo>();
                    return loginProfile?.UserId.ToString();
                }, 
            }; 
            //自定义异常类型,继承该类型的异常将会被直接返回给客户端
            options.BaseCustomErrorType = typeof(AbsCustomError);
        },
        (services) =>
        {
            //注入你的自定义服务
            // services.AddTransient<IYouCustomerServer, YouCustomerServer>();
        }
    );
}
catch (Exception exception)
{
    logger.Error(exception, $"The program terminated abnormally...{exception.Message}");
    throw;
}
finally
{
    NLog.LogManager.Shutdown();
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.