Das Einfügen von web.config in das von der Angular-Anwendung gehostete Verzeichnis funktioniert nicht mehr mit der .NET C#

Ein Treffpunkt für C#-Programmierer
Guest
 Das Einfügen von web.config in das von der Angular-Anwendung gehostete Verzeichnis funktioniert nicht mehr mit der .NET

Post by Guest »

Ich habe eine .NET 7-Minimal-API-App, die in IIS gehostet wird, und dieselbe API wird in einer anderen Angular-App aufgerufen, die in demselben IIS gehostet wird. Zum Beispiel
https://example.com ist die Angular-App-URL, wobei https://example.com/API die API-URL ist.
Angular-Apps funktionieren gut mit der API Es sei denn, ich habe die folgende web.config im Stammverzeichnis der Angular-App abgelegt, um das Aktualisierungsproblem zu lösen, aber sobald ich sie dort abgelegt habe, funktioniert die API nicht mehr und es wird die Fehlermeldung 405 ausgegeben.
Hier ist der Konfigurationscode:

Code: Select all

























und hier ist Code aus Program.cs

Code: Select all

using DataAccess.DBAccess;
using paylocityapi;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using System.Text;
using Microsoft.OpenApi.Models;

var builder = WebApplication.CreateBuilder(args);

//swagger

builder.Services.AddSwaggerGen(options =>
{
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Scheme = "Bearer",
BearerFormat = "JWT",
In = ParameterLocation.Header,
Name = "Authorization",
Description = "Bearer Authentication with JWT Token",
Type = SecuritySchemeType.Http
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Id = "Bearer",
Type = ReferenceType.SecurityScheme
}
},
new List()
}
});
});

//JWT TOKEN

builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["JwtSettings:Issuer"],
ValidAudience = builder.Configuration["JwtSettings:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["JwtSettings:SecretKey"]))
};
});

// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddSingleton();

builder.Services.AddAuthorization();

// Enable CORS
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();

}

app.UseHttpsRedirection();

app.ConfigureApi();
app.UseCors();

app.UseAuthentication();
app.UseAuthorization();

app.Run();

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post