我正在尝试跨子域共享我的 ASP.NET Identity cookie。目前只是本地。
- sub1.domain.local
- 子2.域.本地
我有相同的机器密钥在两个站点上,但在 sub1 上创建的 cookie 不会在 sub2 上验证,反之亦然。生成的 cookie 域始终是“.domain.local”(这应该是正确的??)
这是我在启动类中的设置:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/login"),
CookieDomain = ".domain.local",
});
我只尝试过每个站点的 localhost:siteport ,但结果相同(cookie 域空白,解析为“localhost”)
我一生都无法弄清楚我做错了什么。也许有人可以指出我正确的方向?谢谢
UPDATE
好的,所以我发现 cookie 实际上是在子域之间共享的,但它仅在创建 cookie 的子域上被认为有效。需要找到一种方法来了解为什么其他站点上的身份验证失败。
经过一番苦思冥想后,我注意到各种身份包中的版本号有所不同。我更新了 Nuget 的各种软件包,你知道吗?有效!
让我担心的是它只从次要版本更新(例如 Microsoft.Owin.Security.Cookies 从 3.0.0.0 到 3.0.1.0)。我不希望他们将来必须保持这样的一致。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)