.NET Core 2.1 üzerindeyim ve sorunun Core ile ilgili olmadığının farkındayım. Yine de internet yok ve Google beni birkaç saat kurtarmayı umarak buraya getirdi.
Startup.cs
services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{
builder
.WithOrigins("http://localhost:3000") // important
.AllowCredentials() // important
.AllowAnyMethod()
.AllowAnyHeader(); // obviously just for testing
}));
client.js
const resp = await fetch("https://localhost:5001/api/user", {
method: 'POST',
credentials: 'include', // important
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
Controllers/LoginController.cs
namespace WebServer.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
[HttpPost]
public IEnumerable<string> Post([FromBody]LoginForm lf)
{
string prevUsername = HttpContext.Session.GetString("username");
Console.WriteLine("Previous username: " + prevUsername);
HttpContext.Session.SetString("username", lf.username);
return new string[] { lf.username, lf.password };
}
}
}
Oturum yazma ve okuma işlemlerinin işe yaradığına dikkat edin, ancak tarayıcıya hiç çerez geçirilmemiş gibi görünüyor. En azından hiçbir yerde bir "Set-Cookie" başlığı bulamadım.