こんにちは、.net Web アプリケーションで生成した Cookie を読み取り、php ページでそれを読み取る方法を見つけようとしています。ユーザーに一度ログインしてもらいたいのですが、 Cookie の有効期限が切れた場合、ユーザーは再度ログインする必要はありませんが、.net と php の両方の Web アプリケーションが別のサーバー上にあるため、この問題について助けてください。
4 に答える
あなたはそれについて言及します:
ただし、.netとphpの両方のWebアプリケーションは異なるサーバー上にあります
両方のアプリケーションが同じドメイン名で実行されていますか?(例:www.mydomain.com)またはそれらは異なるドメインにありますか?
それらが同じドメインにある場合は、$ _ COOKIE変数を使用して、PHPで実行しようとしていることを実行できます。でCookieの値を取得するだけです
$myCookie = $_COOKIE["cookie_name"];
次に、$myCookieの値を使用して好きなことを行うことができます。
ただし、それらが異なるドメイン(つまり、foo.mydomain.comとbar.mydomain.com)にある場合は、両方のサイトからCookieにアクセスすることはできません。Webブラウザーは、Cookieを設定したドメイン上のページにのみCookieを送信します。ただし、元々トップレベルドメイン(mydomain.com)のみでCookieを設定した場合は、サブドメイン(anything.mydomain.com)がCookieを読み取ることができるはずです。
マシン上の 2 つのサーバーは同じドメイン内にありますか? その場合は、Cookie の範囲を FQDN ではなくドメインに設定する必要があります。その後、両方のマシンがそれらを読み取ることができます。
Response.Cookies["domain"].Domain = "contoso.com";
contoso.com、www.contoso.com、hotnakedhamsters.contoso.com などにアクセスを許可します。
ブラウザに渡されたすべての Cookie は、リクエストを処理するサーバーによって読み取り可能になります --- それらは言語に依存しません。
PHP で $_COOKIE を試す
サイトが同じ (例: www.example.com) である限り、Cookie はプラットフォームに依存しません。Todd Kennedy が言ったように、超グローバルな $_COOKIE を試してみてください。Cookie を読み取ることはできませんが、サイトが異なる場合、Cookie はサイト固有のものであり、この種のクロスサイト アクセスを防止します。