Criação adequada de um cookie de autenticação de formulários entre domínios
Estou apenas criando um teste simples entre dois servidores. Basicamente, se um usuário já tiver autenticado, eu quero poder passá-lo entre os aplicativos. Eu mudei as chaves para escondê-las
Eu tenho três perguntas:
Qual é a maneira correta de validar o cookie no aplicativo de domínio. Por exemplo, quando o usuário aterrissasuccesspage.aspx
O que devo verificar?O código abaixo é válido para criar um cookie de autenticação entre domínios?Eu tenho meuweb.config
configurar corretamente?Meu 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");
}
Minha configuração:
<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"/>