SSO per due applicazioni in due sottodomini dello stesso dominio
E' il caso di applicazioni del tipo app1.com e app2.app1.com. In questo caso i cookie vengono memorizzati in file differenti e non sono visibili a entrambe le applicazioni. Bisogna utilizzare dei cookie di dominio. Non è possibile utilizzare la RedirectFromLoginPage in quanto non crea un cookie di dominio; è necessario quindi crearli manualmente:
FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, "ppaperino", DateTime.Now, DateTime.Now.AddYears(1), true, "");
HttpCookie cookie = new HttpCookie(".app2Auth");
cookie.Value = FormsAuthentication.Encrypt(fat);
cookie.Expires = fat.Expiration;
cookie.Domain = ".app1.com";
HttpContext.Current.Response.Cookies.Add(cookie);
FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, "Paolino Paperino", DateTime.Now, DateTime.Now.AddYears(1), true, "");
HttpCookie cookie = new HttpCookie(".app1Auth");
cookie.Value = FormsAuthentication.Encrypt(fat);
cookie.Expires = fat.Expiration;
cookie.Domain = ".app1.com";
HttpContext.Current.Response.Cookies.Add(cookie);
Vale ancora lo stesso discorso per il <machinekey>.
Technorati tags: Autenticazione