编辑添加额外的细节。ASP.NET身份Cookie未保存/设置在子域
我有一个web项目,我有效地用作授权服务器(例如example.com)。然后我有几个网站作为子域名(例如sub1.example.com,sub2.example.com)。登录授权服务器时,我目前无法获取.AspNet.Cookies
cookie以保存子域名。我可以看到cookie返回响应,但没有设置。
我已经搜索并尝试了各种解决方案,如设置CookiePath
和CookieDomain
。我已验证所有网站之间的Web.config
文件匹配的计算机密钥。这是目前怎么我的cookie身份验证:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
LoginPath = new PathString("/Account/Login"),
CookieDomain = ".example.com",
});
我有授权服务器上启用CORS,我能够接受的承载令牌,当我登录,我似乎无法得到cookie来被保存。
在此先感谢。
编辑:我在某处读到ARRAffinity cookie会混淆东西,所以我也禁用了它。我仍然无法看到子域中的cookie。
编辑2:添加Ajax调用的要求,在意见(密码和域名已经被改变的一致性与岗位):
$.ajax({
url: 'https://example.com/auth/token',
method: 'POST',
data: {
grant_type: 'password',
username: '[email protected]',
password: '************'
},
crossDomain: true
});
嗨!当你说cookie没有被设置时,你说的是浏览器没有发送它,对吧?你在'CookieDomain'中设置了什么值?你有没有尝试'mydomain.com'或'.mydomain.com'(注意开头的点)? –
当我在fiddler中查看响应时,我可以看到从服务器返回的cookie。但是浏览器忽略了那个_specific_cookie的Set-Cookie头。我尝试过'mydomain.com'和'.mydomain.com',都没有什么不同。 – ipshing
你能否提供一个代码样本来展示你如何创建cookie? –