1

私たちは奇妙な状況にあります。web.configには次のものがあります。

<authentication mode="Forms">
     <forms name="ASPDNSFGUID" loginUrl="SignIn.aspx" timeout="525600" /></authentication>

これはeコマースアプリであり、Cookieは、ログイン後にバスケットの内容が保持されていることを確認するために使用されますが、これは機能しません。これまで何十回も問題なく使用してきました。

このサイトは、コヨーテポイントロードバランサーの背後にある2つのフロントエンドWebサーバーでホストされています。サイトをHTTPS経由で表示すると、Cookieが存在し、認証タイプはフォームであることがわかりました。ただし、非セキュアを参照すると、Cookieが欠落し、認証タイプが設定されません。すべてのヘッダーを印刷するページを作成したので、これを知っています。

考えられる原因について誰かが何か考えを持っていますか?ロードバランサーがCookieを削除しているかどうか疑問に思っていますが、これを示す証拠はなく、ただの直感です。

4

2 に答える 2

0

Cookieはhttpsに設定されていますか?設定されている場合、httpsとhttpは同じドメインにありますが、プロトコルによってのみ異なりますか?すなわちhttps://www.somesite.comhttp://www.somesite.com

<forms>なぜなら、それらが異なるサブドメインを持っている場合、web.configの要素でdomain = "somesite.com"を指定しない限り、問題が発生するからです。

于 2012-10-26T13:30:55.487 に答える
0

HTTPS 経由でサイトを表示すると、Cookie が存在し、認証タイプがフォームであることがわかりました。ただし、非セキュアをブラウズすると、Cookie が失われ、認証タイプが設定されません。

requireSSL="true"これは、<forms >タグに を設定した場合に発生します。

これは Cookie に影響を与える可能性があるため、 subdomain を使用せずにタグdomain="yourdomain.com"内でを宣言しようとする方法はありません。<forms >www.

ということで、まずはこれをやってみる

<forms name="ASPDNSFGUID" domain="yourdomain.com" loginUrl="SignIn.aspx" 
          timeout="525600" />

次に、requireSSL をプログラムで設定したかどうかを確認してください。

于 2012-10-26T12:21:41.410 に答える