0

mysubdomain.mydomain.comのアプリケーションでは、ユーザーセッション情報を含むCookieを設定する必要があります。

httpsページでログインします。それらを認証し、Cookieにセッション情報を設定します。

これは、コントローラーコンテキストを取り込むヘルパーライブラリで行います

contextBase.Response.Cookies[CookiePayload.CookieName].Value = encryptedTicket;                       
contextBase.Response.Cookies[CookiePayload.CookieName].Expires = cookieExpires;
contextBase.Response.Cookies[CookiePayload.CookieName].Domain= ConfigHelper.CookieDomain;
contextBase.Response.Cookies[CookiePayload.CookieName].HttpOnly=true;

コントローラで(https以外のページに)クイックリダイレクトを実行します。

this.ControllerContext.HttpContext.Response.Redirect(redirectTo, false);
return null;

応答にCookieが表示されます(firebugのネットタブによる)。

ただし、fireforxも、後続の取得時にCookieを送信することもありません。

サイトがmysubdomain.mydomain.comであっても、Cookieドメインをmydomain.comに設定しています。リダイレクトコマンドをスキップしても効果はなく、Cookieの値を変更することもありません。

私は困惑しています。提案をありがとう。

4

1 に答える 1

4

SecureこのCookieを送信する必要がある場合は、フラグを明示的にfalseに設定してみてくださいhttp

var cookie = new HttpCookie(CookiePayload.CookieName, encryptedTicket)
{
    HttpOnly = true,
    Domain = ConfigHelper.CookieDomain,
    Secure = false,
    Expires = cookieExpires
};
Response.SetCookie(cookie);
于 2010-04-16T08:32:58.923 に答える