クッキーの紹介
まず、Cookie について簡単に説明し、ASP を使用して Cookie を管理する方法を説明します。
Cookie はクライアントのコンピュータに保存される小さなファイルです。つまり、ユーザーがサイトにアクセスするたびに、関連情報を含むファイルをそのユーザーのハード ドライブに密かに保存できることになります。このファイルには、ユーザー情報、サイトのステータスなど、設定したいほぼすべての情報を含めることができます。この場合、情報がハッカーによって読み取られる可能性があるという潜在的な危険があります。この問題の発生を防ぐ効果的な方法は、Cookie を作成したドメインのみが Cookie にアクセスできるようにすることです。これは、たとえば、ytu.edu.cn は、ytu.edu.cn によって作成された Cookie にのみアクセスできることを意味します。一般に、これは問題ではありませんが、Cookie に保存されているユーザー情報を 2 つの異なるドメイン上の 2 つのサイトで共有する必要がある場合はどうすればよいでしょうか。 1 つのサイトに登録し、別のサイトの登録ユーザーになる場合はどうでしょうか? あるいは、2 つのサイトがユーザー データベースを共有し、ユーザーに自動的にログインすることを要求する場合はどうすればよいでしょうか? 現時点では、ドメイン間で Cookie を共有することが最善の解決策です。
ここでは、将来簡単に参照できるように、まず ASP Cookie 処理コードをいくつか見てみましょう。
'クッキーの作成
Response.Cookies(MyCookie).Expires=日付+365
Response.Cookies(MyCookle).Domain=mydomaln.com
Response.Cookies(MyCookle)(ユーザー名)=strユーザー名
Response.Cookies(MyCookle)(パスワード)=strPassword
Cookie の読み取りと書き込みは非常に簡単で、Cookie を作成し、Cookie のプロパティ (ドメイン、有効期限、Cookie に保存されるその他の値) を設定します。ここで、strUsename、strPassword はどこかで設定された変数です。次に、次のステートメントを通じて Cookie を読み取ります。
'クッキーを読む
datExpDate=Request.Cookies(MyCookie)
strDomaln=Request.Cookies(MyCookle).Domain
strUsername=Request.Cookies(MyCookle)(ユーザー名)
strPassword=Request.Cookies(MyCookie)(パスワード)
詳しい内容はASP情報をご覧ください。
成し遂げる
単純に Cookie を共有するための秘訣はリダイレクトです。一般的なプロセスは次のとおりです。
1. ユーザーが siteA.com をクリックします。
2. ユーザーが siteA.com の Cookie を持っていない場合は、ユーザーを siteB.com にリダイレクトします。
3. ユーザーが siteB.com の Cookie を持っている場合は、特別なフラグ (後述) とともにユーザーを siteA.com にリダイレクトします。そうでない場合は、ユーザーを siteA.com にリダイレクトします。
4. siteA.com で Cookie を作成します。
単純なことのように見えますが、慎重に分析してください。siteA.com と siteB.com は同じユーザー設定を共有しているため、ユーザーが siteB.com の Cookie (すでに登録されている) を持っている場合、siteA.com も Cookie を読み取り、Cookie のアクセス許可を提供できます。特徴。このようにして、siteA.com にアクセスしたユーザーは、siteB.com にアクセスしたように見えます。
このチェックは、siteA.com に含まれる cookies.inc ファイルに実装する必要があります。このコードを見てみましょう:
l-1
'SiteA.com は Cookie をチェックします
Request.Querystring(Checked)<>Trueの場合
Request.Cookies(SiteA_Cookie).Haskeys でない場合は、
'siteB.com にリダイレクト
Response.Redlrect(http://www.siteB.com/cookie.asp)
次の場合に終了
次の場合に終了
ユーザーが siteA.com の Cookie を持っている場合は、無限ループを排除するために最初の if ステートメントを使用する必要はありません。さらに理解を深めるために、siteB.com の cookie.asp ファイルを見てみましょう。
1-2
「SiteB.com」
'クッキーを確認してください
Request.Cookies(SlteB_Cookle).Haskeys でない場合は、
'siteA.com にリダイレクト
Response.Redirect(http://www.siteA.com/index.asp&?checked=True)
それ以外
'ユーザー名を取得
strUsername=Request.Cookies(SiteB_Cookie)(ユーザー名)
'特別なフラグを使用してユーザーを siteA.com に戻します
Response.Redlrect(http://www.siteA.com/index.asp&?checked=True&identrfer=&strUsername)
次の場合に終了
ユーザーが依然として siteB.com に Cookie を持っていない場合は、そのユーザーを siteA.com に送り返し、クエリに checkd というパラメーターを指定して、Cookie をチェックしたことをアプリケーションに知らせます。それ以外の場合は、ユーザーを siteB.com に送り返し、ループを終了します。