C#表单身份验证.ASPXAUTH Cookie用于SSO

时间:2015-12-16 18:46:51

标签: c# angularjs asp.net-mvc forms-authentication

我有2个应用程序(一个.NET和其他Angular SPA(.NET中的Web服务)具有相同的域名。我需要为这两个应用程序启用SSO .web.config都有相同的机器密钥,它们都是已启用Forms身份验证模式。

我登录.NET站点,在iFrame中显示角度站点。打开iframe时,API调用在请求标头中包含.ASPXAUTH cookie,但HttpContext.User.Identity.Authenticated设置为false。因此它返回404并重定向到iframe中角度站点的登录页面。

auth cookie是HttpOnly所以angular无法读取它。但由于cookie是在请求标头中设置的,因此API(.NET)方法应将其视为已通过身份验证,而不是。我缺少什么?

1 个答案:

答案 0 :(得分:2)

有些信息无法确定正确回答这个问题,但我认为这与相同的原始政策有关。您必须明确设置iFrame的来源,以便您的cookie不被识别为跨站点请求。因此不会被ASP.net应用。您的原始http标头必须设置为有效的来源和引荐来源。

请同时查看此question。它简要解释了同源政策。