Edi.AspNetCore.ApiKeyAuth
1.0.2
dotnet add package Edi.AspNetCore.ApiKeyAuth --version 1.0.2
NuGet\Install-Package Edi.AspNetCore.ApiKeyAuth -Version 1.0.2
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="Edi.AspNetCore.ApiKeyAuth" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Edi.AspNetCore.ApiKeyAuth" Version="1.0.2" />
<PackageReference Include="Edi.AspNetCore.ApiKeyAuth" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Edi.AspNetCore.ApiKeyAuth --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Edi.AspNetCore.ApiKeyAuth, 1.0.2"
#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.
#:package Edi.AspNetCore.ApiKeyAuth@1.0.2
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Edi.AspNetCore.ApiKeyAuth&version=1.0.2
#tool nuget:?package=Edi.AspNetCore.ApiKeyAuth&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Edi.AspNetCore.ApiKeyAuth
A simple and flexible API Key authentication library for ASP.NET Core applications.
Features
- 🔑 API Key authentication via headers or query parameters
- 🏗️ Easy integration with ASP.NET Core's authentication system
- ⚙️ Configurable API keys through
appsettings.json
- 📊 Built-in logging support
- 🎯 Multiple .NET versions support (.NET 8.0 and .NET 9.0)
Installation
Install the package via NuGet:
dotnet add package Edi.AspNetCore.ApiKeyAuth
Or via Package Manager Console:
Install-Package Edi.AspNetCore.ApiKeyAuth
Quick Start
1. Configure API Keys
Add your API keys to appsettings.json
:
{
"ApiKeys": [
{
"Identifier": "MyApp",
"Key": "your-secret-api-key-here"
},
{
"Identifier": "AnotherClient",
"Key": "another-secret-key"
}
]
}
2. Register Services
In your Program.cs
or Startup.cs
:
using Edi.AspNetCore.ApiKeyAuth;
var builder = WebApplication.CreateBuilder(args);
// Add API Key authentication
builder.Services.AddApiKeyAuthentication();
var app = builder.Build();
// Enable authentication and authorization
app.UseAuthentication();
app.UseAuthorization();
app.Run();
3. Protect Your Endpoints
Use the [Authorize]
attribute on controllers or actions:
[ApiController]
[Route("api/[controller]")]
[Authorize(AuthenticationSchemes = "ApiKey")]
public class SecureController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
var userIdentifier = User.FindFirst("UserIdentifier")?.Value;
return Ok($"Hello {userIdentifier}!");
}
}
Usage
Authentication Methods
The library supports API key authentication through multiple methods:
1. Header Authentication
curl -H "X-API-Key: your-secret-api-key-here" https://yourapi.com/api/secure
Alternative header name:
curl -H "ApiKey: your-secret-api-key-here" https://yourapi.com/api/secure
2. Query Parameter Authentication
curl "https://yourapi.com/api/secure?apikey=your-secret-api-key-here"
Accessing User Information
Once authenticated, you can access user information through claims:
[HttpGet]
[Authorize(AuthenticationSchemes = "ApiKey")]
public IActionResult GetUserInfo()
{
var userIdentifier = User.FindFirst("UserIdentifier")?.Value;
var apiKey = User.FindFirst("ApiKey")?.Value;
var userName = User.Identity?.Name;
return Ok(new { UserIdentifier = userIdentifier, UserName = userName });
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.