web-dev-qa-db-ja.com

Chrome localhost cookieが設定されていません

Cookieを使用してユーザーが選択した言語を保存するASP.netアプリケーションがあります。ローカルホストを使用している場合を除き、すべて正常に動作します。 localhostを127.0.0.1に置き換えると、再び動作するようになります...なぜですか?

File://に対する意図された制限を見ましたが、実際にはlocalhostに対する意図された制限への参照を見つけることができません。

私が本当に理解できないのは、ASP.netセッション(ASP.NET_SessionId)とASP.netフォーム認証Cookie(.FSAUTHSSO)がlocalhostドメインに対して正しく設定されているのに、私のCookieが...なぜではないのかです!

私はすでに多くのグーグルと何も動作しません:

  • Chromeコマンドラインフラグ--enable-file-cookies [動作しない]を設定する
  • CookieをHttpOnlyに設定[DOES N'T MATTER]
  • 有効期限をセッションまたは日付に変更... [重要ではありません]
  • Cookieパスをルート(/)または他のものに変更する[DOES N'T MATTER]

それで、何が問題ですか? :)

また、ASP.net Cookieを設定できるのに、設定できないのはなぜですか?違いは何ですか?

最後に、これはIEでも発生しますが、FFでは正常に動作します。

ありがとう!

アレックス

45
AlexCode

Cookieは、第2レベル以下向けに設計されています。第1レベルのドメインは機能しません。代わりに、アドレス http://127.0.0.1 (前述のとおり)を使用するか、hostsファイルを編集して、TLDを含む別のURLをアドレス127.0.0.1にマッピングすることができます。

yoursite.tld   127.0.0.1

これをさらに調査しました。この答えを見つけました: 明示的なドメインを持つローカルホスト上のクッキー

32
krslynx

cookie.Domain = null localhostで、それ以外の場合はドメイン名を使用します。

19
Ehab

良いニュース。 localhostでCookieを設定できるようになりましたChrome Canaryビルドの開始: https://code.google.com/p/chromium/issues/detail?id=551906

5
agektmr

私はこれがばかげているかもしれないことを知っていますが、asp.net mvcアプリケーションを引き継いでローカルで動作させることができませんでした。最後に、別の開発者が最近追加されたweb.configのエントリを指摘しました。

<httpCookies httpOnlyCookies="true" requireSSL="true" />

RequireSSLをローカルで「false」に設定します。変換を環境全体に適用することを忘れないでください。これがお役に立てば幸いです。

2
user906573

Chromeでも同じ問題が発生しました。 cookie.Secure = trueがありました。 localhostでそれを取り除くことで問題が解決しました。

(まったく同じ問題があった、FFIW:FFで動作し、IEまたはChrome)ではありませんでした)

2
Clever Human

chromeに2週間の有効期限が設定されたCookieが設定されていませんでした-これはたまたまauth Cookie(.AspNet.ApplicationCookie)であったため、継続的にログインページにリダイレクトされました。この問題は、私が試した他のブラウザでは発生しませんでした。

私はカスタムCookieを試して、chrome現在の日付が実際よりも早いであると判断したため、たとえば1で期限切れになったCookieを入れました。今日(2017年4月2日)で、実際にchromeこのCookieを2017年1月1日に期限切れに設定します!これは、2週間の期限切れのCookieが既に=として期限切れと見なされた理由を説明しますchromeは実際の有効期限の3分の3を切り捨てていたため、すでに有効期限が切れていると見なしていました。

Chromeの再起動ではこれは修正されませんでした-この段階でPCを再起動すると、バグが「修正」されました。また、これはlocalhostでのみ発生したことに注意してください-他のすべてのサイトは大丈夫だったようです。

1
wal

私の状況では、iisexpress(localhost:####)を使用してasp.netコアカミソリページアプリを実行していましたが、Chromeでこの問題に遭遇しました。私の修正は、Properties\launchSettings.jsonのiisSettingsがsslPort(44344)に対して0以外の番号を持っていることを確認することでした。 sslPortを0に設定すると、iisexpressはSSLを実行しません。 44344に変更すると、iisexpressのsslを使用してアプリが実行されます。または、Visual Studioのプロジェクトプロパティと[デバッグ]タブでSSLを有効にすると、launchsettings.jsonに対して同じ変更が行われます。たとえば、

"iisSettings": {
  "windowsAuthentication": false,
  "anonymousAuthentication": true,
  "iisExpress": {
    "applicationUrl": "http://localhost:29025/",
    "sslPort": 44344
  }
},
1
Patrick Neborg

Chromiumの2011年以降のオープンに関する問題 があります。ドメインを明示的に「localhost」に設定する場合は、falseとして設定するか、set the domain asを使用する必要があります。 127.0.0.1

0
Bruno Peres