我有两个应用程序(一个.NET和其他Angular SPA(.NET中的Web服务))具有相同的域名,我需要为这两个应用程序启用SSO。 config具有相同的机器密钥,并且它们启用了表单身份验证模式。C#Forms身份验证.ASPXAUTH Cookie的SSO
我登录到.NET站点,在iframe中呈现角度站点。当打开iframe时,API调用包含.ASPXAUTH cookie请求标题但HttpContext.User.Identity.Authenticated设置为false,因此它返回404并重定向到iframe中角度站点的登录页面。
auth cookie是HttpOnly,因此角度无法读取它但是si如果cookie是在请求头中设置的,则API(.NET)方法应将其视为已认证,而不是。我错过了什么?
你是否对这两个应用程序使用相同的auth cookie名称? – AMember
是的,它的.ASPXAUTH – Dave
我会开始在API请求上检查'FormsAuthentication.Decrypt(HttpContext.Request.Cookies [FormsAuthentication.FormsCookieName] .Value)',以便您可以确保传递的值可以被解密并包含有效的用户标识符可以使用API – Lanorkin