C# Forms Authentication .ASPXAUTH Cookie for SSO

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

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

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

auth cookie 是 HttpOnly,因此 angular 无法读取它。但是由于 cookie 是在请求​​ header 中设置的,API (.NET) 方法应该将其视为已通过身份验证,而事实并非如此。有什么我想念的吗?

最佳答案

这个问题确实缺少一些信息,不能保证正确回答,不过我觉得这跟同源政策有关系。您必须明确设置 iFrame 的来源,以便您的 cookie 不被识别为跨站点请求。因此不会被 ASP.net 应用。您的原始 http header 必须设置为有效的来源和引荐来源网址。

也请看看这个question .它简要说明了同源策略。

关于C# Forms Authentication .ASPXAUTH Cookie for SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34319801/

相关文章:

c# - 如何使用 epplus 在 excel 中将小数格式化为百分比?

c# - 我可以显示 PDF,但不允许在网站中链接到它吗?

asp.net-mvc - 具有两个重载操作方法的 ASP.NET MVC : post-redirect-get pattern,

c# - 带枚举的 MVC3 RadioButtonFor

jquery - 获取多个输入类型隐藏值行按钮单击表中的列

c# - 无法找到 CodeDom 提供程序类型 'Microsoft.VisualC.CppCodeProvider',正在尝试编译 node_modules

c# - 动态表达式不适用于动态对象

javascript - 在 Angular 2 中通过 DOM 更改 iframe url 的更好方法

html - 在 AngularJS 的 ng-repeat 循环中显示特定元素的 div

javascript - 在 jQuery 中调用 AngularJS 函数