我有一个 Blazor Interactive Server 应用程序,它使用 ASP.NET 身份库进行身份验证和授权。
我已在您通常使用
connect.tradewindsstudios.us
连接到它的位置设置了该应用程序。但是,它是一个显示政治竞选活动的应用程序,因此我还允许使用 MyCampaign.tradewindsstudios.us
进行连接,其中 MyCampaign
是给定竞选活动的唯一 ID。然后它只显示该活动的事件。
问题是,如果用户登录到
connect.tradewindsstudios.us
,他们必须再次登录到 MyCampaign.tradewindsstudios.us
。有没有办法告诉身份库将标识登录用户的 cookie 与 tradewindsstudios.us
联系起来?
h/t 给提供此信息的 josephdecock:
services.ConfigureApplicationCookie(options =>
{
options.Cookie.Domain = ".conteso.com"; // can be dangerous
});
约瑟夫:
您应该注意一个安全风险,即如果 您将 cookie 域设置为父域,浏览器将发送 所有子域的 cookie。风险在于,如果其他一些 子域被黑客攻击,浏览器将向子域发送会话cookie 攻击者 - 想象一下如果您正在运行 app1.example.com 并且 app2.example.com,但还有 crappy-word-press-site.example.com 这是 7 年前由某个营销团队建立的,后来被遗忘了, 从未收到任何安全补丁,现在由一个 攻击者。现在,如果用户登录并访问易受攻击的站点, 他们的会话 cookie 将向攻击者公开。