RysePackage.Corsario
1.0.0
dotnet add package RysePackage.Corsario --version 1.0.0
NuGet\Install-Package RysePackage.Corsario -Version 1.0.0
<PackageReference Include="RysePackage.Corsario" Version="1.0.0" />
<PackageVersion Include="RysePackage.Corsario" Version="1.0.0" />
<PackageReference Include="RysePackage.Corsario" />
paket add RysePackage.Corsario --version 1.0.0
#r "nuget: RysePackage.Corsario, 1.0.0"
#:package RysePackage.Corsario@1.0.0
#addin nuget:?package=RysePackage.Corsario&version=1.0.0
#tool nuget:?package=RysePackage.Corsario&version=1.0.0
Corsario
Corsario e uma biblioteca para .NET voltada a configuracao centralizada e segura de CORS em aplicacoes ASP.NET Core. O pacote encapsula o registro das politicas, a leitura das configuracoes e a validacao das combinacoes sensiveis para reduzir erros de setup e manter o comportamento consistente entre ambientes.
Objetivo
O objetivo do Corsario e simplificar a configuracao de CORS sem abrir mao de regras importantes de seguranca. Em vez de espalhar AddCors, nomes de politica e validacoes manuais por varios projetos, a biblioteca concentra esse fluxo em uma API pequena e previsivel.
O Corsario foi pensado para cenarios em que precisamos:
- habilitar ou desabilitar CORS por configuracao
- definir origens permitidas de forma centralizada
- controlar metodos e headers permitidos
- permitir credenciais com validacao de seguranca
- evitar configuracoes invalidas como
AllowCredentials=truejunto comAllowAnyOrigin=true - aplicar o middleware CORS no pipeline usando a mesma convencao em diferentes APIs
Implementacao
O pacote gira em torno de dois pontos principais:
CorsSettings, que representa a secaoCorsSettingsdoappsettings.jsonCorsServiceExtensions, que forneceAddConfiguredCorseUseConfiguredCors
Fluxo da biblioteca:
- a configuracao e lida a partir da secao
CorsSettings - se o recurso estiver desabilitado, uma politica de fallback e registrada
- se estiver habilitado, as configuracoes sao validadas
- a politica CORS e criada com base em origens, metodos, headers e credenciais
- o middleware pode ser aplicado no pipeline com a extensao correspondente
Regras importantes da implementacao:
AllowCredentials=trueexige origens explicitasAllowCredentials=truenao pode ser combinado comAllowAnyOrigin=true- origens informadas devem ser URLs absolutas validas
- quando
AllowedMethodsvier vazio, a configuracao e tratada como invalida - o cache de preflight e configurado com
10minutos
Instalacao
.NET CLI
dotnet add package Corsario
PackageReference
<PackageReference Include="Corsario" Version="1.0.0" />
Configuracao Basica
appsettings.json
{
"CorsSettings": {
"Enabled": true,
"AllowedOrigins": "https://app.rysecode.com,https://admin.rysecode.com",
"AllowCredentials": true,
"AllowedMethods": "GET,POST,PUT,DELETE,OPTIONS",
"AllowedHeaders": "Content-Type,Authorization",
"AllowAnyOrigin": false
}
}
Program.cs
using RysePackage.Corsario.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddConfiguredCors(builder.Configuration);
var app = builder.Build();
app.UseRouting();
app.UseConfiguredCors(app.Configuration);
app.UseAuthorization();
app.MapControllers();
app.Run();
Cenarios de Uso
API com credenciais e origens explicitas
Esse e o cenario recomendado quando a aplicacao precisa aceitar cookies, autenticacao baseada em sessao ou headers protegidos em frontends conhecidos.
{
"CorsSettings": {
"Enabled": true,
"AllowedOrigins": "https://app.rysecode.com,https://portal.rysecode.com",
"AllowCredentials": true,
"AllowedMethods": "GET,POST,PUT",
"AllowedHeaders": "Content-Type,Authorization",
"AllowAnyOrigin": false
}
}
API publica sem credenciais
Quando o endpoint pode ser acessado por qualquer origem e nao depende de cookies ou credenciais cross-origin, e possivel liberar todas as origens com mais simplicidade.
{
"CorsSettings": {
"Enabled": true,
"AllowedOrigins": "",
"AllowCredentials": false,
"AllowedMethods": "GET,OPTIONS",
"AllowedHeaders": "Content-Type",
"AllowAnyOrigin": true
}
}
Wildcard de subdominios
Ao definir origens explicitas, o Corsario tambem habilita suporte a subdominios curinga por meio da configuracao de politica do ASP.NET Core.
{
"CorsSettings": {
"Enabled": true,
"AllowedOrigins": "https://*.rysecode.com",
"AllowCredentials": true,
"AllowedMethods": "GET,POST",
"AllowedHeaders": "Content-Type,Authorization",
"AllowAnyOrigin": false
}
}
Quando Usar
O Corsario e indicado para:
- APIs ASP.NET Core que desejam padronizar configuracao de CORS
- projetos com multiplos ambientes e necessidade de centralizar origens permitidas
- bibliotecas internas e templates de API que precisam de uma convencao unica
- equipes que querem reduzir erro humano em configuracoes sensiveis de CORS
Licenca
Este projeto esta licenciado sob a licenca MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.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.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 436 | 4/15/2026 |