Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么ASP.NET核心标识Cookie不能跨域工作?_C#_Asp.net Core_Cookies_Asp.net Core Identity - Fatal编程技术网

C# 为什么ASP.NET核心标识Cookie不能跨域工作?

C# 为什么ASP.NET核心标识Cookie不能跨域工作?,c#,asp.net-core,cookies,asp.net-core-identity,C#,Asp.net Core,Cookies,Asp.net Core Identity,我在ASP.NET核心标识中设置了一些cookie选项,以包括两个子域: services.ConfigureApplicationCookie(identityOptionsCookies => { identityOptionsCookies.Cookie.Domain = ".example.com"; identityOptionsCookies.Cookie.Name = &quo

我在ASP.NET核心标识中设置了一些cookie选项,以包括两个子域:

        services.ConfigureApplicationCookie(identityOptionsCookies =>
        {
            identityOptionsCookies.Cookie.Domain = ".example.com";
            identityOptionsCookies.Cookie.Name = "ExampleToken";
        });
基于此配置,我通过此子域登录:

api.accounts.example.com
我使用以下API调用检查我是否经过身份验证:

api.accounts.example.com/identity/isAuthenticated => returns true
现在,我转到另一个子域,使用Startup.cs的相同配置,我不再经过身份验证:

api.user.example.com/teacher/list => redirects me to /Accounts/Login

为什么会这样?

identityoptions cookies.Cookie.Domain=“*.example.com”

identityoptioncookies.Cookie.Domain=“*.example.com”

您提供的代码应符合文档要求:-问题:a)cookie在浏览器中的外观如何?所有cookie设置都正确吗?b) cookie请求是否发送到api.accounts.example.com?c) 这两个域是相同的应用程序实例还是单独的部署?(如果分开:数据保护是如何配置的?@ChristophLütjen,cookie的外观是什么意思?Cookie在请求中发送回API,我可以通过调试
HttpContext.request.Cookies
来验证它。这些是跨不同服务器的单独部署。如果您已验证对api.user.example.com的请求是否包含正确的cookie,我想问题在于它正在不同的服务器上运行。Identity将在api.accounts的本地文件系统中创建一个票证,因此api.user无法找到此票证。有关如何将其配置为与多台服务器一起工作的详细信息,请参阅。您提供的代码应根据文档工作:-问题:a)cookie在浏览器中的外观如何?所有cookie设置都正确吗?b) cookie请求是否发送到api.accounts.example.com?c) 这两个域是相同的应用程序实例还是单独的部署?(如果分开:数据保护是如何配置的?@ChristophLütjen,cookie的外观是什么意思?Cookie在请求中发送回API,我可以通过调试
HttpContext.request.Cookies
来验证它。这些是跨不同服务器的单独部署。如果您已验证对api.user.example.com的请求是否包含正确的cookie,我想问题在于它正在不同的服务器上运行。Identity将在api.accounts的本地文件系统中创建一个票证,因此api.user无法找到此票证。有关如何将其配置为与多台服务器一起工作的详细信息,请参阅。