Я бы хотел подключить свой интерфейсный веб-сайт через CORS к своему внутреннему API, который использует простую аутентификацию (имя и пароль) для авторизации пользователей. Для этого я использую Javascripts Fetch API. Похоже, что идентификатор сеанса каждого вызова выборки изменяется, хотя я использую credentials = "initial"
:
function onClick() {
const url = 'https://localhost:44394/api/account/Login/Standard/P@$$w0rd';
fetch(url, {
method: 'POST',
credentials: 'include',
mode: 'cors'
}).then(function (response) {
return response.text().then(function (text) {
document.getElementById("at").innerHTML = text;
});
});
}
Я добавил следующее к Configure()
моего AspNetCore-Startup.cs
:
app.UseCors(builder=>builder.AllowAnyOrigin().AllowCredentials().AllowAnyMethod().AllowAnyHeader());
И ConfigureServices()
моего AspNetCore-Startup.cs
:
services.AddCors();
Я не могу войти с помощью функции onClick()
. Когда я использую credentials: "same-origin"
вместо include
, я могу войти в систему, но следующий вызов API изменит идентификатор сеанса вызова.
Как я могу запретить Fetch Call изменять идентификатор сеанса?
EDIT:
В моем контроллере аккаунта я получаю доступ к текущему идентификатору сессии через HttpContext.Session
Может быть, это что-то вроде сеанса сервера, а не сеанса запрашивающей стороны?