Creación correcta de una cookie de autenticación de formularios de dominio cruzado
Solo estoy creando una prueba simple entre dos servidores. Básicamente, si un usuario ya se ha autenticado, quiero poder pasarlos entre aplicaciones. Cambié las llaves para esconderlas.
Tengo tres preguntas:
¿Cuál es la forma correcta de validar la cookie en la aplicación de dominio? Por ejemplo, cuando el usuario aterriza ensuccesspage.aspx
¿Qué debería estar comprobando?¿Es el siguiente código válido para crear una cookie de autenticación de dominio cruzado?Tengo miweb.config
configurar correctamente?Mi código:
if (authenticated == true)
{
//FormsAuthentication.SetAuthCookie(userName, false);
bool IsPersistent = true;
DateTime expirationDate = new DateTime();
if (IsPersistent)
expirationDate = DateTime.Now.AddYears(1);
else
expirationDate = DateTime.Now.AddMinutes(300);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
userAuthName,
DateTime.Now,
expirationDate,
IsPersistent,
userAuthName,
FormsAuthentication.FormsCookiePath);
string eth = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, eth);
if (IsPersistent)
cookie.Expires = ticket.Expiration;
cookie.Domain = ".myDomain.com";
Response.SetCookie(cookie);
Response.Cookies.Add(cookie);
Response.Redirect("successpage.aspx");
}
Mi configuración:
<authentication mode="Forms">
<forms loginUrl="~/Default.aspx" timeout="2880" name=".AUTHCOOKIE" domain="myDomain.com" cookieless="UseCookies" enableCrossAppRedirects="true"/>
</authentication>
<customErrors mode="Off" defaultRedirect="failure.aspx" />
<machineKey decryptionKey="@" validationKey="*" validation="SHA1" decryption="AES"/>