2 つのサーバー間で簡単なテストを作成しているだけです。基本的に、ユーザーがすでに認証されている場合、アプリケーション間でそれらを渡すことができるようにしたいと考えています。それらを隠すためにキーを変更しました
3 つの質問があります。
- ドメイン アプリケーション全体で Cookie を検証する適切な方法は何ですか。たとえば、ユーザーがどこにたどり着いたとき、
successpage.aspx
何をチェックすればよいでしょうか? - 次のコードは、クロス ドメイン認証 Cookie の作成に有効ですか?
web.config
セットアップは適切に行われていますか?
私のコード:
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");
}
私の設定:
<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"/>