WebAPI.QuickNet
1.1.6
dotnet add package WebAPI.QuickNet --version 1.1.6
NuGet\Install-Package WebAPI.QuickNet -Version 1.1.6
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.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WebAPI.QuickNet --version 1.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: WebAPI.QuickNet, 1.1.6"
#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.6 // Install WebAPI.QuickNet as a Cake Tool #tool nuget:?package=WebAPI.QuickNet&version=1.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
using Dnc.Api.Throttle;
using NLog;
using NLog.Web;
using WebAPI.QuickNet.Builder;
using WebAPI.QuickNet.Web.Core.Extends;
using WebAPI.QuickNet.Web.Core.Models;
using WebAPI.Test.Controllers;
var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
var quickOptions = new QuickOptions
{
//配置JWT验证
JwtOptions = new QuickJwtOptions
{
//JWT验证签发者
ValidIssuer = "QuickNet",
//JWT验证接收者
ValidAudience = "QuickNet.Client",
//JWT签名密钥
IssuerSigningKey = "This is a signature string with a length of 256",
//自定义单点登录验证
SingleSignOnValidator = new SingleSignOnValidator()
{
ErrorMessage = "哦豁,你的账号在别的地方登录了哦",
Validate = (ctx) =>
{
//获取令牌的签发时间
var issueTime = ctx.GetValidateTokenIssueTime();
//返回false则代表当前令牌为失效状态(即便token尚在有效期内,您可以自行更改此处的逻辑,比如通过缓存是否存在的方式判断等。)
return issueTime != new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds();
}
},
//自定义JWT验证成功处理
OnTokenValidated = (c) => { logger.Info($"{c.Scheme.Name} JWT token authentication succeeded!"); },
//自定义JWT验证失败处理
OnChallenge = (c) => { logger.Error($"{c.Scheme.Name} JWT token validation failed!"); },
},
//限流配置
ThrottleOptions = new QuickThrottleOptions
{
//redis配置
RedisOption = new QuickThrottleRedisOption
{
Host = "localhost",
Port = 6379,
Password = "",
Database = 0,
},
//redis key前缀
KeyPrefix = "QuickNet",
//获取用户唯一标识,用于限流,只有 Policy.UserIdentity 才会生效
OnUserIdentity = (httpContext) =>
{
var loginProfile = httpContext.LoginProfile<UserInfo>();
return loginProfile?.UserId.ToString();
},
},
//自定义异常类型,继承该类型的异常将会被直接返回给客户端
BaseCustomErrorType = typeof(AbsCustomError)
};
try
{
var builder = WebApplication.CreateBuilder(args);
//构建
var quickApp = new QuickWebBuilder(builder)
.SetupQuickOptions(quickOptions)
.AddFilters(filters => filters.Add<ApiThrottleActionFilter>())
.AddServices()
.Build();
//启动
quickApp.UsePipeline().Run();
logger.Info("The program has been terminated normally!");
}
catch (Exception exception)
{
logger.Error(exception, $"The program terminated abnormally...{exception.Message}");
throw;
}
finally
{
NLog.LogManager.Shutdown();
}
Product | Versions 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.
-
- Dnc.Api.Throttle (>= 1.2.1)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 6.0.27)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 6.0.27)
- NLog (>= 5.2.8)
- NLog.Web.AspNetCore (>= 5.3.8)
- Swashbuckle.AspNetCore (>= 6.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.