asp.NetCookieドメイン間(ドメイン名)に関する質問
6216 ワード
2級ドメイン名にまたがる私たちはcookieが2級ドメイン名にまたがってアクセスできることを知っています.これはよく理解しています.例えばwww.test 1.comのウェブアプリケーションはbbsでクッキーを作成しました.test1.comのような2級ドメイン名に対応するアプリケーションにアクセスするには、クッキーを作成するときにdomainパラメータdomain=test 1を設定する必要があります.com. asp.Netの例コードは以下の通りです.
上位ドメイン名にまたがる
もし私が2級ドメイン名ではなく、www.test 1のような異なるトップドメイン名に完全に存在するならば.comが存在するwebアプリケーションはwww.test 2でクッキーを作成した.comまたはその2級ドメイン名のアプリケーションにアクセスして、どうすればいいですか?従来の逆の方法ではアクセスできないことを知っています.肝心なのは、アクセスできる方法があるかどうかを見ることです.事実上、Cookieは、任意のドメイン間ではなく、一定の条件下でドメイン間で実現することができる.
2つのサイトwww.test 1を見てみましょう.comとwww.test 2.comはどのようにcookieのドメイン間アクセスを実現しますか.通常、ドメイン名を構成するには2つのトップドメイン名が必要であり、DNSサーバが必要です.そうしないと検証できませんが、hostsファイルを変更してシミュレーションする必要はありません.c:windowssystem 32driversetcにhostsファイルがあり、末尾に追加
127.0.0.1 www.test1.com127.0.0.1 www.test2.comの2行で、本機を上のドメイン名で本機のループバックアドレスにアクセスすることができます.IISにプログラムを配備するだけで、ipはネイティブループアドレスで、2つのドメイン名でそれぞれアクセスすればいいです.
私たちは新しい3つのページを作りました.それぞれDefaultです.aspx、SSO.ashx、GetCookie.aspx.
その中でaspxはwww.test 1.comのページ、アクセス先はhttp://www.test1.com/Default.aspx.フロントコードを見てください.バックグラウンドコードはありません.
HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");
cookie.Domain = "test1.com";
cookie.Path = "/";
Response.Cookies.Add(cookie);
上位ドメイン名にまたがる
もし私が2級ドメイン名ではなく、www.test 1のような異なるトップドメイン名に完全に存在するならば.comが存在するwebアプリケーションはwww.test 2でクッキーを作成した.comまたはその2級ドメイン名のアプリケーションにアクセスして、どうすればいいですか?従来の逆の方法ではアクセスできないことを知っています.肝心なのは、アクセスできる方法があるかどうかを見ることです.事実上、Cookieは、任意のドメイン間ではなく、一定の条件下でドメイン間で実現することができる.
2つのサイトwww.test 1を見てみましょう.comとwww.test 2.comはどのようにcookieのドメイン間アクセスを実現しますか.通常、ドメイン名を構成するには2つのトップドメイン名が必要であり、DNSサーバが必要です.そうしないと検証できませんが、hostsファイルを変更してシミュレーションする必要はありません.c:windowssystem 32driversetcにhostsファイルがあり、末尾に追加
127.0.0.1 www.test1.com127.0.0.1 www.test2.comの2行で、本機を上のドメイン名で本機のループバックアドレスにアクセスすることができます.IISにプログラムを配備するだけで、ipはネイティブループアドレスで、2つのドメイン名でそれぞれアクセスすればいいです.
私たちは新しい3つのページを作りました.それぞれDefaultです.aspx、SSO.ashx、GetCookie.aspx.
その中でaspxはwww.test 1.comのページ、アクセス先はhttp://www.test1.com/Default.aspx.フロントコードを見てください.バックグラウンドコードはありません.
<br/>
<br/>
<br/> <form id="form1" runat="server">
<br/> <div>
<br/>
<br/> <script type="text/javascript">
<br> var _frm = document.createElement("iframe");
<br> _frm.style.display = "none";
<br> _frm.src = "http://www.test2.com/SSO.ashx";
<br> document.body.appendChild(_frm);
<br> </script>
<br/>
<br/> </div>
<br/> </form>
<br/>
<br/>
</code></pre>
<br/> SSO.ashx , www.test2.com , , :
<pre><code>
<br/>using System;
<br/>using System.Collections.Generic;
<br/>using System.Linq;
<br/>using System.Web;
<br/>using System.Web.Services;
<br/>using System.Web.SessionState;
<br/>
<br/>namespace Admin10000.Web
<br/>{
<br/> /// <summary>
<br/> /// $codebehindclassname$
<br/> /// </summary>
<br/> [WebService(Namespace = "http://tempuri.org/")]
<br/> [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
<br/> public class SSO : IHttpHandler
<br/> {
<br/>
<br/> public void ProcessRequest(HttpContext context)
<br/> {
<br/> HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");
<br/> cookie.Domain = "test2.com";
<br/> cookie.Path = "/";
<br/> cookie.Expires = DateTime.Now.AddMinutes(10000);
<br/> context.Response.Cookies.Add(cookie);
<br/>
<br/> context.Response.ContentType = "text/plain";
<br/> context.Response.AddHeader("P3P", "CP=CAO PSA OUR");
<br/> context.Response.Write("");
<br/> }
<br/>
<br/> public bool IsReusable
<br/> {
<br/> get
<br/> {
<br/> return false;
<br/> }
<br/> }
<br/> }
<br/>}
</code></pre>
<br/> GetCookie.aspx , www.test2.com , , :
<pre><code>
<br/>using System;
<br/>using System.Collections.Generic;
<br/>using System.Linq;
<br/>using System.Web;
<br/>using System.Web.UI;
<br/>using System.Web.UI.WebControls;
<br/>
<br/>namespace Admin10000.Web
<br/>{
<br/> public partial class GetCookie : System.Web.UI.Page
<br/> {
<br/> protected void Page_Load(object sender, EventArgs e)
<br/> {
<br/> if (Request.Cookies["name"] != null)
<br/> {
<br/> Response.Write(Request.Cookies["name"].Value);
<br/> }
<br/> }
<br/> }
<br/>}
</code></pre>
<br/> , , http://www.test1.com/Default.aspx , iframe SSO.ashx , cookie, http://www.test2.com/GetCookie.aspx cookie。 www.test1.com cookie www.test2.com 。
<p> :<br/> admin10000.com SSO.ashx :context.Response.AddHeader("P3P", "CP=CAO PSA OUR"); P3P 。 IE P3P iframe cookie , cookie。(FireFox P3P ,FireFox 。 P3P 。)</p>
<p> iframe src test1.com cookie get test2.com SSO.ashx ,SSO.ashx test1.com cookie , cookie , cookie 。</p>
<p> Default.aspx JS :</p>
<pre><code>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/> <title/>
<br/>
<br/>
<br/> <form id="form1" runat="server">
<br/> <div>
<br/> <script type="text/javascript" src="http://www.test2.com/SSO.ashx"/>
<br/> </div>
<br/> </form>
<br/>
<br/>
</code></pre>
<div class="clearfix">
<span id="art_bot" class="jbTestPos"/>
</div>
</div>
</div>
</div>