Microsoft Edge中的AspNetCore身份

时间:2019-03-14 15:27:56

标签: c# asp.net-core cookies fetch microsoft-edge

我在 .NET Core 2.0 应用程序(响应前端)中将 Identity 2.0 AzureAd 一起使用。所有数据调用都是使用 fetch API进行的;在服务器端,我要么使用[Authorize]标签,要么使用User.FindFirstValue(ClaimTypes.NameIdentifier)检查用户的ID。

在Chrome和FireFox中,所有这些都可以在本地以及部署到Azure时正常工作。但是,对于Edge,cookie似乎没有传递到服务器。这是我在页面加载中进行的示例调用:

fetch(getProjectsUrl, { credentials: "same-origin" })
    .then() ....

,但是User.Identity对象返回null。我的Cookie的启动配置如下:

.AddAzureAd(opts => Configuration.Bind("AzureAd", opts))            
.AddCookie(opts =>
    {
        opts.Cookie.Domain = "";
    });

因为我在某处读到Microsoft浏览器会拒绝Cookie,而App Host会尝试在其中设置域名(我也尝试过使用简单的.AddCookie())。

每个开发人员工具(包括在Edge中)将正确的cookie(AspNetCore.Identity.Application)存储在所有浏览器中,并且cookie值格式看起来正确(与FF / Chrome匹配);只是不通过Edge从提取调用将其连接到服务器。

我不会惊讶地发现它是由Edge具有不同的 fetch 实现所引起的,但是我找不到关于此的任何直接文献。我已经尝试过credentials键的所有可能值。

任何具有类似过去经验或任何经验的人都会对您有很大的帮助。谢谢

0 个答案:

没有答案