Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
Asp.Net Core

.NET Core: Configure CORS to Allow API Access from Other Domains

- 13.06.26 - ErcanOPAK

🌐 Blocked by CORS? Configure It.

Browser blocks API calls from different origins. CORS configuration allows specific domains. Security by default, flexibility when needed.

📝 Basic CORS

// Program.cs
var builder = WebApplication.CreateBuilder(args);

// Allow any origin (development only!)
builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowAll", policy =>
    {
        policy.AllowAnyOrigin()
              .AllowAnyMethod()
              .AllowAnyHeader();
    });
});

var app = builder.Build();
app.UseCors("AllowAll");
app.Run();

🎯 Production CORS (Specific Origins)

builder.Services.AddCors(options =>
{
    options.AddPolicy("Production", policy =>
    {
        policy.WithOrigins(
                "https://myapp.com",
                "https://admin.myapp.com"
            )
            .WithMethods("GET", "POST", "PUT", "DELETE")
            .WithHeaders("Authorization", "Content-Type")
            .AllowCredentials();  // Allow cookies/auth headers
    });
});

// Multiple policies
options.AddPolicy("PublicAPI", policy =>
{
    policy.WithOrigins("*")
          .WithMethods("GET")
          .WithHeaders("*");
});

// Use specific policy per endpoint
app.MapGet("/api/public", handler).RequireCors("PublicAPI");

💡 Environment-Specific

  • Development: AllowAnyOrigin() for easy testing
  • Production: WithOrigins() with specific domains
  • Use configuration for origins list (appsettings.json)
  • Never use AllowAnyOrigin with AllowCredentials (browser blocks)

“SPA on different domain couldn’t call API. Added CORS policy. Now SPA works. Security preserved. CORS is essential for modern web apps.”

— API Developer

Related posts:

.NET Core: Understanding Middleware Order (It Matters!)

ASP.NET Core “Random 404 After Deploy” — Broken Routing Cache

.NET Core: Use API Controllers for RESTful Services

Post Views: 1

Post navigation

Git: Use Tags to Mark Releases and Important Commits
SQL: Use LIMIT and OFFSET for Efficient Pagination

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

July 2026
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  
« Jun    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (960)
  • How to add default value for Entity Framework migrations for DateTime and Bool (898)
  • How to make theater mode the default for Youtube (858)
  • Get the First and Last Word from a String or Sentence in SQL (840)
  • How to select distinct rows in a datatable in C# (814)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (597)
  • Add Constraint to SQL Table to ensure email contains @ (582)
  • Average of all values in a column that are not zero in SQL (545)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (512)
  • Find numbers with more than two decimal places in SQL (460)

Recent Posts

  • C#: Use Using Statements for Resource Management
  • C#: Use Lambda Expressions for Concise Code
  • SQL: Use GROUP BY for Data Aggregation
  • .NET Core: Master Routing for Clean URLs
  • Git: Use Reset to Undo Local Changes
  • Ajax: Use Axios for HTTP Requests
  • JavaScript: Understand Hoisting
  • HTML: Use Web Storage for Client-Side Data
  • CSS: Use Filter Effects for Visual Magic
  • Windows 11: Unlock God Mode for All Settings

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (960)
  • How to add default value for Entity Framework migrations for DateTime and Bool (898)
  • How to make theater mode the default for Youtube (858)
  • Get the First and Last Word from a String or Sentence in SQL (840)
  • How to select distinct rows in a datatable in C# (814)

Recent Posts

  • C#: Use Using Statements for Resource Management
  • C#: Use Lambda Expressions for Concise Code
  • SQL: Use GROUP BY for Data Aggregation
  • .NET Core: Master Routing for Clean URLs
  • Git: Use Reset to Undo Local Changes

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com