如何设置ASP.NET核心标识cookie的路径

时间:2017-11-14 23:22:57

标签: asp.net asp.net-identity

我有一个ASP.NET Core MVC应用程序,它也承载一个API。该站点使用身份默认值,因此在您登录时设置了cookie。 API已配置为使用JWT承载身份验证。

我还有一个单独的ASP.Net Core MVC应用程序,它承载一个Javascript SPA,作为身份验证服务器和API与另一个站点通信。

在我的开发机器上,这些项目使用不同的端口,当我登录主API站点时,设置了一个cookie,我可以看到cookie路径设置为root" /"。这是所需的行为,因为我希望Javascript SPA知道我已通过身份验证并登录。

当我将其部署到我们的IIS服务器时,我为每个应用程序提供了如下虚拟路径:

网站1:/ SPA 站点2:/ API

当我将其部署到IIS时,我注意到Cookie路径设置为" / API"。

这不是理想的行为,因为SPA应用程序认为我未经过身份验证。

我希望能够覆盖它并将cookie路径显式设置为root" /"。

如何在允许JWT承载认证的同时设置cookie路径?

1 个答案:

答案 0 :(得分:0)

您应该能够在ConfigureServices中配置Cookie路径,如:

  services.ConfigureApplicationCookie(options =>
  {
    options.Cookie.Path = "/";
  });

请参阅https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-configuration?view=aspnetcore-2.1&tabs=aspnetcore2x#cookie-settings