Есть приложение: серверная часть написана на .net8, клиентская часть - на React.
Используется windows аутентификация.
Локально работают и post и get запросы, а после публикации на IIS - POST запросы не работают, а GET работают.
файл Program.cs
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Api_S.Models;
using Microsoft.AspNetCore.Authentication.Negotiate;
using Microsoft.AspNetCore.Cors.Infrastructure;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<GENERALContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddCors(options => {
options.AddPolicy(name: "MyAllowSpecificOrigins",
policy =>
{
policy
.WithOrigins("http://localhost:3000", "http://s38vm:84", "https://localhost:3000", "http://s38vm:83", "https://s38vm:84")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials(); }); });
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = options.DefaultPolicy;
});
builder.Services.AddControllers();
var app = builder.Build();
app.UseCors("MyAllowSpecificOrigins");
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
Так организован POST запрос в React:
await fetch(
'http://s38vm:84/api/Employes/Posttabel'
, {
method: 'post',
headers: { 'Content-Type': 'application/json', },
body: JSON.stringify(tabnn),
credentials: "include",
}
).then(res => {
if (!res.ok) {
console.log("ОШИБКА:");
}
else {
return res.json();
}
})
.then(res => {
setUser(res);
})
};