問題タブ [httpcookie]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2010 - httpCookieにより、ページが読み込まれなくなります
VS 2010、vb.net、asp3.5を使用しています。シンプルなdefault.aspxページがあります
VS内から実行するとページは正常に読み込まれますが、サイトを構築してページを実行しても読み込まれません。エラーは発生しませんが、何も表示されません。
これは、ビューソースがどのように見えるかです
HTML> HEAD> META content = "text / html; charset = windows-1252" http-equiv = Content-Type> / HEAD> BODY> / BODY> / HTML>
ここに表示されるようにタグの<を取り出しました...
Me.lbl1.Text = cookie.Value.ToStringを取り出すと、ページは正常に読み込まれます。ページに配置するのは、テキストとラベルコントロールだけです。
誰でもアイデアがあります
asp.net - 100 年のタイムアウトで HTTPCookie を使用する ASP.NET Webforms サイトが 20 分後にタイムアウトする
Forms Auth を使用しているサイトがあります。クライアントは、ユーザーのサイト セッションが期限切れになることをまったく望んでいません。ログイン ページのコード ビハインドでは、次のコードが使用されます。
web.config ファイルの認証セクションは次のようになります。
サイトにログインすると、Cookie が正しくブラウザに送信されて戻ってくることがわかります。
HttpFox 出力 http://cid-e79f8e4b07c3e30f.office.live.com/embedphoto.aspx/Public/SessionProblem.png
しかし、20 分ほど離れてからサイトに戻って何かをしようとすると、ログイン ウィンドウが再び表示されます。このソリューションは、当社のサーバーでしばらく機能していましたが、現在は機能しています。VS2008 で Cassini を実行しているローカルの開発ボックスでは問題は発生しません。
これを修正する方法についてのアイデアはありますか?
asp.net-mvc - 彼が私たちのウェブサイトにアクセスしたときにクライアントシステムにシリアルキーを追加する方法
彼が私のウェブサイトにアクセスしたときに、httpcookie を使用してクライアント システムに 3 つのシリアル キーを追加したい
しかし
シリアルキーは異なります。同じではありません。
4 番目の Cookie を追加すると、1 つのキーが自動的に削除されます。
どのように私はこれを行うことができます。
ユーザーが見たいとき、彼は最近の 3 キーを見ることができます。
asp.net mvc Web サイトでこの Cookie をクライアント システムに追加する方法を知っていますか。
key1 、 key 2 、 key3 をクライアントシステムに追加する方法。
asp.net - セッションが変更された場合、または無効になった場合、HttpCookieは削除されません
HttpCookieを作成し、名前と値のみを設定し、expiresプロパティは設定していないので、それを応答に追加します。十分に単純です。Cookieは期待どおりに作成されます(ただし、永続化されません)。問題は、何らかの理由でセッションが変更された場合(Webサイトが再構築された場合や、デバッグ時にアプリを再構築した場合など)、Cookieが残ります。Cookieは、それが作成された元のセッションに対してのみ有効である必要があります。
MSDNによると、「Cookieの有効期限の制限を指定しない場合、Cookieはクライアントコンピューターに保持されず、ユーザーセッションの有効期限が切れると有効期限が切れます」と書かれています。
「セッションの有効期限」が何を含むのか正確にはわかりません。セッションが期限切れになる20分後にCookieが削除されると思います。しかし、Cookieが作成されたセッションがさまざまな理由で存在しなくなった場合、Cookieを削除する必要がありますか?Cookieが削除されるのを確認したのは、ユーザーがすべてのブラウザウィンドウを閉じて新しいウィンドウを開いたときだけです。
これがすべて当てはまる場合は、元のセッションID( "ASP.NET_SessionId")をCookieに保存し、現在のセッションIDと照合して、異なる場合はCookieを削除するか、新しいCookieを作成する必要があります。 。
コードは次のとおりです(私のCookieとMSDNの例のCookieの唯一の違いは、Cookieに複数の値を格納していることです)。
asp.net - Response を使用して設定した直後に Request で Cookie を使用できるのはなぜですか?
ページロードで、次の行のすぐに Response.Cookies.Add(... を実行すると、Request.Cookies(... を介してその Cookie にアクセスできます。
内部では、.net によって Cookie が Request.Cookies に追加されていることはわかっていますが、元の要求にはその Cookie がありませんでした。
私の言っていることが正しければ、なぜこのようになるのでしょうか? 次のリクエストで Cookie を使用できるようにすべきではありませんか? Request.Cookies(... への即時アクセスを null にするべきではありませんか?
linq-to-sql - C#Cookieはその情報を保存していません
Scenerio-使用するログインボックス(database1とdatabase2)に基づいて、対応するデータベースに接続するWebアプリを作成しています。両方の接続文字列を保持するようにweb.configを設定しました。各ボックスのOn_Authenticateメソッドで、チェックしてユーザーを認証してから、ログインボックスに基づいた文字列をAuthenticateuserというクラスのパブリック変数に送信します。このパブリック変数はCookieをチェックし、変数から接続文字列名を取得します。Cookieがnullの場合、新しいCookieを設定し、既存のすべてのCookieを期限切れにして、Cookieの値を設定します。
これが完了すると、(LINQ2SQLを使用して)データベースにアクセスするたびに、データコンテキストを作成し、AuthenticatedUser.ConnectionStringを送信します。これにより、Cookieがチェックされ、データのプルに使用する接続文字列が送信されます。これがAuthenticatedUserクラスです...
}
これで、ログインからの最初のクリックで機能しているようです。ユーザー情報を入力してプロセスを進めると、設定されているCookieが表示されます/ただし、使用する最初のtrueデータベース呼び出しでPortalDataContext db = new PortalDataContext(AuthenticatedUser.ConnectionString);
、null参照エラーが発生します。Getを実行し、Cookieをチェックして、nullCookieを返します。ここで何が起こっているのでしょうか?
asp.net - 風変わりなクッキーの振る舞い
私の同僚は私にいくつかのクッキーの振る舞いを見てみるように頼みました。彼は、Cookieを作成してテキストフィールドの値を挿入する単純なWebアプリを作成し、次のページでCookieコレクションをチェックして、Cookieが挿入され、正しく読み戻されたことを確認しました。
本当にシンプルです。
ただし、2ページ目で、彼は複数のCookieがあり、他のCookieはローカルでデバッグしていた別のWebアプリに関連していることに気づきました。
ブラウザがURLを認識し、そこから送信されたと認識したすべてのCookieを送信したため、これが発生したことを彼に伝えましたが、これは正しいですか?ローカルデバッグサーバーのポートが変更された場合でも、それは実行されますか?
c# - HttpCookie はローカルでは機能しますが、サーバー上では機能しません
Cookie 管理コードに問題があります。すべてのページで、キー値が設定されているかどうかを確認します。私の問題は、Cookie を見ると空の Cookie が作成されることです。
ローカルで、Cookie を確認してキー値を設定すると、すべて問題なく動作します。しかし、コードをテスト サーバーに移動すると、すべてが異なる動作をします。ローカルでは、1 つの Cookie のみが発行されます (Chrome のツールに表示されます)。サーバー上では、同じコードで 2 つの Cookie が発行されます。
私は約 4 年前にこのコードを書きました。.net 2.0 用に設計されたもので、HttpCookie の動作が変更され、Cookie を参照すると、Cookie が存在しない場合は空のものが作成されました。以前は、.Net 1.1 では null が返されていました。2.0 と 4.0 の間で根本的な何かが変更されたのではないかと思っています。
私のローカル マシンは Windows 7 で、サーバーは Windows 2003 サーバーであることに注意してください。違いはありません。注意すべき唯一のことは、アプリがサーバー上の仮想ディレクトリで実行されていることです。それは問題に関与できますか?わからない。クッキーのパスを仮想ディレクトリのパスに設定しようとしましたが、うまくいきませんでした。
私の Cookie には、http Cookie を直接処理するための基本レイヤー、デバッグのためにオンまたはオフにできる暗号化レイヤー、管理レイヤーなど、いくつかのレイヤーがあります。ロジックに明らかなエラーがあることを期待して、コードを共有します。
また、FormsAuthentication Cookie を別の目的で使用していることにも言及したいと思います。この Cookie は、無関係ではあるが必要なデータ用です。
私の基本クッキー層:
私の暗号化層 (電池は含まれていません)
最後に、すべてをまとめる Cookie 管理層です。
これに加えて、Cookie の構成に役立つカスタム構成があります。これは次のようになります。
これで、コードは Web アプリ内で次のようになります。
最初にプロパティを呼び出して、ユーザーの ID が設定されているかどうかを確認します。この呼び出しはすべてのページで行われます。次に、別のページでユーザーを認証し、ID を Cookie に設定します。それはすべてローカルで機能しますが、サーバー上のホームページ (id が id を検索する場所) にアクセスしてから認証すると、Cookie の値が設定されません。空のままです。
c# - RedirectToAction により、値を持つ Cookie の前に空の Cookie が設定され、その結果、Cookie が「失われる」
私は Cookie を使用しています。Cookie が設定されている場合、ユーザーはサインインするように転送されます。設定されていない場合は、エラー ページ (未承認) が表示されます。Cookie は正しく設定されており、アドレス バーに入力して任意のページに移動すると、問題なく動作します。ただし、RedirectToAction または FormsAuthentication.RedirectToLogin を使用すると、Cookie が使用できないため、リダイレクトで無限ループが発生します。
ホーム - ユーザーが Cookie を持っている場合はサインインし、そうでない場合はホームページを表示します。
サインイン - ユーザーが Cookie を持っている場合はページを表示し、そうでない場合はホームにリダイレクトします
私のリダイレクトは、属性を介して処理されます。
マイホームのアクションはこんな感じ
そして、私のサインインアクションは次のようになります
ここで、mysite.com/ にアクセスすると、リダイレクトによって無限ループが発生します。デバッグ中、属性は Cookie から値を見つけることができません。リクエストでは、Cookie は実際には空白です。mysite.com/signin と入力すると、すべてうまくいきます。何か案は?
編集
示唆されたように、私はフィドラーを走らせました。リクエストはこんな感じ
そして、ここにクッキー情報があります
初め
__RequestVerificationToken_Lw__=NNu8v2oTMX2YKQOW+JRN1LQRYPhlmPszQa8Rs1KrQp1pPxWmQO8GG7eRrzbhFZF38p05ckuLHAK3QaTIlxeFJ6POTX1woXRx/ahApLpF529inJO9mj3jSnoHqG6fthzJpoLCUQLQL6=fthzJpoLCULQL61; 4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=P%2ffJD5CdLO0pCGU6GntaPw* =P6QAytlDVUrkQn84c9vDVg *
2番
4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=; __RequestVerificationToken_Lw__=NNu8v2oTMX2YKQOW+JRN1LQRYPhlmPszQa8Rs1KrQp1pPxWmQO8GG7eRrzbhFZF38p05ckuLHAK3QaTIlxeFJ6POTX1woXRx/ahApLpF529inJO9mj3jSnoHqG6fthzJpoLCUQLQL6=fthzJpoLCULQL61; 4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=P%2ffJD5CdLO0pCGU6GntaPw* =P6QAytlDVUrkQn84c9vDVg *
三番
__RequestVerificationToken_Lw__=NNu8v2oTMX2YKQOW+JRN1LQRYPhlmPszQa8Rs1KrQp1pPxWmQO8GG7eRrzbhFZF38p05ckuLHAK3QaTIlxeFJ6POTX1woXRx/ahApLpF529inJO9mj3jSnoHqG6fthzJpoLCUQLQL6=fthzJpoLCULQL61; 4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=P%2ffJD5CdLO0pCGU6GntaPw* =P6QAytlDVUrkQn84c9vDVg *
第4
4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=; __RequestVerificationToken_Lw__=NNu8v2oTMX2YKQOW+JRN1LQRYPhlmPszQa8Rs1KrQp1pPxWmQO8GG7eRrzbhFZF38p05ckuLHAK3QaTIlxeFJ6POTX1woXRx/ahApLpF529inJO9mj3jSnoHqG6fthzJpoLCUQLQL6=fthzJpoLCULQL61; 4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=P%2ffJD5CdLO0pCGU6GntaPw* =P6QAytlDVUrkQn84c9vDVg *
アドレス バーに /signin と入力すると、次のように表示されます。
__RequestVerificationToken_Lw__=NNu8v2oTMX2YKQOW+JRN1LQRYPhlmPszQa8Rs1KrQp1pPxWmQO8GG7eRrzbhFZF38p05ckuLHAK3QaTIlxeFJ6POTX1woXRx/ahApLpF529inJO9mj3jSnoHqG6fthzJpoLCUQLQL6=fthzJpoLCULQL61; 4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*=P%2ffJD5CdLO0pCGU6GntaPw* =P6QAytlDVUrkQn84c9vDVg *
はい、私の Cookie は暗号化されています。cookiename は「4%40f0nkyBbqcTD4g9yl1J8KDNcWdqRpixrEoHLuMP2Lc*」です。リダイレクトによって新しい空の Cookie がそこに追加されているようです。なぜ?わからない。
追加 デバッグ後、リクエストに実際に 3 つの Cookie があることがわかりました。1 つ目は空の Cookie で、名前を使用するとデフォルトで返されます。コレクションの 3 番目の Cookie には値が設定されています。この Cookie をリクエストに追加する理由は謎です。おそらく、他の Cookie よりも価値のある Cookie を選択することで、この問題を回避できますが、それが何であれ、サインイン ページでのみ発生している根本的な問題を修正したいと考えています。
http - =、アンパサンド、コロンを Cookie に入れる
重複の可能性:
Cookie で許可されている文字
Cookie で値を区切る必要があります。そこで、URL の場合と同じように & を選択して、name=value のペアを区切りました。名前にも複数の値が存在する可能性があるため、それらをコロンで区切ります。
私の質問は、これが合法かどうかです。すべてを URL エンコードする必要がありますか? 値にはコロンを含めることができるため、値のコロンが区切り文字と競合しないようにするために、値を URL エンコードすると考えました。クッキー全体をアポストロフィで囲むこともできるとどこかで読みましたが、それは理にかなっていますか?
これが合法でない場合、名前ごとに複数の値を持つことが多い複数の名前/値のペアを保存する最良の方法は何ですか (特定の順序で、名前/値を複製することはできません)?